These installation instructions are for Unix systems.
For Plan 9 systems, Russ Cox has kindly provided scripts in the contrib
directory, but you are on your own for installation instructions.
If you use Microsoft Windows, you are even more on your own.


To build noweb:

  1) First point to compilers to be used to built the tools and
     library by setting these variables in the Makefile:
       CC         the name of an ANSI C compiler
       LIBSRC	  'awk' or 'icon', depending on which library
     If you have Icon, use the Icon version of the noweb library; this
     code speeds up noweave by a factor of 3.  The Icon versions have
     fewer bugs and provide more filters (e.g., convert LaTeX to HTML
     in documentation chunks).  Not all of the examples will work with
     the awk library.  If you have an Icon compiler and believe it
     works, set `ICONC=iconc -f l' in the Makefile.  (Icon is freely
     available from the University of Arizona, but the compiler is no
     longer maintained.)

     Now choose locations for the noweb files, and set the appropriate
     variables in the Makefile:
       BIN        on $PATH, will hold notangle, noweave, noroots, ...
       LIB        a directory to store markup, nt, noxref, ...
       MAN        man pages will go in $MAN/man1
       TEXINPUTS  a directory TeX will look for nwmac.tex and noweb.sty
       ELISP      a directory for noweb-mode.el, for emacs 19
     All of these files are *output* files, where noweb will place
     binaries and man pages that are customized for your installation.
     Therefore you should:
       - make sure you have write permission to these directories.
       - refrain from making them point into the noweb source distribution.
       - arrange for BIN to be on your $PATH and MAN to be on your $MANPATH.
     If you don't use emacs, just leave ELISP set to /dev/null.

     If your system provides tempnam(3), noweb's indexing will be more
     efficient if you add -DTEMPNAM to the flags given to the C compiler.

  2) If your modern awk is called something other than `nawk', run the
     `awkname' script to change all references to nawk.  For example,
     `awkname gawk'.  You need to do this even if you have chosen
     LIBSRC=icon, because there are a few scripts here and there that
     are only written in awk.  If you have an HPUX system and you're
     using the vendor-supplied awk, you have a problem---see file HPUX
     for details.

  3) Fasten your seat belt and type `make all install'.  If you want a
     nonstandard noweave, you can use the WEAVE variable in the
     Makefile; for example, `make WEAVE=noweave.simple'.  In contrast
     with previous versions, the standard noweave should work with
     HPUX and SGI Irix.

  4) If you want to install contributed software, you need the
     `contrib' hierarchy.  Get it, set the LIB variable in the
     Makefile, and type 'make all install'.  If you just want the
     nuweb parser, try
	 (cd ../contrib/norman; make LIB=$LIB all install)
     where $LIB is the noweb LIB directory.

  5) On some installations, (e.g., Unix teTeX), you may have to run
     texhash(1) before TeX or latex will see files added to TEXINPUTS.

  6) You can clean up by typing `make clean'.  If you wish, you can
     remove the pre-built sources by typing `make clobber', but then
     you will be unable to build noweb unless you already have noweb.

Instead of editing the Makefile, you can create a shell script that
invokes make with the proper variables.  `nwmake' is an example of
such a script; I use it to install noweb at Princeton using the Icon
cross-referencer and our local C compiler.  If you make your own
script, call it something else so it won't get overwritten by the
default nwmake when you unbundle a new distribution.

If you encounter a problem building noweb, try the FAQ file.
