			       INSTALL for procps
			    Last updated 08 Nov 2002

Please read the NEWS and BUGS files, also.

Re-compiling the package
========================

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.  Right now that's just
     ps; the old xproc has been removed because it was entirely redundant.
  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 on by default,
     so change the value of SHARED if you want.
  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. 
  o  You may need to change the INCDIRS definition if your system is
     not very standard.  The current definition has been tested to work
     on several different systems, though.

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' defined-but-not-used warnings.)

    make distclean # clean-out everything to re-make from scratch
    make           # takes about 0.75 minutes on a PPro 200 with SCSI
    su             # for write/chown-perms on sys dirs
    make install
    ldconfig -v    # update ld.so to use new libproc if SHARED=1
    exit
    make distclean # remove anything that can be rebuilt


Miscellaneous Notes
===================

COMPATIBILITY

    This code is intended for use with Linux kernel 2.0 through the current
    release (at the moment, 2.6).

    Both libc 5 and libc 6 should work.

PS/TOP WCHAN FIELD

    In past releases, in order to get WCHAN output for ps, you had to
    have a psdatabase for each zImage kernel that you generated from
    the vmlinux unstripped binary with /sbin/psupdate.  With this release,
    you should use the System.map automatically generated by Linus' makefile.
    'ps' and 'top' will first use the contents of an environment variable
    "PS_SYSTEM_MAP" and then look for System.map files along
    the following search path:
        /boot/System.map-V, /boot/System.map, /lib/modules/V/System.map,
    Here 'V' is the output of "uname -r" and looks like "2.2.0".
    Don't forget the dash! In those same locations, remove psdatabase* files.

    If you are using a 2.5 or later kernel, however, and CONFIG_KALLSYMS is
    enabled, WCHAN is pre-decoded in /proc/#/wchan.  The procps package will
    read this file if it is available.  In that case, System.map is not needed.


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_vmstat
