Here is the procedure for compiling and installing BIGLOO on a Unix system.

Note regarding GCC3.0.X
***********************

   Because of a bug in GCC3.0.X, when installing Bigloo with these versions,
   it is *mandatory* to configure with the following options:

      --cflags=-fno-reorder-blocks


Requirements
************

   - For the all back-ends, Bigloo installation process _REQUIRES_ GNU-make. 

   - For the JVM back-end, JDK 1.1 or more recent *and* the zip
   and jar tools are required.

   - It is recommended to enable a large stack size in order to compile
   Bigloo. Usually this can be done by a command such as:
   
   $ unlimit

   - The files fthread/README and fthread/INSTALL detail the Bigloo
   threads support. 

   - The Bee emacs environment requires GNU-Emacs 21 or Xemacs 21.

   
Summary of a full BIGLOO compilation, test and installation
***********************************************************

   $ ./configure
   $ make
   $ make test
   $ make install
   $ make compile-bee
   $ make install-bee

On an Athlon 800Mhz running Linux 2.2, this whole procedure lasts about 
11 minutes.

Here are detailed each of these steps.


Configuring BIGLOO
******************

   1.  Edit the `./configure' file and set `bindir', `libdir', `mandir',
       `docdir' and `cc' variables (_none_ of these variables can be 
       changed once the installation process is initiated). Alternatively,
       instead of setting these `configure' variables, you may use the
       `--prefix' option.
     
   1b. Configure Bigloo for your machine by invoking:
          `./configure' 
       or
          `./configure --prefix=<your-prefix>'
       When the system is ready to be compiled, `configure' prints 
       the message `configuration done.'.

       If you want maximum performance, you should consider enabling
       `benchmark' mode with the following configure invocation:
          `./configure <your-other-options> --benchmark=yes'

       You should also read the README.benchmark file.

   1c. By default, the Bigloo installation process install a partial version
       of the development environment BEE. In order to enable a full support
       which contains the debugger and the profiler, it is needed to configure 
       Bigloo with the following option:
           `./configure <your-other-options> --bee=full'.


Compiling BIGLOO
****************

   2.  Type:
          `make'

       In addition to the compiler, several tools are also compiled during
       that step:

	 - BMAKE: the Bigloo Makefile files generator.
	 - BDEPEND: the Bigloo Makefile file dependences generator.
	 - AFILE: the Bigloo Bigloo Module Association files generator.
	 - BPP: the Bigloo pretty printer.
	 - BTAGS: the Bigloo Emacs tags files generator.
	 - BPROF: the Bigloo profiler.
         - EMACS: the Bigloo Emacs environment.


Testing BIGLOO
**************

   3.  Now Bigloo is ready to be used but if you want to make the
       initial test, type:
          `make test'

       The compilation will produce `warning' messages on several files. 
       The JVM execute will produce `error' messages. This is normal 
       (the recette tests the capacity of the compiler to emit
       warning messages on suspicious expressions).

       This entry will test *all* configured back-ends.

       Postscript and HTML version of the Bigloo documentation can be found at:
          http://www.inria.fr/mimosa/fp/Bigloo


Installing BIGLOO
*****************

   4.  Type:
          `make install'

       ==> Note: on some architecture you will be needing to tell the 
       loader where to find the Bigloo shared library. This can be done 
       two ways:
          - setting the shell LD_LIBRARY_PATH variable. For instance,
            using the default settings one should use:

              LD_LIBRARY_PATH=/usr/local/lib/bigloo/<VERSION>:$LD_LIBRARY_PATH
              export LD_LIBRARY_PATH

          - updating the /etc/ld.so.conf file (read by ldconfig man page).

       This is _not_required_ on Linux nor Digital Unix but it is _required_
       on SunOs and Solaris.


Compiling BIGLOO DEVELOPMENT ENVIRONMENT (BEE)
**********************************************

   5.  To compile the BEE, type:
          `make compile-bee'

       This compilation will produce several warnings that can be safely 
       ignored.

       The BEE contains the following tools:
	 - CIGLOO: the Bigloo C file headers extractor.
	 - JIGLOO: the Bigloo Jvm class file headers extractor.

       In addition, the BEE compiles the standard Bigloo librarie in two
       additional modes: debugging and profiling. 

       The compilation of some files (e.g. cigloo/Parser/parser.scm and 
       cigloo/Parser/cpp.scm) will produces warning message. Ignore these
       messages and rest in peace.

       ==> Note: It is not possible to compile the BEE if Bigloo is not fully
       installed.

       ==> Note: the emacs package requires GNU-EMACS21 or XEMACS20.4 or 
       more recent. If you don't have that version of GNU-EMACS or XEMACS 
       installed, install it or you won't benefit from the full BEE power. 
       GNU-EMACS can be downloaded from: 
          http://www.emacs.org/ 
       XEMACS can be downloaded from: 
          http://www.xemacs.org/ 

       ==> Note: the BEE uses the revision system PRCS. If you don't have
       that system installed on your machine, you won't be able to use the
       BEE version control system.
       PRCS can be downloaded from: 
          http://www.XCF.Berkeley.EDU/~jmacd/prcs.html


Installing the BEE
******************

   6.  To install the BEE, type:
          `make install-bee'

   6b. Edit your .emacs file to add:

       (if (locate-library "bmacs")
           (require 'bmacs))

       ==> Xemacs21 requires the SUMO distribution otherwise important 
       packages are missing. If you are still missing the sound file 
       bass-snap.au, you can pick up the version in 
         bigloo/bmacs/etc/bass-snap.au.


   6c. You can customize which modes Bee control. The default is
       Scheme, Lisp and C mode. The last two can be disabled using:
           ESC-x: customize-group bmacs

       Or customizations are available through:
           ESC-x: customize-group bee
       and
           ESC-x: customize-group ude


TESTING CIGLOO
**************

   7.  To test Cigloo, go in the directory cigloo/Example and just
       type:
          `make; ./ctest'

   8.  Cigloo can be tested on a larger application. Go in the directory
       xlib and read the README file.


   9.  Once Cigloo is tested, return to the top level directory:
          `cd ../..'


Uninstalling Bigloo
*******************

   10. In order to uninstall Bigloo and the Bee, type:
          `make uninstall'


Cleaning BIGLOO
***************

   11. Once, installed, you can type:
          `make clean' 
       to remove all the useless files.


Unconfiguring BIGLOO
********************

   12. If you plan to re-install Bigloo on a new platform. Before performing
       the all installation process (step 1 to 8) you must first remove the
       current configuration. For this type:
          `make clean'


      
