home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sa104os2.zip
/
SATHR104.ZIP
/
SATHER
/
DOC
/
INSTALL.TXT
< prev
next >
Wrap
Text File
|
1994-12-22
|
7KB
|
173 lines
Things you need to install the compiler:
You must have an ANSI C compiler. Gcc works well.
Your linker must be able to distinguish identifiers up to 32 characters.
You must be able to compile the Boehm garbage collector.
You'll need plenty of memory. The exact requirements depend
on the tools you use, but 40MB virtual memeory is a start.
You'll want >=16MB real memory to avoid thrashing during
installation when the compiler compiles itself. Less is fine
for smaller programs, or for installing overnight.
To install, follow these steps. Your system may have particular
requirements; if I know these, they are listed at the end of this file.
1. You may need to edit the file System/CONFIG.proto to have
features appropriate to your site. This will be run through
cpp, so you can #ifdef your specific needs. Notice that the C
compiler should be given whatever options it needs to be ANSI.
If you don't have 32b longs, you may need to modify
System/MACROS.proto to #ifdef your architecture to reflect the
larger word size. Use a parallel make utility if you have one.
2. Edit the variables at the beginning of the Makefile to be
appropriate. SHOME must be set to be the current directory.
3. If you intend to use a precompiled binary from someone on the
net, go to the top directory and type `make system'. Then copy
the binary into the file `Compiler/cs'. You are done.
Otherwise, go to the top directory and type `make testall'.
That should do the following things:
Make the Boehm garbage collector (GC/gc.a)
Make the Sather runtime library (base.a)
Make the system specific compiler files (EXTERN, MACROS, CONFIG)
Compile the bootstrap C for the compiler (Boot/cs)
Compile the compiler using the bootstrap (Compiler/cs)
Compile and execute some test classes (in Test).
If you want to do a stress test compiling the compiler with
itself, do a `make testall'.
4. If all went well, you may want to install the compiler executable
(Compiler/cs) and documentation (Doc/cs.1) someplace appropriate.
It is convenient to have users set their environment variable
SATHER_COMMANDS to be
-home <sather-dir> -com <sather-dir>/Library/base.commands
and append ":<sather-dir>/Doc/man" to their MANPATH.
Problems you might encounter:
It's possible that you'll run into prototype conflicts, due to system
differences or non-ANSI header files. These can be remedied by adding
declarations to the System/EXTERNS file.
Sometimes there are simple namespace conflicts. These can be
permanently eliminated by having me add the offending identifier to
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.
Be sure to let me know what you had to add to get things running so I
can include them in the next release. Whether it works or not, let me
know by sending mail to "sather-bugs@icsi.berkeley.edu". Good luck!
- Dave
-----------------------------------------------------------------
Known changes necessary to compile on ported systems:
-----------------------------------------------------------------
Systems on which it runs without changes:
SunOS 4.1.3, gcc 2.5.8
Ultrix 4.3
Linux 1.0.8, gcc 2.5.8 and 1.1.x, libc4.6.x, gcc 2.6.0
HPUX 8.07, using gcc 2.5.8
Ultrix 4.4, DEC cc 3.0 (C. R. Thewalt <thewalt@canuck.CE.Berkeley.EDU>):
GC changes needed.
In Makefile, CC= cc -std1 -G0 -w
In System/CONFIG.proto, for debugging use "-g3"
Under IRIX, lots of conflicting reports:
SGI IRIX 4.0.5H: no changes
SGI IRIX 5.2 with the native compiler:
Modify CONFIG to turn off warning message reporting "-w".
Possibly set "RANLIB= echo".
SCO Unix 3.2.4, gcc 2.5.8: (Michael Arnoldus <chime@proinf.dk>)
CFLAGS = -O -DSCO
In System/GC/Makefile:
CC= gcc
CFLAGS= -O -DALL_INTERIOR_POINTERS -DSILENT -DSCO
SPECIALCFLAGS = -DSCO
You'll need to get the GC mods too.
SunOS 5.3, gcc 2.5.8:
I found no changes needed.
You may also try:
CPP= gcc -traditional-cpp -x c -E -C -P
RANLIB= ar st
SunOS 5.3, cc:
CPP = /usr/ccs/lib/cpp -C -P
RANLIB = ar st
CC = cc
CFLAGS = -O -Xa -xcg92
Alpha, DEC OSF/1 V2.0, gcc 2.5.8:
In Makefile: Use
CPP= /usr/ucb/cpp -C -P -DALPHA
CC= gcc -DALPHA
GC_CC= cc (for some reason it breaks with gcc)
On an alpha Sather INT is "int" instead of "long". This seems to
work under gcc, but not "cc -std -taso" which would be slightly
safer. I'd like to hear from somebody who can get 64 bits working.
Under OSF/1 V3.0, stay away from the gcc 2.6.0 compiler; 2.5.8
works. (Frank Horowitz <frank@ned.dem.csiro.au>)
NetBSD 1.0_BETA:
CPP= /usr/bin/cpp
FreeBSD 1.1.5.1:
d87-mal@nada.kth.se found: in Makefile, use "CPP= cpp -C -P"
NeXTStep 3.2, gcc:
Seems to be okay except some minor floating point result
differences in the tests. This is caused by a bug in NeXT's
printf, which doesn't do "%g" correctly.
OS/2, emx 0.8h, gcc 2.5.7:
Install other additional utilities: GNU make, GNU fileutils,
bash (any sh-compliant shell), cmp (not essential)
Modify the top-level Makefile:
CPP= /emx/bin/cpp -C -P
RANLIB= ar s
CFLAGS= -O -D__EMX__ -D__32BIT__
CS= cs.exe
TEST= test.exe
GC_MKFL= EMX_Makefile
Run command "set COMSPEC=bash.exe". Continue installation normally.
Questions to Ari Juhani Huttunen <ahuttune@snakemail.hut.fi>.
These systems needed GC changes which have been forwarded to Hans and
I hope will be in the next version of the GC:
Sony NEWSOS 4.1R, gcc 2.5.4
MIPS RISC os 4.53C, gcc 2.5
Ultrix 4.4, DEC cc 3.0
SCO Unix 3.2.4, gcc 2.5.8
If you have ported it successfully to a system, send the changes to
"sather-bugs@icsi.berkeley.edu" so I can incorporate them; or let me
know that it runs without changes.