File:  [gforth] / gforth / INSTALL
Revision 1.18: download - view: text, annotated - select for diffs
Sun Jan 7 17:22:06 1996 UTC (27 years ago) by anton
Branches: MAIN
CVS tags: HEAD
added more.fs for people with old terminals.
WORDS and SEE now now respect the terminal size.
a lot of reordering in the Makefile, approaching the GNU standards.
factored NAME>STRING out of many words.
removed emitcounter (it was not used anyway).
SYSTEM now unpreps and repreps the terminal.
fixed byg in prims2x.fs.
added NEEDS, ?CSP, !CSP.
rewrote ALIAS?.

You need gcc version 2.0 or later to compile gforth.

First, type


configure has the following useful parameters:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [default: /usr/local]
  --exec-prefix=PREFIX    install architecture-dependent files in PREFIX
                          [default: same as prefix]
  --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 processor-dependent)
  --enable-indirect-threaded    Force indirect threading. This can cause a
                                slowdown on some machines.
                                (default processor-dependent)
  --with-debug     specifies option -g to compile with debug info (default)
   --without-debug  omits the -g switch and creates smaller images on
                    machines where strip has problems with gcc style
                    debugging informations.
  --help: tells you about other parameters.

If you don't like the defaults for the installation directories, you
should override them already during configure.  E.g., if you want to
install in the /gnu hierarchy instead of in the default /usr/local
hierarchy, say

./configure --prefix=/gnu

Moreover, if your GCC is not called gcc (but, e.g., gcc-2.7.1), you
should say so during configuration. E.g.:

env CC=gcc-2.7.1 ./configure

You can also pass additional options to gcc in this way, e.g., if you
want to generate an a.out executable under Linux with gcc-2.7.0:

env "CC=gcc -b i486-linuxaout -V 2.7.0" ./configure

After, configuration, type


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.

If everything is all right, you may want to install gforth. Type

make install

You have to make an entry in the info directory file manually.

For paper documentation, print (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 can also get the
documentation in HTML format by typing

make html

If you prefer plain ASCII documentation, just concatenate the files* ('cat*' under Unix).

		Preloading installation-specific code

If you want to have some installation-specific files loaded when
Gforth starts (e.g., an assembler for your processor), put commands
for loading them into /usr/local/share/gforth/site-forth/site-init.fs
(if the commands work for all architectures) or
/usr/local/lib/gforth/site-forth/site-init.fs (for
architecture-specific commands);
/usr/local/lib/gforth/site-forth/site-init.fs takes precedence if both
files are present (unless you change the search path). The file names
given above are the defaults; if you have changed the prefix, you have
to replace "/usr/local" in these names with your prefix.

By default, the installation procedure creates an empty
/usr/local/share/gforth/site-forth/site-init.fs if there is no such

If you change the site-init.fs file, you should run "make install"
again for the changes to take effect (Actually, the part of "make
install" starting with "rm" is sufficient).

		Multiple Versions and Deinstallation

Several versions of Gforth can be installed and used at the same
time. Version `foo' can be invoked with `gforth-foo'. We recommend to
keep the old version for some time after a new one has been installed.

You can deinstall this version of Gforth with 'make uninstall' and
version foo with 'make uninstall VERSION=foo'. 'make uninstall' also
tells you how to uninstall Gforth completely.

			A Possible Problem

You need to read this only if you see a message like

"gforth: Cannot load nonrelocatable image (compiled for address 0x1234) at address 0x5678
The Gforth installer should look into the INSTALL file"

Gforth supports both relocatable and fixed-address images. If you load
normal Forth code and save the image, you get a fixed-address
image. Producing a relocatable image is more difficult.

Therefore, Gforth has only a relocatable image of the kernel
(, which is powerful enough to load the rest of
Gforth. However, loading the rest takes a noticable amount of time. To
avoid this delay (which would occur on every startup), the
installation procedure produces an image fixed at an address
determined at the Gforth run that produced the image. This
fixed-address image is loaded by default. On most OSs this works,
because the first chunk of memory is always allocated at the same
address. If the address changes, you get the message above.

An image address change can be caused by a change of the gforth
executable, or by a change (upgrade) of the OS; in these cases you
just have to rebuild and reinstall the fixed address image with

rm; make; make install

If you get such a message with a different address in place of the
0x5678 each time you try to start gforth, you cannot use fixed-address
images on your OS. In this case, send us a message so that we start
searching for a comfortable solution to this problem. In the
meantime, start gforth with

gforth -i startup.fs

FreeBSD-CVSweb <>