1.1 Compiling GNU Smalltalk
The first thing to do to compile GNU Smalltalk is to configure the
program, creating the makefiles and a `gstconf.h', which contains
guesses at the system's peculiarities. This configuration
is performed automatically by the `configure' shell
script; to run it, merely type:
Options that you can pass to configure include --disable-dld , which
precludes Smalltalk programs from dynamically linking libraries at run-time.
After you've configured GNU Smalltalk, you can compile the system by typing:
Smalltalk should compile and link with no errors. If compiling goes
wrong you might want to check the commands used to launch the compiler.
For example, be sure to check if your compiler has extensions which,
if not enabled, don't make it ANSI compatible. If this is the case,
type
| make distclean
CFLAGS=needed command-line flags
|
and retry the configure/make process. In very particular cases, the
configure script might miss the presence of a header file or a function
on your system. You can patch the `config.cache' file created by
the configure process. For example, if configure did not find your
`unistd.h' header file, change the line reading
| ac_cv_header_unistd_h=${ac_cv_header_unistd_h='no'}
| to
| ac_cv_header_unistd_h=${ac_cv_header_unistd_h='yes'}
|
and, again, retry the configure/make process.
The last lines of the make output should be like this:
| export SMALLTALK_KERNEL=`cd ./kernel; pwd`; \
./gst -iQ dummy_file
make[2]: Leaving directory `/home/utente/devel-gst'
make[1]: Leaving directory `/home/utente/devel-gst'
|
At this point, you have a working GNU Smalltalk. Congratulations!!!
You will also want to store the Smalltalk sources and create the image
file in the proper place (the image file contains a full snapshot of
the status of the system). This is done automatically when you do
a make install . Specifying --enable-modules
as an option to configure will load Smalltalk packages in the automatically
installed image. For example
| ./configure --enable-modules=Blox,TCP
|
will create an image with the Blox user interface toolkit and the
TCP abstraction library built-in.
|