			   --- FWEB v. 1.40 ---
			       October 25, 1993


IMPORTANT NOTES:

* FWEB is gravitating toward the GNU standards for configuration,
makefiles, etc.  If you are a Unix user (more precisely, if you have sh
available), please follow the installation procedure described below under item
(0) of ``SUMMARY of INSTALLATION PROCEDURE''.

* Documentation for this version is maintained in gnu texinfo format.  The
installation procedure will install the relevant files.  Online information
will then be available through emacs' info browser.  Assuming that the
relevant texinfo macros are installed on your system, you can obtain
printed documentation by saying

	cd manual
	tex fweb.texinfo

* The old, v1.30 user manual is still provided, as it is more pedagogical
in places.  The following instructions pertain to that OBSOLATE documentation:
There is a separate make file for the user manual:  manual/Makefile.
To obtain a short reference guide to FWEB, you must first run ./configure
(see below).  Then say 

	cd manual
	make guide

To obtain the complete (LONG!) user manual (which incorporates the
reference guide as several appendices), say
	
	cd manual
	make manual

The indexes for the user manual and reference guide require the utility
routine makeindex.  This can be obtained by anonymous ftp from

	ftp.math.utah.edu:/pub/tex/pub/makeindex/2-11

(The extension .trz is equivalent to .tar.Z.)


SUMMARY of INSTALLATION PROCEDURE:

  (0) If you are a Unix user, especially one with an ANSI-C compiler
(please use gcc), please try to install FWEB by doing the following: 

------------------------------------------------------------------------------
	cd fweb-1.40
	./configure 
	cd web
	make -n install (Previously, this command was put after `make
bootstrap'.  It's now put here because previously the make file sometimes
recompiled things unnecessarily.  The -n option is used to see where
various files are going to be put.  If you need to make changes to system
paths, etc., make them in defaults.mk.in, then rerun ./configure.)
	make bootstrap
	[Log on as root]
	make install
-------------------------------------------------------------------------------

./configure is a sh script that was generated automatically by running the
utility program autoconf.  It first reads an FWEB configuration file whose
default name is configure.ini.  (More about that below.)  Then it
attempts to figure out various local system features automatically.
Finally, it generates two files from autoconf templates:

	./web/defaults.mk.in  => ./web/defaults.mk
	./web/custom.h.in => ./web/custom.h

The file defaults.mk is included into both ./web/Makefile and
./manual/Makefile.  The file custom.h is included into the C code by the
./web/*.c files.  Check out what configure produces, especially for the
directory prefixes in the INSTALLATION section of defaults.mk.  If you need
to make changes, make them in the *.in files, then run ./configure again.

  For more information about automatic configuration, read the file
UNIX_INSTALL.  

  The present procedure differs in one respect from standard ./configure
protocol: an extra layer of variable definitions is used for variables
related to FWEB that are not figured out automatically by ./configure.
E.g., instead of saying in defaults.mk.in ``OBJ = obj'', we say ``OBJ =
@_OBJ_@''.  Configure replaces the @_OBJ_@ with the present value of the
environment variable _OBJ_.  To give that a value, configure sources in the
contents of the file $CONFIGURE_INI.  If the environment variable CONFIGURE_INI
isn't defined, then the default file config.ini is read.  This mechanism is
partly used to aid the developer--files like ansi.ini are used to
automatically generate the old-style bootstrap files---and partly to ease
the transition to ./configure, which doesn't figure everything out for
itself yet.

  Note that the old bootstrapping mechanism remains in place for those who
need it.  That consists of the boot subdirectory, containing various
suggested defaults.mk and custom.h files.  Therefore, if configure doesn't
seem to be doing the right thing, please let me know and revert to the old
procedure using the installation script install.fweb.

  (1) If you are a Unix user, but ./configure didn't work, use the
installation script install.fweb.

Otherwise:

  (2) Select a boot subdirectory, for example

	boot/unix/ansi/

that you think corresponds to your machine.   That directory should contain
a READ_ME file (that you should read!), and in particular the files

	custom.h defaults.mk

(Even if there's a bootstrap subdirectory that sounds like your machine,
please try to use the ansi bootstrap first.  Some of the bootstraps may be
out of date.  If your compiler is supposed to be ANSI but it doesn't work
with the ansi bootstrap, please (a) notify me; (b) complain to the vendor.)

  (3) COPY custom.h to the web subdirectory.  This file contains macro
definitions and file includes that may need to be modified for your
particular compiler and/or operating system.  If the compile and link below
does not work, you may have to edit custom.h, following the instructions in
that file.

  (4) COPY defaults.mk to the web directory.  Then examine it
to see if anything needs to be changed there.  This file is included into
web/Makefile; it sets up the compiler and link lines, etc.  For example, you
may want to include a compiler optimization command.  As another example,
Cray users may need to change the name of the compiler from cc to scc.  If your
compiler permits, also use the flag that makes the default |char| type
|unsigned|.

  (5) Say

	cd web
	make -n bootstrap

to see what will happen when you compile and link.  If all seems in order,
then do it without the -n option.

  (6) If something doesn't compile properly, you may need to edit custom.h;
follow the instructions in that file.

  (7) (Omitted.)

  (8) With this old-style bootstrapping procedure, there is no automatic
procedure for installing the files into their final resting place.  Look
into the Makefile for the ``install:'' target to see what should be done.

  (9) To obtain brief help about the Makefiles, type

	make help

To learn more, read the notes at the beginning of Makefile.




