1: You need gcc version 2.0 or later to compile gforth.
2:
3: First, type
4:
5: ./configure
6:
7: or
8:
9: CC=<whatever you call your gcc> ./configure
10:
11: if your local gcc installation uses a different name (e.g. gcc-2.7.2),
12: or you want to generate for a different binary format (e.g. "gcc -b
13: i486-linuxaout -V 2.7.0" to generate an a.out executable under Linux
14: which you may give your friends who don't have ELF libraries).
15:
16: configure has the following useful parameters:
17: --prefix=PREFIX install architecture-independent files in PREFIX
18: [default: /usr/local]
19: --exec-prefix=PREFIX install architecture-dependent files in PREFIX
20: [default: same as prefix]
21: --enable-force-reg Use explicit register declarations if they appear in
22: the machine.h file. This can cause a good speedup,
23: but also incorrect code with some gcc versions on
24: some processors (default disabled).
25: --enable-direct-threaded Force direct threading. This may not work on
26: some machines and may cause slowdown on others.
27: (default processor-dependent)
28: --enable-indirect-threaded Force indirect threading. This can cause a
29: slowdown on some machines.
30: (default processor-dependent)
31: --with-debug specifies option -g to compile with debug info (default)
32: --without-debug omits the -g switch and creates smaller images on
33: machines where strip has problems with gcc style
34: debugging informations.
35: --help: tells you about other parameters.
36:
37: If you don't like the defaults for the installation directories, you
38: should override them already during configure. E.g., if you want to
39: install in the /gnu hierarchy instead of in the default /usr/local
40: hierarchy, say
41:
42: ./configure --prefix=/gnu
43:
44: After, configuration, type
45:
46: make
47:
48: If your make has trouble with the Makefile, "make gforth" might work.
49:
50: If your installed gcc isn't called "gcc" (e.g., called "gcc-2.7.2"), type
51:
52: make GCC=<whatever you call your gcc>
53:
54: instead. The more appropriate place to select your compiler is when
55: running configure.
56:
57: Now you can check whether your shiny new Forth system works. Say
58:
59: make test
60:
61: You can run some benchmarks with
62:
63: make bench
64:
65: and compare them with the results in Benchres and in the manual.
66:
67: If everything is allright, you may want to install gforth. Type
68:
69: make install
70:
71: You have to make an entry in the info directory file manually.
72:
73: For paper documentation, print gforth.ps (a Postscript file (300dpi
74: fonts, i.e., it works, but does not produce best quality on better
75: printers)), or say
76:
77: make gforth.dvi
78:
79: and print the resulting file gforth.dvi. You can also get the
80: documentation in HTML format by typing
81:
82: make html
83:
84: Multiple Versions and Deinstallation
85:
86: Several versions of Gforth can be installed and used at the same
87: time. Version `foo' can be invoked with `gforth-foo'. We recommend to
88: keep the old version for some time after a new one has been installed.
89:
90: You can deinstall this version of Gforth with 'make uninstall' and
91: version foo with 'make uninstall VERSION=foo'. 'make uninstall' also
92: tells you how to uninstall Gforth completely.
93:
94: A Possible Problem
95:
96: You need to read this only if you see a message like
97:
98: "gforth: Cannot load nonrelocatable image (compiled for address 0x1234) at address 0x5678
99: The Gforth installer should look into the INSTALL file"
100:
101: Gforth supports both relocatable and fixed-address images. If you load
102: normal Forth code and save the image, you get a fixed-address
103: image. Producing a relocatable image is more difficult.
104:
105: Therefore, Gforth has only a relocatable image of the kernel
106: (kernal.fi), which is powerful enough to load the rest of
107: Gforth. However, loading the rest takes a noticable amount of time. To
108: avoid this delay (which would occur on every startup), the
109: installation procedure produces an image fixed at an address
110: determined at the Gforth run that produced the image. This
111: fixed-address image is loaded by default. On most OSs this works,
112: because the first chunk of memory is always allocated at the same
113: address. If the address changes, you get the message above.
114:
115: An image address change can be caused by a change of the gforth
116: executable, or by a change (upgrade) of the OS; in these cases you
117: just have to rebuild and reinstall the fixed address image with
118:
119: rm gforth.fi; make gforth.fi; make install
120:
121: If you get such a message with a different address in place of the
122: 0x5678 each time you try to start gforth, you cannot use fixed-address
123: images on your OS. In this case, send us a message so that we start
124: searching for a comfortable solution to this problem. In the
125: meantime, start gforth with
126:
127: gforth -i kernal.fi startup.fs
128:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>