Here is the procedure for getting things running.

1.  Inspect the first section of `lib/c-auto.h.in', and edit if necessary.

2a. Edit `Makefile.in' if you want to make changes that will have effect
    across different runs of `configure'; for example, changing the
    installation directories. Alternatively, override the make
    variables on the command line when you run make.

2b. Edit `kpathsea/paths.h.in' to define your local paths. If you do not
    change these paths, it is possible that your TeX will start up 
    Very, Very, Slowly. Or the programs won't find any of your fonts or
    other input files. See kpathsea/INSTALL for more details on changing
    the default paths.

3. Do `sh configure' (or otherwise arrange for `configure' to be run by
   a Bourne-compatible shell).  If you want to change the prefix or
   exec_prefix make variables, give the -prefix and -exec-prefix options
   to configure.  By default, the prefix is the parent directory of the
   directory where the program `tex' is found, or /usr/local.
   
   You can control some of what configure does by setting environment
   variables before running.  For example, configure normally uses gcc
   if you have it, otherwise cc; but if the environment variable `CC' is
   set, its value will be used.  Likewise for `YACC', `LEX', and `CCLD'.

4. Inspect `./Makefile' and `lib/c-auto.h', which `configure' creates,
   to see if configure's guesses were correct.  Change whatever is
   necessary; for example, if you want to optimize, change CFLAGS.
   See ./MACHINES for possibly helpful information.
   
5. `make triptrap' to build triptex and trapmf (and some of the other 
   programs that are needed to run the tests).

6. `make run-triptrap' to run the tests.  The differences (and many
   error messages) will show up on your terminal.  If you don't know
   whether the differences are OK or not, consult tex/TeXtrip/tripman.tex
   and mf/MFtrap/trapman.tex.  The usual differences are
   * glue setting being rounded differently in the TeX log;
   * string usage and maximum values of tables;
   * the `down4' and `right4' commands in the dvitype output;
   * the dates and times.
   All these differences are acceptable.

7. `make clean-triptrap' to get rid of the test programs and output.  You
   need to do this before making the production versions, or the
   resulting TeX and Metafont will have very small memories.

8. `make programs' to make the working versions of the remaining programs
   Alternatively. `make all' combines `programs', `formats', and `manpages'.

9. `make formats' to make the TeX fmts and Metafont bases (the Make
   variables `fmts' and `bases' define the list).  If you don't know
   what this means, see the section `Format files and preloading' below.
   
   Before doing this, the basic .tfm, .tex, and .mf files must be
   installed, and your search paths (e.g., the environment variables
   TEXINPUTS, TEXFONTS, etc., or the compile-time defaults in
   kpathsea/paths.h.in if the variables are unset) must look in those
   directories.  Also check the value of the localmodes Make variable.
   
   If you don't have the tfm/tex/mf files, see the file
   ftp.cs.umb.edu:pub/tex/FTP.nwc (which also contains tape ordering
   information). (This file is not included in the distribution because
   it changes far more frequently than web2c.)
   
   You can `make fmts' and `make bases' separately if you prefer.

10. `make manpages' to edit the documentation in `man' for the paths and
    constants you defined in `Makefile.in' and `c-auto.h.in'.

11. `make install-exec' to install the programs.
    `make install-formats install-bases' to install the formats/bases
      and to create links to `virtex' and `virmf' for each.
    `make install-manpages' to install the manual pages.
    `make install-data' to do install-formats install-bases install-manpages,
      and to get the pool files and other architecture-independent files.
    Alternatively, `make install' to install everything.

12. There are several targets for cleanup:
    `mostlyclean' if you intend to compile on another
      architecture.  Since the .c files are intended to be portable,
      they are not removed.  If the lex/flex situation is going to be
      different on the next machine, also rm web2c/lex.yy.c.
    `clean' to remove everything that is normally created by compiling.
    `distclean' to remove everything that would not be in a distribution. 
    `realclean' to remove everything that the Makefiles can rebuild.
    `extraclean' to remove other junk.

If you wish to make a single program, the top-level Makefile has
targets `TeX', `MF', and `BibTeX'. (No targets for the other programs, though.)

If you don't want to (or can't) run both the trip and trap tests,
`Makefile' has separate targets `run-trip' and `run-trap', and
`clean-trip' and `clean-trap'.

If you wish to make just the C files (perhaps because you want to take
them to another system), the top-level Makefile has a target `c-sources'.

The host labrea.stanford.edu is the ultimate source for those files
maintained by Knuth (for example, plain.tex).  But do not use labrea for
any other files! It is very often out of date.

I strongly suggest using flex and bison (version 2.4.6 and 1.22 were
current as of this writing) for lex and yacc.
