===============================================
BUILDING NATIVE WIN32 GNU COMMON LISP FROM CVS
===============================================

The preferred build host system for the Mingw32 compiler is MSYS.

I use gcc version 3.3.1 and binutils 2.14.90, but earlier versions
of gcc back to 2.95 are OK provided that you remove the
"-fno-zero-initialized-in-bss" flag in "h/mingw.defs" before running
"configure".

Note that gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise binutils 2.13.90
and 2.15.90.

The working binutils version can be found at:

ftp://ftp.sf.net/m/mi/mingw/binutils-2.14.90-20030807-1.tar.gz


===============================================
BUILDING GCL USING MSYS AS THE HOST
===============================================

BUILD TOOLS

- Mingw32 Version 2 Windows native gcc:
    http://www.mingw.org/

- MSYS Mingw build environment, including the MSYS DTK
    http://www.mingw.org/

- Source code for GCL.
    http://savannah.gnu.org/projects/gcl/

Subject to the above warnings, it is usually a good idea to keep up to
date with Mingw32 and MSYS.  Updates for various parts of these packages
are available on the web site.


SHORT SETUP NOTES

- Install Mingw32 and MSYS using the instructions at those sites. 


DETAILED SETUP NOTES

- Start by installing the latest version of MinGW2.exe.

- By looking at the dates and version numbers appended to the other
  packages on the download page, get any versions of gcc 3.2, binutils,
  mingw-runtime, and w32api that are later than the Mingw2 package. 

- Go to the top level Mingw32 installation directory - the one in which you
  can see "bin", "lib" etc

- Extract those other packages in that directory eg:

  tar xzf rumpty-dumpty.tar.gz

- Remove the Mingw version of "make" from the bin directory - it has serious
  bugs and will not work properly for most tasks including building GCL and 
  Maxima.  We will be using the MSYS version.

- Get MSYS and install it - follow the instructions - subscribe to the
  mailing list and read the archives.

- In the MSYS directory install the "msysDTK-1.0.0-alpha-1.tar.gz" package
  which gives you cvs, ssh, rlogin, etc.



BUILDING

- Change to your GCL source directory eg:

  cd /c/cvs/gcl

- You are now ready to configure GCL:

  ./configure --prefix="c:/gcl" > configure.log 2>&1

  Change the prefix directory as required for your final installation path.  
  I find it helpful to redirect output from "configure" and "make" into log
  files for debugging and checking.

- Check the log.

- Type:

  	make >& make.log 

- The "saved_gcl.exe" should turn up eventually in the unixport directory.  You
  can try it out directly by typing:

	./unixport/saved_gcl.exe

  at the command prompt.

- To install:

	make install >& install.log

  It is necessary to install GCL before building Maxima.

- The batch file "gclm.bat" can be used to make a Windows desktop 
  shortcut.

- BFD fasloading, Stratified Garbage Collection (SGC) readline and GCL-TK 
  don't work under Windows.  The configuration options above provide a
  "traditional" GCL executable which will build the current CVS version of
  Maxima.  The BFD option will depend on someone with knowledge of BFD and 
  PE-COFF linking fixing some problems with the BFD library - I am slowly
  absorbing the info needed, but we really need input from an expert.  My
  inclination is to stick with custom relocation as BFD is less efficient.


Mike Thomas

15 June 2004
