3: You need DJ Delorie's port of GCC to DOS (DJGPP 2.0) to compile
4: Gforth. DJGPP provides a DPMI client that allows to use the 32-bit
5: features of the 80386, but on the other hand it requires at least a
6: 386. A DPMI host is also part of the DJGPP 2.0 package, this is
7: required if you don't have a DPMI host yourself (Windows/OS/2/Linux
8: DOS-box, Quemm or others).
10: First run
14: config has the following useful parameters:
15: --enable-force-reg Use explicit register declarations if they appear in
16: the machine.h file. This can cause a good speedup,
17: but also incorrect code with some gcc versions on
18: some processors (default disabled).
19: --enable-direct-threaded Force direct threading. This may not work on
20: some machines and may cause slowdown on others.
21: (default disabled)
22: --enable-indirect-threaded Force indirect threading. This can cause a
23: slowdown on some machines.
24: (default enabled)
28: You need EMX 0.9c to compile Gforth. The EMX package provides all
29: necessary Unix-like tools, tty and signal handling.
31: Windows 95/Windows NT:
33: You need the Cygnus Win32 package. This package currently is only in
34: beta test, so expect bugs and quirks.
36: If you don't want to install the DJGPP, CYGWIN32 or EMX package (quite
37: large), look for a binary distribution of Gforth for DOS, Win32 or
40: You also must have a version of GNU make, because DOS/Win32/OS/2 make
41: programs are likely to have problems with the Makefile. If you want to
42: change Gforth, you may need GNU m4, too. Because DJGPP provides some
43: use of long filenames under Windows 95, you should unpack the gforth
44: package with a Windows-95-aware archiver (those from DJGPP or the
45: Cygnus Win32-package come in mind), because otherwise gforth will not
46: find the necessary files. With MS-DOS versions prior 7.0 or DR-DOS,
47: these names are cut due to the 8.3 rule. This might confuse DJGPP
48: 2.0's make, you could use DJGPP 1.x's make instead. Gforth 0.4.0
49: hasn't been compiled with a MS-DOS prior 7.0.
51: Compiling under DOS or OS/2 has a number of quirks, and if it doesn't
52: compile out of the box, you should know what you do. I therefore
53: discourage unexperienced users to compile gforth themselves. There's a
54: binary package for it anyway.
56: Compiling using CygWin32 works a bit better, but there are still
57: quirks. The package allows to "mount" Windows directories under
58: typical unix locations. E.g. I installed the package in E:\cygnus, and
59: then I mount /usr, /usr/local and /bin with
61: ./mount e:/cygnus /usr
62: ./mount e:/cygnus/H-i386-cygwin32 /usr/local
63: ./mount e:/cygnus/H-i386-cygwin32/bin /bin
65: once. Each time I start CygWin32's bash, I set up the following variables:
67: export TMPDIR=/usr/tmp
68: export COMPILER_PATH=/usr/local/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-970404
69: export LIBRARY_PATH="/usr/lib;/usr/local/lib"
70: export C_INCLUDE_PATH=/usr/local/i386-cygwin32/include
71: export GCC_DEFAULT_OPTIONS="-specs=$COMPILER_PATH/specs"
72: export PATH=/bin:.:$PATH
74: Write this into a script and source it in at each bash invocation, or
75: put it into your .bashrc.
77: If you don't bother and want to make it yourself, type
81: configure has the following useful parameters:
82: --enable-force-reg Use explicit register declarations if they appear in
83: the machine.h file. This can cause a good speedup,
84: but also incorrect code with some gcc versions on
85: some processors (default disabled).
86: --enable-direct-threaded Force direct threading. This may not work on
87: some machines and may cause slowdown on others.
88: (default disabled)
89: --enable-indirect-threaded Force indirect threading. This can cause a
90: slowdown on some machines.
91: (default enabled)
93: After covering all inconveniences, type
97: Now you can check whether your shiny new Forth system works. Say
99: make test
101: You can run some benchmarks with
103: make bench
105: and compare them with the results in Benchres and in the manual. DOS
106: and OS/2 don't allow to run the benchmarks, since the command TIME
107: means something different there.
109: Don't try to do "make install" there, it won't work, either. It is not
110: possible to "make dist" or "make bindist", too, because of the
111: limitations of DOS command lines.
113: Add the following entry to your Autoexec.bat:
115: SET GFORTHPATH=<your gforth source directory>;.
117: Use / instead of \ in your gforth source directory. Gforth now uses
118: ';' as path separator for DOS and OS/2 (not for Cygwin32), so you
119: won't have problems with DOS pathes that may contain ':', which is the
120: default path separator in Unix. Use ~+ for the current directory.
122: For paper documentation, print gforth.ps (a Postscript file (300dpi
123: fonts, i.e., it works, but does not produce best quality on better
124: printers)), or say
126: make gforth.dvi
128: and print the resulting file gforth.dvi (you need TeX for that! But
129: with TeX you can print it even if you don't have a Postscript printer
130: nor Ghostscript). You could be able to make a HTML version of the
131: document, but AFAIK there is no texi2html for DOS available, as there
132: is no perl available. You should get the HTML pages from the same
133: location where you got Gforth or from