INSTALL for procps version 0.99
===============================
Please read the NEWS and BUGS files, also.
==========================================

You want to examine the first 30 or so lines of the Makefile (up to the
configurability note). The destinations of various things attempt FSSTND
compliance, and are pretty standard.  The cc/ld flags and which libraries you
use for curses/termcap are here also.  It is all annotated there and in a
readily understood format: directories, program to installdir mapping,
sub-packages to build, and compilation options.  A few extra points worth
mentioning are:

  o  The SUBDIRS variable is essentially just a list of subdirectories to
     perform a recursive make or make install in.
  o  There is also an option to build and link against a libproc.so which
     reduces 'ps' and 'top' sizes by a large fraction.  It is off by default,
     so change the value of SHARED if you want it.
  o  'make libinstall' will install the library and header files into standard
     system directories for developers of /proc utilities.  There are no library
     man pages yet, but the headers are fairly well documented. 

Once you are satisfied with the top-level Makefile options (and possibly those
in subdirectories) you compile and install the package like so:
(ignore innocuous `rcsid' warnings.)

    make           # takes about 2 minutes on a Pentium-90
    su             # for suid-root XConsole and write/chown-perms on sys dirs
    make install
    # ldconfig -v  # update ld.so to use new libproc if SHARED=1
    /bin/ps        # force creation/update of /etc/psdevtab from /dev
    exit
    make distclean # remove anything that can be rebuilt

Installing without really compiling
===================================
To install all the distributed binaries in all the default locations without
re-compiling anything you may do the following in the distribution directory:
    su             # assuming you are not already root
    ./do_install
The do_install script is actually generated from mkinstall and the Makefiles,
so any changes in the Makefiles will carry over automagically.  You should
have libc 5.2.16 on your system to run the distributed binaries.

SUID-ROOT programs
==================
XConsole is made suid root but it is pretty safe.  It doesn't accept input of
any kind, and only reads /proc/kmsg.  Indeed, reading /proc/kmsg is the only
reason why it is suid root.  Just don't run any other program which reads kmsg.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! DON'T USE XCONSOLE IF YOU ARE USING ANY OTHER SYSLOG PACKAGE !!
!! THIS IS VITALLY IMPORTANT -- I WOULDN'T YELL OTHERWISE...    !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Skill or snice will set their scheduling priority to the most favorable possible
if they have root permissions.  See the skill documentation.

Micellaneous Notes
==================
COMPATIBILITY
    The binaries in this package may only work with kernel versions 1.[23].x and
    later.  They have really not been well tested on 0.x or 1.[01].x, systems.
    Furthermore the binaries distributed are ELF and were compiled against libc
    5.2.16 with gcc 2.7.2.  You will need to compile the package (very easy) if
    you don't have a minimal ELF setup (libc, ld.so, and a modern kernel).

    In the unlikely event that you don't have `install' you can get it from the
    GNU `fileutil' package -- prep.ai.mit.edu:/pub/gnu/fileutils-3.12.tar.gz.

PS WCHAN FIELD
    In order to get WCHAN output for ps, you must update the psdatabase for each
    new kernel with /sbin/psupdate.  You probably need to be root to write the
    database file and/or read the kernel file.  If you don't want to deal with a
    psdatabase, you can safely ignore this, and not create the psdatabase.  ps
    will simply default back to numeric addresses in the WCHAN field.

W
    Another version of w, which doesn't always work right, is provided in w2.c.
    Use at your own risk.  It seems to work on systems where utmp is always
    maintained in perfect condition.

PARTIAL INSTALLATION
    If you just want to install one program use the targets install_progname and
    install_progname.X (where X is the man section) instead.  E.g.
        make install_ps install_ps.1
    Likewise for component packages, e.g.
        make install_psmisc
