
  Authors:
    Konstantin Popov <kost@sics.se>

  Contributors:

  Copyright:
    Konstantin Popov, 2001

  Last change:
    $Date: 2001/05/14 12:29:46 $ by $Author: popow $
    $Revision: 1.4 $
 
  This file is part of Mozart, an implementation 
  of Oz 3:
     http://www.mozart-oz.org
 
  See the file "LICENSE" or
     http://www.mozart-oz.org/LICENSE.html
  for information on usage and redistribution 
  of this file, and for a DISCLAIMER OF ALL 
  WARRANTIES.


0. Release building procedure

The best way to build a release is to use a freshly installed system
on a physically isolated (in particular, disconnected from the net)
computer :-)). The next best thing (on PCs) is to use VMWare
(www.vmware.com), with a fresh installation of your favorite Linux on
its virtual computer.

. Have an empty build directory $BUILD, e.g. BUILD=/tmp/build-1.2.0
  Have the Mozart source tree, e.g. as ${HOME}/mozart

. Copy the following sources into $BUILD:
-r--r--r--    1 kost     dsl       7284401 May 10 14:42 binutils-2.10.1.tar.gz
-r--r--r--    1 kost     dsl        420341 May 11 12:00 bison-1.28.tar.gz
-r--r--r--    1 kost     dsl        380995 May 11 12:06 flex-2.5.4a.tar.gz
-r--r--r--    1 kost     dsl      12911721 May 10 14:42 gcc-2.95.3.tar.gz
-r--r--r--    1 kost     dsl        134080 May 10 14:42 gdbm-1.8.0.tar.gz
-r--r--r--    1 kost     dsl       1033780 May 10 14:42 gmp-3.1.1.tar.gz
-r--r--r--    1 kost     dsl        317588 May 10 14:42 m4-1.4.tar.gz
-r--r--r--    1 kost     dsl       3679040 May 10 14:42 perl5.005_03.tar.gz
-r--r--r--    1 kost     dsl        297790 May 10 14:42 regex-0.12.tar.gz
-r--r--r--    1 kost     dsl       2502194 May 10 14:42 tcl8.2.3.tar.gz
-r--r--r--    1 kost     dsl       2336472 May 10 14:42 tk8.2.3.tar.gz
-r--r--r--    1 kost     dsl        168463 May 10 14:42 zlib-1.1.3.tar.gz

. Copy mozart source tree into the $BUILD, e.g.:

    cd ${HOME}; tar cf - ./mozart | (cd $BUILD; tar xf -)

. Run

    cd $BUILD; mozart/misc/make-packages.sh |& tee make-packages.log

  The outcome of that is the '$BUILD/packages' directory;

. Make sure there is no 'oz' etc. in your $PATH !!!

. Run

    cd $BUILD; mozart/misc/make-mozart.sh |& tee make-mozart.log

  The outcome of that are the 'install' mozart directory, and the
  '.tar' files in the '$BUILD/build-$PLAT' directory.

. On Linux, optionally, in order to include the ps/pdf docs run:

    cd $BUILD/build-$PLAT/doc; make ps installps;
    cd $BUILD/build-$PLAT; make doc;
  
. On Linux (or when just using rpm), 'su' to root, run

    cd $BUILD; mozart/misc/make-mozart-rpm.sh |& tee make-mozart-rpm.log

  The outcome of that are the rpm"s.


1. Implicit system dependencies

The following packages supporting Mozart are known to work:

. linux-i486
    . glibc-devel-2.1.3-21 (RedHat 6.2 with recommended patches)
    . XFree86-3.3.6-20 (running on RedHat 6.2)
    . for building 'ps' documentation - 
       Sun's "Java Runtime Environment" 1.2.2 (jre1.2.2)
       NOTE: Kaffe does not work (maybe - yet)

. solaris-sparc
    kost (806) ldd emulator.exe
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        /usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1
    kost (809) ldd tk.exe 
        libX11.so.6.1 =>         /opt/local/X11R6/lib/libX11.so.6.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        /usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1

The following gcc compilers can be used (courtesy Christian Schulte, with
my updates):

 - egcs 1.1.2:
	Very stable, compiles everything like a charm. But code is slow.
	Do not use:
		-ffast-math

 - gcc 2.95.*:
	Do not use (the code is incorrect):
		-ffastmath
		-march=i686 (or its equivalents), instead: -march=i586 -mcpu=i
        Note that on Intel"s '-fstrict-aliasing' does work for Mozart now;

NOTE: the official 1.2.0 Release RPM"s for RedHat 7.0 are made on
RedHat 6.2 using rpm-4.0 (installation of which, in turn, required
manuall installation of the db3 package) and gcc-2.95.3/glibc-2.1.3-21.
