MS-DOS:

You need DJ Delorie's port of GCC to DOS (DJGPP 2.0) to compile
Gforth. DJGPP provides a DPMI client that allows to use the 32-bit
features of the 80386, but on the other hand it requires at least a
386. A DPMI host is also part of the DJGPP 2.0 package, this is
required if you don't have a DPMI host yourself (Windows/OS/2/Linux
DOS-box, Quemm or others).

OS/2:

You need EMX 0.9c to compile Gforth. The EMX package provides all
necessary Unix-like tools, tty and signal handling.

If you don't want to install the DJGPP or EMX package (quite large),
look for a binary distribution of Gforth for DOS or OS/2. You also
must have a version of GNU make, because DOS/OS/2 make programs are
likely to have problems with the Makefile. If you want to change
Gforth, you may need GNU m4, too. Because DJGPP provides use of long
filenames under Windows 95, you should unpack the gforth package with
a Windows-95-aware archiver (those from DJGPP or the Cygnus
Win32-package come in mind), because otherwise gforth will not find
the necessary files. With MS-DOS versions prior 7.0 or DR-DOS, these
names are cut due to the 8.3 rule. This might confuse DJGPP 2.0's
make, you could use DJGPP 1.x's make instead. Gforth 0.2.0 hasn't been
compiled with a MS-DOS prior 7.0.

Compiling under DOS or OS/2 has a number of quirks, and if it doesn't
compile out of the box, you should know what you do. I therefore
discourage unexperienced users to compile gforth themselfes. There's a
binary package for it anyway.

If you don't bother and want to make it yourself, type

configure

configure has the following useful parameters:
  --enable-force-reg      Use explicit register declarations if they appear in
                          the machine.h file. This can cause a good speedup,
                          but also incorrect code with some gcc versions on
                          some processors (default disabled).
  --enable-direct-threaded      Force direct threading. This may not work on
                                some machines and may cause slowdown on others.
                                (default disabled)
  --enable-indirect-threaded    Force indirect threading. This can cause a
                                slowdown on some machines.
                                (default enabled)

After covering all inconveniences, type

make

Now you can check whether your shiny new Forth system works. Say

make test

You can run some benchmarks with

make bench

and compare them with the results in Benchres and in the manual.

Don't try to do "make install", it won't work, either. It is not possible to
"make dist" or "make bindist", too, because of the limitations of DOS
command lines.

Add the following entry to your Autoexec.bat:

SET GFORTHPATH=<your gforth source directory>;.

Use / instead of \ in your gforth source directory. Gforth now uses
';' as path separator, so you won't have problems with DOS pathes that
may contain ':', which is the default path separator in Unix.

For paper documentation, print gforth.ps (a Postscript file (300dpi
fonts, i.e., it works, but does not produce best quality on better
printers)), or say

make gforth.dvi

and print the resulting file gforth.dvi (you need TeX for that! But
with TeX you can print it even if you don't have a Postscript printer
nor Ghostscript).  You could be able to make a HTML version of the
document, but AFAIK there is no texi2html for DOS available, as there
is no perl available.
