home *** CD-ROM | disk | FTP | other *** search
/ Sams Teach Yourself C in 21 Days (6th Edition) / STYC216E.ISO / pc / DJGPP / v2apps / tex / TeX.README < prev    next >
Text File  |  1998-11-09  |  31KB  |  642 lines

  1.  
  2.       README file for the DJGPP port of TeX and related programs
  3.       ----------------------------------------------------------
  4.  
  5. I.  General
  6.     -------
  7.  
  8.     This is a port of the Texk/Web2c 7.2b distribution to DJGPP v2.01.
  9.     The original Texk distribution is on CTAN mirror sites; primary
  10.     locations are:
  11.  
  12.       ftp://ftp.cdrom.com/pub/tex/ctan  (California, USA)
  13.       ftp://ftp.dante.de/tex-archive    (Germany)
  14.       ftp://ftp.tex.ac.uk/tex-archive   (England)
  15.  
  16.     (``CTAN'' means ``Comprehensive TeX Archive Network''.)  Texk is
  17.     stored on CTAN in several files:
  18.  
  19.        systems/web2c/texklib.tar.gz
  20.        systems/web2c/web.tar.gz
  21.        systems/web2c/web2c.tar.gz
  22.        dviware/dvipsk.tar.gz
  23.        dviware/dviljk.tar.gz
  24.  
  25.     The original source distributions of other TeX-related programs can
  26.     be found on CTAN either under the dviware directory or under the
  27.     support directory.
  28.  
  29.     For more info about CTAN sites and the original source distributions
  30.     of the programs see the file etc/unixtex.ftp.
  31.  
  32.     The ported binaries are split into several zip files:
  33.  
  34.       tmflib75.zip -- the minimal TeX and Metafont library, required
  35.       webc72b.zip  -- Web2c, TeX and related programs, optional
  36.       kpse32b.zip  -- Kpathsea path-search library, optional
  37.       dvlj26b.zip  -- DVI drivers for LaserJet printers, optional
  38.       dvps578b.zip -- DVI driver for PostScript printers, optional
  39.       dvga09b.zip  -- DVI previewer for VGA adapters, optional
  40.       dvdj09b.zip  -- DVI drivers for DeskJet printers, optional
  41.       dtl060b.zip  -- DTL package for editing DVI files, optional
  42.       dvdv11b.zip  -- Dvidvi, selects/rearranges DVI files, optional
  43.       gspk116b.zip -- Gsf2PK, creates PK fonts from GS fonts, optional
  44.       lchk126b.zip -- Lacheck, LaTeX document checker, optional
  45.       midx213b.zip -- MakeIndex, TeX/Troff index generator, optional
  46.       mflx083b.zip -- MusixFlx, line-breaking for MusixTeX, optional
  47.       odps578b.zip -- ODviPS, DviPS with Omega extensions, optional
  48.       pspk15b.zip  -- Ps2Pk, creates PK fonts from PS type1, optional
  49.       seet31b.zip  -- SeeTeX package, manipulates DVI files, optional
  50.       t4ht-a8b.zip -- TeX4HT, generates HTML from TeX input, optional
  51.  
  52.     `dvlj26b.zip' includes drivers for LaserJet (dvilj), LaserJet 2P
  53.     (dvilj2p) and LaserJet 4 or later (dvilj4) printers; most people
  54.     will only need one of these programs, for whatever printer they
  55.     have.
  56.  
  57.     `dvdj09b.zip' includes drivers for DeskJet 500 (dvi500), 500C
  58.     (dvi500c) and 550C (dvi550c) printers (dvi500c and dvi550c are
  59.     actually just ``symlinks'' to dvi500).
  60.  
  61.     If you'd like to download the entire binary distribution, just
  62.     grab all these files and install them as described in section II
  63.     below.  Note that some files appear in more than one zip archive,
  64.     so it is normal to get prompts from your unzip program asking
  65.     whether to overwrite existing files.
  66.  
  67.     Typically, if you only want to work with TeX and print DVI files,
  68.     you will need some, but not all, of the *b.zip files marked as
  69.     ``optional'' above.  However, since certain parts of Texk require
  70.     other parts at run time, it is not enough to download only the
  71.     package that you need.  For example, if you only need to be able
  72.     to print DVI files on LaserJet printers, `dvlj26b.zip' alone will
  73.     not do, as it lacks the basic fonts used to generate missing fonts
  74.     on the fly.
  75.  
  76.     One way to describe the dependencies between the various parts of
  77.     Texk is to list the main tasks that it allows you to perform and
  78.     tell which programs do you need to install for every task.  The
  79.     following matrix shows that:
  80.  
  81.                               tmfl  webc  kpse  dvlj  dvps  dvdj  dvga
  82.      -----------------------------------------------------------------
  83.      Generate DVI files           +     +
  84.      Print DVI on LJ printer   +                +
  85.      Print DVI on DJ printer   +                        +
  86.      Print DVI on PS printer   +                  +
  87.      Preview TeX documents     +                          +
  88.      Develop with Kpathsea     +              +
  89.      Print TeX documents       +     +          ?    ?     ?     +
  90.      Literate programming         +
  91.      -----------------------------------------------------------------
  92.      Approximate disk space   25M    7M    2M    3M    3M    2M    2M
  93.  
  94.      (A question mark `?' means you need one of the marked packages,
  95.      depending on the type of your printer.)
  96.  
  97.      Note that ODviPS requires DviPS to be installed.
  98.  
  99.     The above table also lists the necessary disk space for each
  100.     package; if you install all of them, you will need about 36Mbytes.
  101.     (These numbers may vary depending on your disk cluster size; on a
  102.     FAT-16 disk that is larger than 1GB, multiply the above numbers by
  103.     a factor of 2.)
  104.  
  105.     Additional programs not listed in the table above are only needed
  106.     for specialized tasks that they are meant for.  The above short
  107.     description of each package should give you a clue if you need it.
  108.     In general, if you want to be able to print documents with as many
  109.     fonts as possible, and if you have Ghostscript or PostScript type1
  110.     fonts installed on your system, you'll want Gsf2PK and Ps2Pk; if you
  111.     need to rearrange, edit, concatenate, and generally move around DVI
  112.     files, you'll want DTL, DviDvi and SeeTeX packages; and if you write
  113.     a lot of TeX documents, grab Lacheck and Makeindex.
  114.  
  115.     Some other related tasks are printing Texinfo docs or converting
  116.     Texinfo documentation to PostScript format.  For these, you will
  117.     need the `texindex' program and the `texi2dvi' shell script from
  118.     the GNU Texinfo package (available in v2gnu/txiNNNb.zip from DJGPP
  119.     archives), and the packages required to print a DVI file on your
  120.     type of printer, as listed in the above matrix.
  121.  
  122.     The Web2c distribution (webcNNb.zip file) also includes Knuth's
  123.     `tangle' and `weave' programs.  These will probably be unused
  124.     unless you want to experiment with so-called ``Literate
  125.     programming'' whereby the sources and the formatted docs of a
  126.     program are produced from a single master file written in a
  127.     special language called `Web'.  (These programs are here because
  128.     TeX, MetaFont and other programs were themselves written by Donald
  129.     Knuth in Web.)  If you are interested in this, check out some of
  130.     the news groups devoted to literate programming.
  131.  
  132.     Note that the Texmflib distribution does not (and cannot) include
  133.     all the fonts that are required for typesetting various documents.
  134.     It only includes the basic fonts that are widely used in typical
  135.     jobs.  If you encounter a case where the `maketex...'  programs
  136.     cannot create a missing font, you will need to find it on one of
  137.     the CTAN sites (see the URLs at the beginning of this README
  138.     file).  The fonts are kept on CTAN sites in the tex-archive/fonts
  139.     directory (look for files with a .tfm extension).  Missing macro
  140.     packages (*.sty and *.?tx files) can be found in the
  141.     tex-archive/macros directory.
  142.  
  143.     The sources are also divided into several zip files:
  144.  
  145.       webc72s.zip  -- original Knuth's programs and Web-to-C converter,
  146.       kpse32s.zip  -- Kpathsea[rch] library for generic path searching
  147.       dvps578s.zip -- Dvipsk sources
  148.       dvlj26s.zip  -- Dviljk sources
  149.       dvdj09s.zip  -- sources for DeskJet drivers and the VGA previewer
  150.       dtl060s.zip  -- sources for the DTL package
  151.       dvdv11s.zip  -- sources for the dvidvi programs
  152.       gspk116s.zip -- sources of Gsf2PK program
  153.       lchk126s.zip -- sources for lacheck
  154.       midx213s.zip -- sources for makeindex program
  155.       mflx083s.zip -- sources for musixflx program
  156.       odps578s.zip -- sources for odvips
  157.       pspk15s.zip  -- sources of the ps2pk package
  158.       seet31s.zip  -- sources for the seetex package
  159.       t4ht-a8s.zip -- sources of the tex4ht program
  160.  
  161.  
  162. II. Installation of the binary packages
  163.     -----------------------------------
  164.  
  165.     - Unzip the downloaded archives from the root of your DJGPP
  166.       installation tree.  If you are doing this on Windows 9x, use an
  167.       unzip program that supports long filenames.  Don't forget the
  168.       `-d' switch if you are using PKUNZIP.
  169.  
  170.     - If your DJGPP.ENV includes the following two lines, then REMOVE
  171.       THEM:
  172.  
  173.       +TEXMF=%DJDIR%/share/texmf
  174.       +TEXMFCNF=.;$SELFAUTODIR/share/texmf/web2c;%DJDIR%/share/texmf/web2c
  175.  
  176.       The current Texk setup automatically takes care of defining these
  177.       variables correctly, and these variables can conflict with the new
  178.       setup introduced with version 7.2 of Web2c.
  179.  
  180.     - The first few times when you run the DVI drivers, they will
  181.       create several fonts on the fly.  This is normal behavior and
  182.       should not alarm you, since the distribution comes without any
  183.       gf or pk fonts whatsoever.  The generated fonts are left on your
  184.       system for future jobs, so as you process more and more
  185.       documents, the probability of bumping into a missing font will
  186.       get lower.
  187.  
  188.       The generated fonts will by default be installed inside the
  189.       share/texmf tree, where they will be available for future use by
  190.       the package programs.  However, you might want the generated fonts
  191.       to go to a different hierarchy, for example if you'd like to purge
  192.       those files from time to time (to preserve disk space).  If the
  193.       share/texmf tree is on write-protected media (e.g. CD-ROM), mktex*
  194.       programs will do that automatically; if not, you will need to set
  195.       the read-only bit of share/texmf and share/texmf/fonts, like this:
  196.  
  197.         attrib +R c:/djgpp/share/texmf
  198.         attrib +R c:/djgpp/share/texmf/fonts
  199.  
  200.       (DOS and Windows ignore the read-only bit for directories, so this
  201.       won't prevent other programs from writing to these trees or even
  202.       deleting them; but all programs that create files using the
  203.       Kpathsea library will notice this bit and won't put any files
  204.       there.)
  205.  
  206.       When share/texmf is read-only, the default directory to put fonts
  207.       is %DJDIR%/var/texfonts (it will be created if it doesn't already
  208.       exist).  If you want the fonts to go to another place, set the
  209.       variable VARTEXFONTS in the environment to point there.  For
  210.       example:
  211.       
  212.     set VARTEXFONTS=d:/var/tmp/texfonts
  213.  
  214.     - Add the following (large) fragment to your `info/dir' file, unless
  215.       it's already there:
  216.  
  217. TeX
  218. * DVI-to-Postscript: (dvips).        Translating TeX DVI files to PostScript.
  219. * afm2tfm: (dvips)Invoking afm2tfm.  Making Type 1 fonts available to TeX.
  220. * dvips: (dvips)Invoking Dvips.      DVI-to-PostScript translator.
  221. * Kpathsea: (kpathsea).                       File lookup along search paths.
  222. * Web2c: (web2c).                    TeX, Metafont, and companion programs.
  223. * bibtex: (web2c)bibtex invocation.             Maintaining bibliographies.
  224. * dmp: (web2c)dmp invocation.                   Troff->MPX (MetaPost pictures).
  225. * dvicopy: (web2c)dvicopy invocation.           Virtual font expansion
  226. * dvitomp: (web2c)dvitomp invocation.           DVI to MPX (MetaPost pictures).
  227. * dvitype: (web2c)dvitype invocation.           DVI to human-readable text.
  228. * gftodvi: (web2c)gftodvi invocation.           Generic font proofsheets.
  229. * gftopk: (web2c)gftopk invocation.             Generic to packed fonts.
  230. * gftype: (web2c)gftype invocation.             GF to human-readable text.
  231. * inimf: (web2c)inimf invocation.               Initial Metafont.
  232. * inimpost: (web2c)inimpost invocation.         Initial MetaPost.
  233. * initex: (web2c)initex invocation.             Initial TeX.
  234. * makempx: (web2c)makempx invocation.           MetaPost label typesetting.
  235. * mf: (web2c)mf invocation.                     Creating typeface families.
  236. * mft: (web2c)mft invocation.                   Prettyprinting Metafont source.
  237. * mltex: (web2c)MLTeX.                          Multi-lingual TeX.
  238. * mpost: (web2c)mpost invocation.               Creating technical diagrams.
  239. * mpto: (web2c)mpto invocation.                 MetaPost label extraction.
  240. * newer: (web2c)newer invocation.               Compare modification times.
  241. * patgen: (web2c)patgen invocation.             Creating hyphenation patterns.
  242. * pktogf: (web2c)pktogf invocation.             Packed to generic fonts.
  243. * pktype: (web2c)pktype invocation.             PK to human-readable text.
  244. * pltotf: (web2c)pltotf invocation.             Property list to TFM.
  245. * pooltype: (web2c)pooltype invocation.         Display WEB pool files.
  246. * tangle: (web2c)tangle invocation.             WEB to Pascal.
  247. * tex: (web2c)tex invocation.                   Typesetting.
  248. * tftopl: (web2c)tftopl invocation.             TFM -> property list.
  249. * vftovp: (web2c)vftovp invocation.             Virtual font -> virtual pl.
  250. * virmf: (web2c)virmf invocation.               Virgin Metafont.
  251. * virmpost: (web2c)virmpost invocation.         Virgin MetaPost.
  252. * virtex: (web2c)virtex invocation.             Virgin TeX.
  253. * vptovf: (web2c)vptovf invocation.             Virtual pl -> virtual font.
  254. * weave: (web2c)weave invocation.               WEB to TeX.
  255. * kpsewhich: (kpathsea)Invoking kpsewhich.    TeX file searching.
  256. * mktexmf: (kpathsea)mktex scripts.           MF source generation.
  257. * mktexpk: (kpathsea)mktex scripts.           PK bitmap generation.
  258. * mktextex: (kpathsea)mktex scripts.          TeX source generation.
  259. * mktextfm: (kpathsea)mktex scripts.          TeX font metric generation.
  260. * mktexlsr: (kpathsea)Filename database.      Update ls-R.
  261.  
  262.     - If you had a similar fragment in your info/dir file, make sure it
  263.       is *exactly* like listed above, especially in the last 5 lines:
  264.       the names of the mktex* programs were changed in this version of
  265.       Web2c to fit into the DOS 8+3 namespace limits, so the old
  266.       MakeTeX* entries are not useful anymore.
  267.  
  268.     - If you don't have any program that is capable of reading Info
  269.       files, download and install a port of the GNU Texinfo
  270.       distribution.  It is available as v2gnu/txiNNNb.zip from the
  271.       DJGPP ftp sites (NNN is the version number).
  272.  
  273.     - If you are new to TeX and TeX-related issues, be sure to read
  274.       the docs!  At the very least, you should read about the main
  275.       programs that you will be invoking, like `tex', `dvips',
  276.       `dvilj4' etc.  Another suggested reading is the Kpathsea docs
  277.       which describes the way the programs search for their files, and
  278.       is therefore the place to look for ways to customize your
  279.       installation.  (Note: `dvilj' programs are only documented in a
  280.       man page `dvilj.1' which unzips into your `info' subdirectory.
  281.       Use a pager such as `less' to read it.)
  282.  
  283.     - If you are familiar with TeX (or if you feel you are, after
  284.       reading the above docs), you might consider editing the
  285.       configuration files to customize the programs.
  286.  
  287.       The most important file is %DJDIR%/share/texmf/web2c/texmf.cnf
  288.       which defines default values for many variables and search paths.
  289.       It is extensively commented and will give you some ideas about
  290.       customization possibilities.  If you do change this file, it is
  291.       recommended to remove the word ``original'' from its first line,
  292.       so that if you build a new version of Texk, the installation
  293.       process won't overwrite your customized file.
  294.  
  295.       Dvips has its own system-wide configuration file:
  296.       share/texmf/dvips/config/config.ps; this lists some default
  297.       options and settings other than the pathnames from texmf.cnf.
  298.       Other, printer-specific configuration files are also there.
  299.  
  300.     - Make sure your system allows at least 50 files to be open
  301.       simultaneously.  Edit the FILES= setting of your CONFIG.SYS if
  302.       you need, and reboot the computer to let the new setting be in
  303.       effect.
  304.  
  305.     - If you installed kpseNNb.zip to develop programs which use the
  306.       Kpathsea library, and your DJGPP library version is 2.01,
  307.       compile the patched library functions in the gnu/web2c-X.Y/djgpp
  308.       directory and put them into your library.  For example:
  309.  
  310.     gcc -c -O3 gnu/web2c-7.2/djgpp/*.c
  311.     ar rvs lib/libc.a gnu/web2c-7.2/djgpp/*.o
  312.  
  313.     - That's it!  Texk is now installed and ready for work.  If you
  314.       have any problems, check out the "Troubleshooting" section
  315.       below.
  316.  
  317.     The following are some general notes about the binary
  318.     distribution:
  319.  
  320.     - Texk on Unix uses a few shell scripts for certain jobs.  A
  321.       notable example is the mktex* scripts that are used to
  322.       generate missing fonts on the fly.  The binary packages come
  323.       with both thes original shell scripts and with programs that
  324.       replace them.  The replacement programs don't require you to
  325.       install Bash and auxiliary utilities such as `cat', `cp', `mv'
  326.       etc., and also run faster.  However, if you would like to stick
  327.       to the original, rename or delete `maketex.exe', `makempx.exe'
  328.       and `dvihp.exe', remove the .sh extension from the bin/*.sh
  329.       files, and the Texk programs will call shell scripts like on
  330.       Unix (make sure you have Bash installed).
  331.  
  332.     - DviVGA is really a quick hack (it was not part of the original
  333.       Texk package).  It doesn't support any high-resolution SVGA
  334.       modes; the magnification is fixed when you invoke the program
  335.       and you can't change it while it runs; the text at default
  336.       magnification is barely readable; and the user interface leaves
  337.       a lot to be desired.  (You can change magnification by using
  338.       the `-m' command-line option: 1000 means the default, larger
  339.       numbers magnify.  However, note that each non-default
  340.       magnification will cause fonts to be generated for suitable DPI
  341.       values.)  For now, DviVGA is provided as a stop-gap for those
  342.       who have no other way of viewing DVI files; volunteers are
  343.       welcome to add features.
  344.  
  345.       As an alternative for viewing DVI files, consider installing a
  346.       port of Ghostscript and GhostView for Windows that will allow
  347.       you to view PostScript files (you can use Dvips to generate
  348.       PostScript from DVI).
  349.  
  350.     - If your printer is not one of those for which a DVI driver is
  351.       included in this package, install Ghostscript and pipe the
  352.       output of `dvips' to it.  Ghostscript supports many more
  353.       different printers beyond LaserJet and DeskJet.
  354.  
  355.     - The documentation of the TeX4Ht package is in HTML format.
  356.       Since there is no standard place to put HTML files in the DJGPP
  357.       hierarchy, the docs are supplied in a compressed file
  358.       `manual.tgz' which unzips into %DJDIR%/gnu/web2c-7.2/tex4htk.
  359.       Use the DJTAR program to unpack `manual.tgz'.
  360.  
  361.     - TeX4Ht might require to install and configure additional
  362.       programs, if you want incorporate graphics images in the HTML
  363.       files it produces.  Be sure to read the file README.djgpp in the
  364.       web2c-7.2/tex4htk directory for the gory details.
  365.  
  366.  
  367. III.Building the packages from sources
  368.     ----------------------------------
  369.  
  370.     - The following tools are REQUIRED to build and install Texk
  371.       programs (the parentheses list filenames of binary distributions
  372.       you can download from DJGPP archives if you don't have a
  373.       particular package):
  374.  
  375.         Bash (bsh1147b.zip)
  376.     Fileutils (fil316b.zip)
  377.     Textutils (txt122b.zip)
  378.     Grep (grep22b.zip)
  379.     Patch (pat25b.zip)
  380.     Sh-utils (shl112b.zip)
  381.     Sed (sed302b.zip)
  382.     Diffutils (dif2721b.zip)
  383.     Findutils (find41b.zip)
  384.     Ed (ed-02b.zip)
  385.     Gawk (gwk303b.zip)
  386.     Bison (bsn125b.zip)
  387.     Flex (flx254b.zip)
  388.  
  389.       All of these are available from the v2gnu directory on the usual
  390.       DJGPP sites.
  391.  
  392.     - tmflibNN.zip and kpseNNs.zip are required to build any part of the
  393.       package.  In addition, you will need to download the sources of
  394.       the programs you need to build (e.g., dvpsNNNs.zip for Dvips).
  395.       You will also need about 85M bytes of disk space to build the
  396.       full package.
  397.  
  398.     - unzip the downloaded archives from the root of your DJGPP
  399.       installation tree.  If you are doing this on Windows 9x, use an
  400.       unzip program that supports long filenames.  Don't forget the
  401.       `-d' switch if you are using PKUNZIP.
  402.  
  403.       This will create the `gnu/web2c-7.2' directory and unpack the
  404.       sources into the relevant subdirectories.  It will also create
  405.       the `share/texmf' directory and unpack the contents of Texmflib
  406.       library there.
  407.  
  408.     - For the port to work correctly, it needs patched versions of a
  409.       few library functions.  The patched sources are supplied in the
  410.       djgpp subdirectory of the kpseNNs.zip distribution.  Before
  411.       compiling Texk, you need to compile the *.c files in the djgpp
  412.       subdirectory and put them into your libc.a:
  413.  
  414.           gcc -c -O3 *.c
  415.           ar rvs c:/djgpp/lib/libc.a *.o
  416.  
  417.       (Change "c:/djgpp" to the correct pathname of your DJGPP
  418.       installation.)
  419.  
  420.     - At this point, I suggest you to read the file
  421.       `kpathsea/INSTALL.txt'.  It includes a detailed yet very
  422.       readable description of the various options available to you at
  423.       build and installation time.
  424.  
  425.     - Make sure your TMPDIR environment variable points to a drive
  426.       with enough free space.  Many DJGPP installations set this
  427.       variable to a RAM disk for performance reasons.  Since RAM disks
  428.       tend to be small (a few Megabytes), a complex shell script may
  429.       fill it by temporary files, typically from pipes and `command`
  430.       expansions, after which point programs run by that shell will
  431.       start to fail.  The Texk build process runs some very long and
  432.       complicated shell scripts which require around 4MB of free space
  433.       on TMPDIR filesystem (it failed for me when I had only 2.5MB).
  434.       If you cannot enlarge your RAM disk, point TMPDIR to a real disk
  435.       (the effect on the overall build time is insignificant, since
  436.       GCC will have hard time compiling some of the larger programs
  437.       with -O2 switch).  TMPDIR is usually set on the DJGPP.ENV file,
  438.       but you can override it by setting TMPDIR from the DOS prompt.
  439.  
  440.     - The default 256KB stack size limit of DJGPP programs is too
  441.       small for compiling some of the TeX programs.  Make sure your
  442.       cc1.exe program has at least 768KB of stack.  Here's how:
  443.  
  444.           stubedit cc1.exe minstack=768k
  445.  
  446.       (`stubedit' is part of the basic DJGPP development
  447.       environment).
  448.  
  449.     - The source distribution comes pre-configured for DJGPP v2.01.
  450.       To build, chdir to the web2c-7.2 directory and issue this command
  451.       to build the programs:
  452.  
  453.            make
  454.  
  455.       Building the full Texk package takes a while (about 2 hours
  456.       on a 486/DX2-66, 35 minutes on a Pentium-166), so you might go
  457.       for a cup of coffee while it compiles.  About half of this time
  458.       is for building programs in `web2c' subdirectory, so if you
  459.       don't need TeX, Metafont and related programs, I suggest not to
  460.       download webcNNs.zip.
  461.  
  462.       (Please note that I haven't tried to build parts of the
  463.       distribution, I only built all of the programs at once.  So if
  464.       you have any problems building, please report them to me.)
  465.  
  466.       If you are building Texk more than 18 months since it was
  467.       released, you might see a warning message while LaTeX is built
  468.       which complains about old sources.  In general, you can press
  469.       [Enter] in response to that message and let the build continue,
  470.       since the message is just a precaution.  However, if you do care
  471.       to have the latest stuff, you will need to download the
  472.       latex/base directory from one of the CTAN mirrors and replace
  473.       with it the files in latex/base which come with tmflib75.zip.
  474.  
  475.       The command "make" will by default build the kpathsea library,
  476.       the LJ4 and PostScript DVI drivers (`dvilj4' and `dvips'),
  477.       TeX, MetaFont and related programs in `web2c' directory, and any
  478.       of the auxiliary programs whose sources you downloaded.  If you
  479.       need other programs, you will need to issue these additional
  480.       commands:
  481.  
  482.     To build the programs that replace mktex... shell scripts
  483.     from the original package, do this:
  484.  
  485.            cd contrib
  486.            make
  487.  
  488.         To build DVI drivers for other LaserJet printers:
  489.  
  490.            cd dviljk
  491.            make all  (or e.g. "make dvilj2p" if you need a
  492.                    driver for LaserJet 2P only)
  493.  
  494.     To build DVI drivers for DeskJet 500/550C printers and the DVI
  495.     previewer for VGA display:
  496.  
  497.            cd dvidjk
  498.            make
  499.  
  500.     - You might want to reconfigure the package, for instance if you
  501.       want to build it with other built-in default pathnames, or if
  502.       changes in the DJGPP library require different HAVE_XXX macros
  503.       to be defined before you recompile.  To this end, you need to
  504.       run the `configure' script in the web2c-X.Y directory.  The
  505.       easiest way to do that is by calling the `djgpp/config.bat'
  506.       batch file, which sets some environment variables and then
  507.       invokes Bash to run the script with necessary arguments.  (You
  508.       can edit the batch file if you want to run the script with
  509.       different arguments.)  The command is this:
  510.  
  511.         djgpp\config
  512.  
  513.     - It is possible to configure and build Texk from a directory
  514.       other than where the sources reside (useful when you cannot
  515.       write to that directory, like if it's on a CD-ROM).  In that
  516.       case, you need to invoke `configure.bat' with a single argument
  517.       which is the full pathname of the source directory.  For
  518.       example:
  519.  
  520.         f:\gnu\web2c-7.2\djgpp\config f:/gnu/web2c-7.2
  521.  
  522.       Note that you MUST use Unix-style forward slashes in the
  523.       argument you pass to `config.bat', or else it will fail.
  524.  
  525.     - The configure script will run for a while and recursively
  526.       configure the programs in subdirectories.  (It takes about 20
  527.       minutes on my P166 to configure the full distribution.)
  528.  
  529.     - After running `configure', just say "make" as explained above.
  530.  
  531.     - If you have changed some of the programs in the package, it is a
  532.       good idea to run tests on them.  The Makefile in the web2c
  533.       directory has a large number of xxx-check targets, where xxx is
  534.       the name of a program; you can run these one by one by going
  535.       into web2c and saying like so:
  536.  
  537.          make gftopk-check
  538.  
  539.       Some of the tests appear to fail (`diff' prints some actual
  540.       differences between the test results and the reference files
  541.       that come with the package.  In most cases, this is normal
  542.       behavior (the programs were changed since the canonical results
  543.       were computed); the file `web2c/tests/check.log' includes the
  544.       output you should see for each test.  If your results coincide
  545.       with `check.log' (except for the version of the package that the
  546.       programs print), you are doing fine.
  547.  
  548.       Besides the web2c programs, some other packages have their own
  549.       test suites.  A good rule of thumb is to chdir to the top
  550.       subdirectory of the package you want to test and type "make
  551.       check"; if this produces the "Nothing to be done for `check'"
  552.       message from Make, read the README file in that directory: some
  553.       of them describe manual procedures for testing the built package
  554.       (I have meticulously run these test procedures for every package
  555.       that has one, and added any files required to run the tests to
  556.       the tmflibNN.zip distribution, so you should expect all the
  557.       tests to pass if all's well.)
  558.  
  559.     - Before installing, if you already have a previous version of
  560.       Texk installed, review your `texmf.cnf' configuration file (in
  561.       %TEXMF%/web2c directory).  If you have changed it from the
  562.       original, you might want the installation process to leave it
  563.       alone and not overwrite it with the fresh copy from the
  564.       distribution.  In that case, edit `texmf.cnf' and remove the
  565.       word "original" from its first line.  This tells the
  566.       installation process to refrain from replacing that file.
  567.  
  568.       Note that `texmf.cnf' file distributed with the binary packages
  569.       was edited to make it suitable for DJGPP, but the word
  570.       "original" was NOT removed from it!
  571.  
  572.       Also note that the configuration setup has changed since version
  573.       7.0 in minor but significant ways, and if you have good reasons
  574.       to keep your old texmf.cnf file, some manual work might be
  575.       needed to reconcile the new setup with your preferences of yore.
  576.  
  577.     - To install the programs, say "make install" in the top
  578.       directory.  This will create missing directories and copy the
  579.       programs and auxiliary files to their places.  If you run "make"
  580.       without reconfiguring the package, the "install" targets assume
  581.       that DJGPP is rooted at C:\DJGPP and put everything there; you
  582.       can then move the files to their proper places, like so:
  583.  
  584.             cp -Rp c:/djgpp/* d:/gnu/djdir
  585.             rm -rf c:/djgpp
  586.  
  587.       (This assumes that DJGPP is actually installed in D:\GNU\DJDIR;
  588.       if not, change the last `cp' argument as appropriate.)
  589.  
  590.       If you have built additional programs (like the `dvivga'
  591.       previewer), you will need to install them manually, since the
  592.       default "install" targets won't install them.
  593.  
  594. IV. Troubleshooting
  595.     ---------------
  596.  
  597.     I do NOT intend here to replace the various chapters in the docs
  598.     which explain how to solve problems and report bugs.  Please read
  599.     the docs whenever you see any seemingly abnormal behavior.  What's
  600.     below is intended to mention a few DOS- and DJGPP-specific
  601.     problems that you might see, and how to get around them.
  602.  
  603.     First, a word of warning.  Texk is a tremendously large and
  604.     complex package, with dozens of different programs, some of them
  605.     with many different options.  While porting it, I've made a good-
  606.     faith effort to test everything I could, including using it to
  607.     generate printed versions of various TeX and Texinfo documents.
  608.     However, some bugs must be still there.  In addition, some
  609.     programs in this release are ported to DJGPP for the first time.
  610.     Please treat this port accordingly and report related bugs to the
  611.     DJGPP news group (comp.os.msdos.djgpp) first.
  612.  
  613.     One possible problem you could see is due to insufficient number
  614.     of available file handles.  `Dvilj' is particularly prone to this
  615.     problem.  If you ever see an error message to the effect that a
  616.     program has no more handles, edit your CONFIG.SYS and enlarge the
  617.     FILES= setting there.
  618.  
  619.     Another related problem manifests itself by an error message like
  620.     so:
  621.  
  622.         c:\djgpp\bin/mf.exe: cannot open
  623.  
  624.     This usually happens when a DVI driver finds a missing font and
  625.     invokes the METAFONT program to generate them on the fly.  Due to
  626.     peculiarities of file handles inheritance from parent to child
  627.     processes, the child process can sometimes fail to start because
  628.     the stub cannot open the .exe file.  I think I've fixed these
  629.     problems, so you shouldn't see such messages, but if you do,
  630.     please report the details.
  631.  
  632.     If the font-creation fails, a file named `missfont.log' is created
  633.     in the current directory, with the commands you should issue to
  634.     make these fonts.  Many times, invoking that file as a batch file
  635.     will create the missing fonts, so you could then invoke the DVI
  636.     driver again and it will work.
  637.  
  638.  
  639.     Happy TeXing!
  640.  
  641.                 Eli Zaretskii <eliz@is.elta.co.il>
  642.