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 >
Text File  |  1994-12-22  |  7KB  |  173 lines

  1. Things you need to install the compiler:
  2.  
  3.     You must have an ANSI C compiler.  Gcc works well.
  4.  
  5.     Your linker must be able to distinguish identifiers up to 32 characters.  
  6.  
  7.     You must be able to compile the Boehm garbage collector.
  8.  
  9.     You'll need plenty of memory.  The exact requirements depend
  10.     on the tools you use, but 40MB virtual memeory is a start.
  11.     You'll want >=16MB real memory to avoid thrashing during
  12.     installation when the compiler compiles itself.  Less is fine
  13.     for smaller programs, or for installing overnight.
  14.  
  15. To install, follow these steps.  Your system may have particular
  16. requirements; if I know these, they are listed at the end of this file.
  17.  
  18.     1. You may need to edit the file System/CONFIG.proto to have
  19.        features appropriate to your site.  This will be run through
  20.        cpp, so you can #ifdef your specific needs.  Notice that the C
  21.        compiler should be given whatever options it needs to be ANSI.
  22.        If you don't have 32b longs, you may need to modify
  23.        System/MACROS.proto to #ifdef your architecture to reflect the
  24.        larger word size.  Use a parallel make utility if you have one.
  25.  
  26.     2. Edit the variables at the beginning of the Makefile to be
  27.        appropriate.  SHOME must be set to be the current directory.
  28.  
  29.     3. If you intend to use a precompiled binary from someone on the
  30.        net, go to the top directory and type `make system'.  Then copy
  31.        the binary into the file `Compiler/cs'.  You are done.
  32.  
  33.        Otherwise, go to the top directory and type `make testall'.
  34.        That should do the following things:
  35.  
  36.       Make the Boehm garbage collector (GC/gc.a)
  37.       Make the Sather runtime library (base.a)
  38.       Make the system specific compiler files (EXTERN, MACROS, CONFIG)
  39.       Compile the bootstrap C for the compiler (Boot/cs)
  40.       Compile the compiler using the bootstrap (Compiler/cs)
  41.       Compile and execute some test classes (in Test).
  42.  
  43.        If you want to do a stress test compiling the compiler with
  44.        itself, do a `make testall'.
  45.  
  46.     4. If all went well, you may want to install the compiler executable
  47.        (Compiler/cs) and documentation (Doc/cs.1) someplace appropriate.
  48.        It is convenient to have users set their environment variable
  49.        SATHER_COMMANDS to be 
  50.  
  51.        -home <sather-dir> -com <sather-dir>/Library/base.commands
  52.  
  53.        and append ":<sather-dir>/Doc/man" to their MANPATH.
  54.  
  55. Problems you might encounter:
  56.  
  57. It's possible that you'll run into prototype conflicts, due to system
  58. differences or non-ANSI header files.  These can be remedied by adding
  59. declarations to the System/EXTERNS file.
  60.  
  61. Sometimes there are simple namespace conflicts.  These can be
  62. permanently eliminated by having me add the offending identifier to
  63. FORBID, and in the meantime add it yourself and do a textual
  64. search-and-replace in the boot code to change it to something else.
  65.  
  66. If you have to modify the garbage collector, please send the changes to
  67. the author, Hans Boehm (boehm@parc.xerox.com), so he can include them
  68. in his next release.  If one wants to encapsulate existing c++ classes
  69. for use with Sather, one would wish to have access to the c++
  70. extensions in the GC library.  This can be accomplished by changing
  71. "make" to "make c++" in the rule for "System/GC/gc.a".  This does not
  72. hinder using straight Sather or Sather with external C code while
  73. enabling the use of the garbage collector with GC compliant c++
  74. classes.
  75.  
  76. Be sure to let me know what you had to add to get things running so I
  77. can include them in the next release.  Whether it works or not, let me
  78. know by sending mail to "sather-bugs@icsi.berkeley.edu".  Good luck!
  79.  
  80.     - Dave
  81.  
  82. -----------------------------------------------------------------
  83. Known changes necessary to compile on ported systems:
  84. -----------------------------------------------------------------
  85.  
  86. Systems on which it runs without changes:
  87.     SunOS 4.1.3, gcc 2.5.8
  88.     Ultrix 4.3
  89.     Linux 1.0.8, gcc 2.5.8 and 1.1.x, libc4.6.x, gcc 2.6.0
  90.     HPUX 8.07, using gcc 2.5.8
  91.  
  92. Ultrix 4.4, DEC cc 3.0 (C. R. Thewalt <thewalt@canuck.CE.Berkeley.EDU>):
  93.     GC changes needed.
  94.     In Makefile, CC= cc -std1 -G0 -w
  95.     In System/CONFIG.proto, for debugging use "-g3"
  96.  
  97. Under IRIX, lots of conflicting reports:
  98.     SGI IRIX 4.0.5H: no changes
  99.     SGI IRIX 5.2 with the native compiler:
  100.     Modify CONFIG to turn off warning message reporting "-w".
  101.     Possibly set "RANLIB= echo".
  102.  
  103. SCO Unix 3.2.4, gcc 2.5.8: (Michael Arnoldus <chime@proinf.dk>)
  104.     CFLAGS = -O -DSCO
  105.     In System/GC/Makefile:
  106.     CC= gcc
  107.     CFLAGS= -O -DALL_INTERIOR_POINTERS -DSILENT -DSCO
  108.     SPECIALCFLAGS = -DSCO
  109.     You'll need to get the GC mods too.
  110.  
  111. SunOS 5.3, gcc 2.5.8:
  112.     I found no changes needed.
  113.     You may also try:
  114.     CPP= gcc -traditional-cpp -x c -E -C -P
  115.     RANLIB= ar st
  116.  
  117. SunOS 5.3, cc:
  118.     CPP = /usr/ccs/lib/cpp -C -P
  119.     RANLIB = ar st
  120.     CC = cc
  121.     CFLAGS = -O -Xa -xcg92
  122.  
  123. Alpha, DEC OSF/1 V2.0, gcc 2.5.8:
  124.     In Makefile: Use 
  125.     CPP= /usr/ucb/cpp -C -P -DALPHA
  126.     CC= gcc -DALPHA
  127.     GC_CC= cc (for some reason it breaks with gcc)
  128.  
  129.     On an alpha Sather INT is "int" instead of "long".  This seems to
  130.     work under gcc, but not "cc -std -taso" which would be slightly
  131.     safer.  I'd like to hear from somebody who can get 64 bits working.
  132.  
  133.     Under OSF/1 V3.0, stay away from the gcc 2.6.0 compiler; 2.5.8
  134.     works.  (Frank Horowitz <frank@ned.dem.csiro.au>)
  135.  
  136. NetBSD 1.0_BETA:
  137.     CPP= /usr/bin/cpp
  138.  
  139. FreeBSD 1.1.5.1:
  140.     d87-mal@nada.kth.se found: in Makefile, use "CPP= cpp -C -P"
  141.  
  142. NeXTStep 3.2, gcc:
  143.     Seems to be okay except some minor floating point result
  144.     differences in the tests.  This is caused by a bug in NeXT's
  145.     printf, which doesn't do "%g" correctly.
  146.  
  147. OS/2, emx 0.8h, gcc 2.5.7:
  148.     Install other additional utilities: GNU make, GNU fileutils,
  149.       bash (any sh-compliant shell), cmp (not essential)
  150.  
  151.     Modify the top-level Makefile:
  152.       CPP= /emx/bin/cpp -C -P
  153.       RANLIB= ar s
  154.       CFLAGS= -O -D__EMX__ -D__32BIT__
  155.       CS= cs.exe
  156.       TEST= test.exe
  157.       GC_MKFL= EMX_Makefile
  158.  
  159.     Run command "set COMSPEC=bash.exe". Continue installation normally.
  160.     Questions to Ari Juhani Huttunen <ahuttune@snakemail.hut.fi>.
  161.  
  162. These systems needed GC changes which have been forwarded to Hans and
  163. I hope will be in the next version of the GC:
  164.  
  165.     Sony NEWSOS 4.1R, gcc 2.5.4
  166.     MIPS RISC os 4.53C, gcc 2.5
  167.     Ultrix 4.4, DEC cc 3.0
  168.     SCO Unix 3.2.4, gcc 2.5.8
  169.  
  170. If you have ported it successfully to a system, send the changes to
  171. "sather-bugs@icsi.berkeley.edu" so I can incorporate them; or let me
  172. know that it runs without changes.
  173.