http:/reality.sgi.com/boehm/gc.html
Just compile it and install it before compiling Sather. This package assumes to find a
library "libgc" (compiler switch -lgc) and a header file
Actually, SATHER_HOME does default to /usr/lib/sather,
now - at least partially. Problem is, that when packaging for Debian,
environment variables can't be used. A clean solution is being worked on.
Otherwise, go to the top directory and type `make'.
That should do the following things:
If you are porting the compiler to a new platform or simply
feeling adventurous, you may want to compile Sather compiler
sources using the boot compiler and install the resulting
compiler as your Sather compiler. See
memory requirements above.
You need to type 'make full-install' which repeats the steps
above up to compiling the boot compiler. Then it does the
following:
A common problem is for the tests of the IEEE extreme cases
(such as 0.0/0.0) to not come out right. If these fail on your
system, it's not a big deal and won't keep you from using the
compiler.
If you want to do a stress test compiling the new compiler with
itself, do a `
If you have to modify the garbage collector, please send the changes to
the author, Hans Boehm (boehm@parc.xerox.com), so he can include them
in his next release. If one wants to encapsulate existing c++ classes
for use with Sather, one would wish to have access to the c++
extensions in the GC library. This can be accomplished by changing
"make" to "make c++" in the rule for "System/GC/gc.a". This does not
hinder using straight Sather or Sather with external C code while
enabling the use of the garbage collector with GC compliant c++
classes.
Beware the jabberwock: if you didn't have CPP set properly on your
first make, be sure to delete any bogus empty System/CONFIG file
that got created by the redirect. Otherwise make
may not know to generate the good versions.
Be sure to let us know what you had to add to get things running so we
can include them in the next release. Whether it works or not, let us
know by sending mail to "bug-sather@gnu.org". Good luck!
- Boris
In this section, there was a whole bunch of information much of what seemed
completely outdated and useless, so I decided to dump it completely and start out
new. Most of this information will go into the Faq-O-Matic anyway where it can be
kept up-to-date much more easily.
Yoshida Atsushi <yoshida@tutkie.tut.ac.jp>, Aug 26, 1999:
Boot/sacomp did not work. The reason was gc. In the port of gc on
FreeBSD, gc is to be compiled with the option "-DREDIRECT_MALLOC=GC_malloc".
I made gc without this option, and compiled sacomp with it. This
sacomp worked fine. So, FreeBSD users need to make gc without this
option.
If you have ported it successfully to a system, send the changes to
<bug-sather@gnu.org> so they can be incorporated either in the source directly, or
where that is not possible, into this list, or let us know that it runs without changes.
Everything below this point may be outdated. Especially anything about the
Garbage Collector should be reworked, since the GC is no longer part of the distribution
but must be compiled and installed separately.
The default installation
Usually you just have to set the environment variabe "SATHER_HOME
"
to the base directory of the Sather package and then run "make
".
For the optional part you need to have Tk/Tcl and some kind of
socket support installed. File System/Common/CONFIG.proto has default
settings for many variables used during the installation (the name of a
make utility, C compiler, etc). These may need to be modified if, for
instance, you would like to use a parallel make utility or a proprietary
C compiler.
Things you need to install the compiler
More detailed installation instructions
These are the recommended step to install the Sather compilers.
Your system may have
particular requirements; if I know
these, they are listed later in this file.
The default make rule then goes on to make the optional packages,
the Browser, Gui and Graphical debugging.
MAKE_COMMAND
if you
have one. If you are lucky you might not have to change anything.
"/usr/lib/sather"
CONFIG is generated from System/Common/CONFIG.proto and
CONFIG files in various platform directories System/Platforms/*
that may overwrite and extend any definitions in CONFIG.proto.
The details are in Doc/runtime_spec.
(see Doc/PP.description
on how and why this happens)
(see Doc/runtime_spec for more information on
platforms. You can edit the top level Makefile to
select platforms for your system. The default platform
is "unix" but could be also changed by editing the Makefile.)
make testfull
'.
SATHER_HOME
and is not "burned in".
After completing the standard "make", the Makefile will go on to try and
install some optional library, browsing and debugging aids (the
Optional: Browser, Gui and Graphical Debugging -debug_graphical
compiler option). The corresponding rule
in the Makefile is "optional
".
For all of these you should have Tcl8.0 and Tk8.0 installed, and sockets available.
Here are some useful sites for Tcl and Tk:
System/Platforms/X/Platform.module
and
System/Platforms/tcltk/Platform.module
and change them to find your own include files and libraries.
System/Platforms/dualgui/dual_gui_server
.
Installing the dual process gui requires
sockets, which are configured for your platform in:
Systems/Platform/<your platform>/Platform.module
.
Most unix platforms should work fine.
You should be able to directly use the classes in
Library/System/Gui
by using the option (when compiling) of -gui
. You can
get at the dual gui (if it the server has been installed) by
using the compiler option -dualgui
. More details may be
found in: Gui/index.html
Bin/sabrowse
. Compile time errors can be related
to
The browser should be used in the same manner as the
compiler (see ../Browser/README).
System/Platforms/X/Platform.module
and
System/Platforms/tcltk/Platform.module
and change them to find your own include files and libraries.
../Browser/README
and tcl_tk_notes.
for more information.
Sometimes there are simple namespace conflicts. These can be
permanently eliminated by having me add the offending identifier to
Problems you might encounterSystem/FORBID
, and in the meantime add it yourself and do
a textual search-and-replace in the boot code to change it to something else.
Known changes necessary to compile on ported systems