summaryrefslogtreecommitdiff
path: root/Build/extra/djgpp/README.djgpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/extra/djgpp/README.djgpp')
-rw-r--r--Build/extra/djgpp/README.djgpp207
1 files changed, 207 insertions, 0 deletions
diff --git a/Build/extra/djgpp/README.djgpp b/Build/extra/djgpp/README.djgpp
new file mode 100644
index 00000000000..8579633b28e
--- /dev/null
+++ b/Build/extra/djgpp/README.djgpp
@@ -0,0 +1,207 @@
+This directory includes files required to build TeX and related
+programs with the DJGPP port of GNU tools for MS-DOS and MS-Windows.
+DJGPP produces 32-bit protected-mode programs which run on all
+Microsoft platforms. On plain MS-DOS they need a DPMI server (a free
+server is available as v2misc/csdpmiNb.zip that can be downloaded from
+DJGPP archives on SimTel.NET mirrors). MS-Windows have DPMI services
+built into them. When run on Windows 9X, the DJGPP-compiled programs
+support long file names.
+
+
+ Building the package from sources
+ ---------------------------------
+
+ - The following tools are REQUIRED to build and install Web2c
+ programs (the parentheses list filenames of binary distributions
+ you can download from DJGPP archives if you don't have a
+ particular package):
+
+ Bash (bsh1147b.zip)
+ Fileutils (fil316b.zip)
+ Textutils (txt122b.zip)
+ Grep (grep22b.zip)
+ Patch (pat25b.zip)
+ Sh-utils (shl112b.zip)
+ Sed (sed302b.zip)
+ Diffutils (dif2721b.zip)
+ Findutils (find41b.zip)
+ Ed (ed-02b.zip)
+ Gawk (gwk303b.zip)
+ Bison (bsn125b.zip)
+ Flex (flx254b.zip)
+
+ All of these are available from the v2gnu directory on the usual
+ DJGPP sites, e.g. ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/.
+
+ The above tools are IN ADDITION to the basic DJGPP development
+ environment that is required to compile and link C programs.
+ Consult the file v2/readme.1st and the DJGPP FAQ list in
+ v2/faqNNNb.zip, for details about the basic package.
+
+ - Unzip the downloaded Web2c and Texmflib distributions from the
+ root of your DJGPP installation tree. If you are doing this on
+ Windows 9x, use an unzip program that supports long filenames.
+
+ This will create the top directory and unpack the sources
+ into the relevant subdirectories. It will also create the
+ `share/texmf' directory and unpack the contents of Texmflib
+ library there.
+
+ - At this point, I suggest you to read the file
+ `kpathsea/INSTALL.txt'. It includes a detailed yet very
+ readable description of the various options available to you at
+ build and installation time.
+
+ - Make sure your TMPDIR environment variable points to a drive
+ with enough free space. Many DJGPP installations set this
+ variable to a RAM disk for performance reasons. Since RAM disks
+ tend to be small (a few Megabytes), a complex shell script may
+ fill it with temporary files, typically from pipes and `command`
+ expansions, after which point programs run by that shell will
+ start to fail. The TeX build process runs some very long and
+ complicated shell scripts which require around 4MB of free space
+ on TMPDIR filesystem (it failed for me when I had only 2.5MB).
+ If you cannot enlarge your RAM disk, point TMPDIR to a real disk
+ (the effect on the overall build time is insignificant, since
+ GCC will have hard time compiling some of the larger programs
+ with -O2 switch). TMPDIR is usually set on the DJGPP.ENV file,
+ but you can override it by setting TMPDIR from the DOS prompt.
+
+ - The default 256KB stack size limit of DJGPP programs is too
+ small for compiling some of the TeX programs. Make sure your
+ cc1.exe program has at least 768KB of stack. Here's how:
+
+ stubedit cc1.exe minstack=768k
+
+ (`stubedit' is part of the basic DJGPP development
+ environment).
+
+ - To configure the package for DJGPP, run the `config.bat' batch
+ file in the djgpp subdirectory. This sets some environment
+ variables and then invokes Bash to run the configuration script
+ with necessary arguments. (You can edit the batch file if you
+ want to run the script with different arguments.) The command
+ is this:
+
+ djgpp\config
+
+ - It is possible to configure and build Web2c from a directory
+ other than where the sources reside (useful when you cannot
+ write to that directory, like if it's on a CD-ROM). In that
+ case, you need to invoke `config.bat' with a single argument
+ which is the full pathname of the source directory. For
+ example:
+
+ f:\gnu\web2c-7.2\djgpp\config f:/gnu/web2c-7.2
+
+ Note that you MUST use Unix-style forward slashes in the
+ argument you pass to `config.bat', or else it will fail.
+
+ - The configure script will run for a while and recursively
+ configure the programs in subdirectories.
+
+ - After running `config', just say "make".
+
+ Building the full Web2c package takes a while (about 2 hours
+ on a 486/DX2-66, 35 minutes on a Pentium-166), so you might go
+ for a cup of coffee while it compiles.
+
+ - To build the emulation programs in the `contrib' directory,
+ chdir into that directory and say "make". Compiling `regex.c'
+ triggers several warning messages about variables that ``might
+ be used uninitialized''; you can safely disregard these
+ warnings.
+
+ - If you are building Texk more than 18 months since it was
+ released, you might see a warning message while LaTeX is built
+ which complains about old sources. In general, you can press
+ [Enter] in response to that message and let the build continue,
+ since the message is just a precaution. However, if you do care
+ to have the latest stuff, you will need to download the
+ latex/base directory from one of the CTAN mirrors and replace
+ with it the files in latex/base which come with tmflib74.zip.
+
+ - If you have changed some of the programs in the package, it is a
+ good idea to run tests on them. The Makefile in the web2c
+ directory has a large number of xxx-check targets, where xxx is
+ the name of a program; you can run these one by one by going
+ into web2c and saying like so:
+
+ make gftopk-check
+
+ You can also run all of them together by saying "make check" in
+ the top-level directory.
+
+ Some of the tests appear to fail (`diff' prints some actual
+ differences between the test results and the reference files
+ that come with the package. In most cases, this is normal
+ behavior (the programs were changed since the canonical results
+ were computed); the file `web2c/tests/check.log' includes the
+ output you should see for each test. If your results coincide
+ with `check.log' (except for the version of the package that the
+ programs print), you are doing fine.
+
+ - Before installing, if you already have a previous version of
+ Texk installed, review your `texmf.cnf' configuration file (in
+ %TEXMF%/web2c directory). If you have changed it from the
+ original, you might want the installation process to leave it
+ alone and not overwrite it with the fresh copy from the
+ distribution. In that case, edit `texmf.cnf' and remove the
+ word "original" from its first line. This tells the
+ installation process to refrain from replacing that file.
+
+ - To install the programs, say "make install" in the top
+ directory. This will create missing directories and copy the
+ programs and auxiliary files to their places. The programs
+ inside `contrib' need to be installed manually (typically, into
+ the same directory where the executable programs go).
+
+
+ Troubleshooting
+ ---------------
+
+ I do NOT intend here to replace the various chapters in the docs
+ which explain how to solve problems and report bugs. Please read
+ the docs whenever you see any seemingly abnormal behavior. What's
+ below is intended to mention a few DOS- and DJGPP-specific
+ problems that you might see, and how to get around them.
+
+ First, a word of warning. Web2c is a tremendously large and
+ complex package, with dozens of different programs, some of them
+ with many different options. While porting it, I've made a good-
+ faith effort to test everything I could, including using it to
+ generate printed versions of various TeX and Texinfo documents.
+ However, some bugs might still be there. Please treat this port
+ accordingly and report possible bugs to the DJGPP news group
+ (comp.os.msdos.djgpp) first.
+
+ One possible problem you could see is due to insufficient number
+ of available file handles. `Dvilj' is particularly prone to this
+ problem. If you ever see an error message to the effect that a
+ program has no more handles, edit your CONFIG.SYS and enlarge the
+ FILES= setting there. (Don't forget to reboot so the new setting
+ is in effect.)
+
+ Another related problem manifests itself by an error message like
+ so:
+
+ c:\djgpp\bin/mf.exe: cannot open
+
+ This usually happens when a DVI driver finds a missing font and
+ invokes the MetaFont program to generate them on the fly. Due to
+ peculiarities of file handles inheritance from parent to child
+ processes, the child process can sometimes fail to start because
+ the stub cannot open the .exe file. I think I've fixed these
+ problems, so you shouldn't see such messages, but if you do,
+ please report the details.
+
+ If the font-creation fails, a file named `missfont.log' is created
+ in the current directory, with the commands you should issue to
+ make these fonts. Many times, invoking that file as a batch file
+ will create the missing fonts, so you could then invoke the DVI
+ driver again and it will work.
+
+
+ Happy TeXing!
+
+ Eli Zaretskii <eliz@is.elta.co.il>