=============================================================================

	teTeX-1.0 installation instructions (compiling the sources)

=============================================================================

  1) prerequisites: disk space, ANSI C and C++ compiler (with header
     files + libraries), make utility, lexical scanner, parser generator,
     clean environment
  2) getting the files
  3) install the inputs-tree
  4) unpack the sources
  5) configuring
  6) run make
  7) final configuration steps
  A) appendix: notes on some platforms
  B) appendix: note on moving the binaries around

============================================================================
  1) prerequisites: disk space, ANSI C and C++ compiler (with header files
     + libraries), make utility, lexical scanner, parser generator,
     clean environment
============================================================================

The disk space you need (approx.):
   7 MB for the tar file containing the sources
  30 MB for the tar file containing the complete fonts/macros subtree (texmf)
  30 MB for the unpacked source tree
  75 MB for the unpacked texmf tree
  80-110 MB for object files, binaries, ... during compilation
  15-30 MB for binaries, format files, bitmap fonts, ...

You'll also need an ANSI C compiler, a C++ compiler for pdftex, a make
utility, a lexical scanner and a parser generator. I have used the
GNU utilities (gcc, GNU make, flex, bison) for my tests. gawk 2.15 was
reported to fail whereas gawk 3.x worked fine. To compile xdvi / oxdvi,
you need the include files and libraries for the X Windows System (X11).

Note for Solaris 7 with Sun compilers. The following patches are needed:
  106327-04 SunOS 5.7: Shared library patch for C++
  106300-05 SunOS 5.7: Shared library patch for 64bit C++

Another note for SUN users: SUN's parallel make utility fails on some
of the Makefiles. /usr/ccs/bin/make from Solaris 2 (and later) is fine,
however.

Before building teTeX, make sure you have not inadvertently set any
of the environment variables listed in part 7 below, unless you know
exactly what you're doing.

=============================================================================
  2) getting the files
============================================================================

What you need:
    sources/teTeX-src-1.0.tar.gz    # the sources
    sources/teTeX-texmf-1.0.tar.gz  # the lib-tree with the fonts, macros, ...

The file
    sources/teTeX-texmfsrc-1.0.tar.gz
contains sources for packages that are contained in the texmf tarball.
The texmf tarball contains the files which are needed at runtime. This
archive contains additional files which are not needed, e.g. docstrip
sources of some packages.

============================================================================
  3) choose installation prefix and directory layout
============================================================================

Decide where the "root" of the installation will be, e.g. /usr/local
or /usr/local/teTeX. That directory will be named TETEXDIR in the
following.

The standard directory layout is:
  $TETEXDIR/man			% UNIX manual pages
  $TETEXDIR/share/texmf		% main tree with fonts, macros, ...
				% for tex, metafont + friends
  $TETEXDIR/info		% GNU style info manuals
  $TETEXDIR/bin/$PLATFORM	% binaries

You can omit the "share/" part for the texmf directory if you want.
$TETEXDIR/share/texmf and $TETEXDIR/texmf are auto-detected by configure.
If you choose something different, you have to specify that directory
with the --datadir option of configure.

If you want to leave out the $PLATFORM directory level (i.e. put the
binaries directly into $TETEXDIR/bin), specify the --disable-multiplatform
option for configure.

For now, you have to create the texmf directory and unpack the tar archive
there. Example (the "#" character represents the prompt of your shell,
don't type it in):

  # mkdir -p /usr/local/teTeX/share/texmf
  # gzip -dc teTeX-texmf-1.0.tar.gz \
      | (umask 0; cd /usr/local/teTeX/share/texmf; tar xvf -)

Now, optionally, unpack the texmfsrc tarball:
  # gzip -dc teTeX-texmfsrc-1.0.tar.gz \
      | (umask 0; cd /usr/local/teTeX/share/texmf; tar xvf -)

============================================================================
  4) unpack the sources
============================================================================

Unpack the sources, e.g.:
  # cd /usr/local/src
  # gzip -dc teTeX-src-1.0.tar.gz | tar xvf -

============================================================================
  5) configuring
============================================================================

teTeX uses one large directory tree which you have unpacked in step 3.
You can add additional texmf trees to the configuration by editing the
file teTeX-1.0/texk/kpathsea/texmf.in, e.g. set up a tree where you
store your local additions (TEXMFLOCAL) or all variable data such as
configuration files, format files etc. (VARTEXMF).

That texmf.in will be installed as web2c/texmf.cnf in your main texmf
tree. You can edit that file later, too. Don't forget to remove the word
"original" in the first line of the file if you do any changes.

Have a look at the output of ./configure --help and the files INSTALL in
various subdirectories for instructions. The file texk/kpathsea/INSTALL
explains which environment variables configure uses in determining your
system's characteristics. The list there lacks the variables for C++
which are:
   `CXX':      The C++ compiler to use.
   `CXXFLAGS': Options to give the C++ compiler.
Make sure the shell variable "noclobber" is not set, then type something
like:

  # cd teTeX-1.0
  # sh -c './configure --prefix=/usr/local/teTeX >configure.log 2>&1' &

Environment variables can be passed the following way:
  # env CC=cc CXX=CC CFLAGS='-O -g' \
      sh -c './configure --prefix=/usr/local/teTeX >configure.log 2>&1' &

You can watch the output of configure by running
  tail -f configure.log

============================================================================
  6) run make
============================================================================

Make sure, the shell variable "noclobber" is not set, then type "make
world" and relax :-) I also suggest to log all the output, e.g. by running
  # sh -c 'make world >world.log 2>&1' &

Before you think that everything is ok, please check the log file for
errors (GNU make always uses the string "Error:" whenever a command returns
an error code) and check if all binaries are build:
  # cd /usr/local/teTeX/bin/i586-pc-linux-gnulibc1
  # ls | wc -l  # should be 125

(The number is only valid if you configure was run with default values
without turning off any of the sub-packages like pdftex.)

The complete list of binaries generated with "ls | sed s@^@\ \ @ | fmt" is:
  MakeTeXPK access afm2tfm allcm allec allneeded bibtex dialog dmp
  dvi2fax dvicopy dvihp dvilj dvilj2p dvilj4 dvilj4l dvilj6 dvips dvired
  dvitomp dvitype e2pall einitex elatex epstopdf etex evirtex fmtutil
  fontexport fontimport fontinst gftodvi gftopk gftype gsftopk inimf
  inimpost iniomega initex install-info kpsepath kpsestat kpsetool
  kpsewhich kpsexpand lambda latex mag makeindex makeinfo makempx mf
  mft mfw mkfontdesc mkindex mkocp mkofm mktexlsr mktexmf mktexpk
  mktextfm mpost mpto newer odvicopy odvips odvitype ofm2opl omega
  opl2ofm otangle otp2ocp outocp ovf2ovp ovp2ovf oxdvi oxdvi.bin patgen
  pdfeinitex pdfelatex pdfetex pdfevirtex pdfinitex pdflatex pdftex
  pdfvirtex pfb2pfa pk2bm pktogf pktype pltotf pooltype ps2frag ps2pk
  pslatex readlink rubibtex rumakeindex tangle tex texconfig texdoc
  texexec texhash texi2dvi texi2html texi2pdf texindex texlinks texshow
  texutil tftopl thumbpdf tie ttf2afm vftovp virmf virmpost viromega
  virtex vptovf weave xdvi xdvi.bin

"make world" is equivalent to
  make all install strip

If you need special previleges for 'make install' and 'make ini', you can
run two make in two separate runs:
  make all
  su
  make install strip

Please note that calling make with an absolute path breaks the configure
scripts.

The following example _does_not_work_:
	/usr/local/bin/make world
	...
	checking whether /usr/local/bin/make sets $MAKE... ./configure:
	${ac_cv_prog_make_/usr/bin/make_set+set}: bad substitution
	...

============================================================================
  7) final configuration steps
============================================================================

Overview:
  - set up PATH
  - check environment
  - configure teTeX using texconfig
  - generate fonts with a batch job
  - set up area for automatic font generation

Set up PATH:
===========
Set up your PATH to include the directory containing the just installed
binaries (e.g. /usr/local/teTeX/bin/sparc-sunos4.1.3); similarly, MANPATH
and INFOPATH to include the relevant newly installed subdirectories,
i.e. $TETEXDIR/man resp. $TETEXDIR/info.


Check environment
=================
Note, that the run-time search paths for all programs that use
the Kpathsea library can be configured by changing the paths in
TEXMFMAIN/web2c/texmf.cnf and changes to these paths does not require
to recompile any of the programs. Therefore, you hardly need to set
extra environment variables. If you define some environment variables,
they overrule the search paths in texmf.cnf unless they have an empty
path component (i.e. a colon at the beginning or end or a doubled colon
in the middle).

The variables to check are:
  AFMFONTS BIBINPUTS BSTINPUTS DVILJFONTS DVIPSFONTS DVIPSHEADERS GFFONTS
  GLYPHFONTS INDEXSTYLE MFBASES MFINPUTS MFPOOL MFTINPUTS MPINPUTS
  MPMEMS MPPOOL MPSUPPORT OCPINPUTS OFMFONTS OPLFONTS OTPINPUTS OVFFONTS
  OVPFONTS PKFONTS PSHEADERS T1FONTS T1INPUTS TEXBIB TEXCONFIG TEXDOCS
  TEXFONTMAPS TEXFONTS TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF
  TEXMFDBS TEXMFINI TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS TEXSOURCES
  TFMFONTS TRFONTS VFFONTS XDVIFONTS XDVIVFS

A simple way to check them is to run
  texconfig confall
once you have set up your PATH. Be careful if some variables are non-empty
and have a look at the locations of the binaries. Not all binaries are
checked, only some.

Configure teTeX using texconfig
===============================
Texconfig allows you to set the defaults for hyphenation, paper size,
print command, metafont mode, etc. You should run this command
interactively and see what options it offers.

For example, if you are not using A4 format paper, you should make
"lettersize" the default using:
    texconfig dvips paper letter
    texconfig xdvi us

Generate fonts with a batch job
===============================
After you have configured the resolution for the previewer and printers,
you might want to generate some bitmap fonts in a batch job. There are
scripts like allneeded(1), allcm(1) and allec(1) which can generate the
fonts that most users need. For details, have a look at the teTeX
documentation that can be found via
  texdoc TETEXDOC
or the teTeX-FAQ:
  texconfig faq

Set up area for automatic font generation
=========================================
Now, after optionally generating a large set of standard fonts, you
might want to set up an area that other users in your system can use to
put automatically generated fonts into.

If you don't mind that every use puts automatically generated fonts into
the main system tree, just make the main tree writable for that. It can be
done by the command:
  texconfig font rw

If you want the global tree to be read-only (this is the default), just do
  texconfig font ro

But, you should set up some varfonts area and enable the varfonts feature
in that case (replace the string "/some/varfonts/area" by the name of the
directory, where all the generated fonts should go):
  texconfig font vardir /some/varfonts/area
  texconfig font options appendonlydir varfonts

=============================================================================
 A) appendix: notes on some platforms
=============================================================================

teTeX-1.0 was successfully built on the following platforms:

=============================================================================
 B) appendix: note on moving the binaries around
=============================================================================

If you move the binaries to a different location after "make install", you have
to consider the following two things:

- make sure that the texmf.cnf file is still found. If
      kpsewhich texmf.cnf
  fails, you have to set the TEXMFCNF variable. If, for example the
  texmf tree is rooted in /usr/share/texmf, you should set the TEXMFCNF
  variable to
      .:/usr/share/texmf/web2c
  to make sure that all programs will wind the texmf.cnf file. After
  setting the TEXMFCNF variable, try the kpsewhich command again and
  verify that the texmf.cnf file will be found.

- make sure that TEXMFMAIN is defined correctly in the texmf.cnf file.
  Execute the command
      kpsewhich -expand-var='$TEXMFMAIN'
  If this does not give you the root of your texmf directory, you have to
  correct the TEXMFMAIN variable. Juch change the line which defines
  TEXMFMAIN in the texmf.cnf file and set it to the correct directory.
  In the above example you would set:
      TEXMFMAIN = /usr/share/texmf
