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.