-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.DOS
142 lines (107 loc) · 5.64 KB
/
INSTALL.DOS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Authors: Bernd Paysan, Anton Ertl
Copyright (C) 2003,2019 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
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).
First run
config
config 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)
OS/2:
You need EMX 0.9c to compile Gforth. The EMX package provides all
necessary Unix-like tools, tty and signal handling.
Windows 95/Windows NT:
You need the Cygnus Win32 package. This package currently is only in
beta test, so expect bugs and quirks.
If you don't want to install the DJGPP, CYGWIN32 or EMX package (quite
large), look for a binary distribution of Gforth for DOS, Win32 or
OS/2.
You also must have a version of GNU make, because DOS/Win32/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 some
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.4.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 themselves. There's a
binary package for it anyway.
Compiling using CygWin32 works a bit better, but there are still
quirks. The package allows to "mount" Windows directories under
typical unix locations. E.g. I installed the package in E:\cygnus, and
then I mount /usr, /usr/local and /bin with
./mount e:/cygnus /usr
./mount e:/cygnus/H-i386-cygwin32 /usr/local
./mount e:/cygnus/H-i386-cygwin32/bin /bin
once. Each time I start CygWin32's bash, I set up the following variables:
export TMPDIR=/usr/tmp
export COMPILER_PATH=/usr/local/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-970404
export LIBRARY_PATH="/usr/lib;/usr/local/lib"
export C_INCLUDE_PATH=/usr/local/i386-cygwin32/include
export GCC_DEFAULT_OPTIONS="-specs=$COMPILER_PATH/specs"
export PATH=/bin:.:$PATH
Write this into a script and source it in at each bash invocation, or
put it into your .bashrc.
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. DOS
and OS/2 don't allow to run the benchmarks, since the command TIME
means something different there.
Don't try to do "make install" there, 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 for DOS and OS/2 (not for Cygwin32), so you
won't have problems with DOS pathes that may contain ':', which is the
default path separator in Unix. Use ~+ for the current directory.
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. You should get the HTML pages from the same
location where you got Gforth or from
http://www.complang.tuwien.ac.at/forth/gforth/
or
ftp://ftp.complang.tuwien.ac.at/pub/forth/gforth/