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

The preferred build host system for the Mingw32 compiler is 
MSYS.  I use gcc version 3.2, but version 2.95 certainly works.


===============================================
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/

It is a good idea to keep up to date with Mingw32 and MSYS.  There
are usually updates for various parts of these packages to be found
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) 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.

- A PCL/ANSI build ("configure --enable-ansi --enable-custreloc") can be 
  obtained by adding "(si::use-fast-links nil)" to the end of the list of
  commands in the SETUP makefile macro in "pcl/makefile".  I don't know 
  why this is necessary on Windows.  The PCL/ANSI version of GCL is still
  experimental and will not compile Maxima at present.


Mike Thomas, 17 December 2002
