Installation Notes

Preliminaries

Sather uses Boehm Garbage Collector (GC) which is distributed separately. You may get it either at the site where you found Sather or at the original site:

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 in the normal include path.


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.


Optional: Browser, Gui and Graphical Debugging

After completing the standard "make", the Makefile will go on to try and install some optional library, browsing and debugging aids (the -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:


Problems you might encounter

Sometimes there are simple namespace conflicts. These can be permanently eliminated by having me add the offending identifier to System/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.

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


Known changes necessary to compile on ported systems

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.

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.