Executive Summary ================= Maxima can now be built under Windows without recourse to any Unix-like utilities. To do so, follow the purely lisp-based build procedure in INSTALL.lisp. Maxima can be simply compiled and installed under MSYS or Cygwin by following the GNU Autotools instructions in INSTALL. With a few more steps, Maxima will create a windows installer executable. The instructions for doing so are contained in this file. Note, however, that this process is not as polished as the Unix-like install process. In order to create the Maxima Windows installer from the maxima tarball distribution, I do the following in a MSYS window: ---------------------------------------------------- ./configure --with-wish=wish84 --prefix=c:/maxima \ --enable-lang-es --enable-lang-pt make make install make iss ---------------------------------------------------- Then run Inno Setup on the generated maxima.iss file. That is all it takes. External Requirements ===================== 1) MSYS+MinGW 2) msysDTK 3) GCL 4) Tcl/Tk 5) Starkit and TclKit 6) InnoSetup 7) gnuplot 8) wxMaxima 9) Microsoft HTML Help Workshop 10) ActivePerl Detailed Instructions ===================== The instructions below apply to the maxima release tarball. In order to build from the cvs repository, cvs, autoconf and automake are also required. Follow the directions in INSTALL.cvs before proceeding. 1) Get a working msys+mingw installation from www.mingw.org. At this time (November 2006) it is essential to install the versions of gcc and binutils listed here to obtain a working gcl. The files are available from : a) Get and install MinGW-3.1.0-1.exe b) Install MSYS-1.0.10.exe The installer should magically find your mingw installation and add it to your path. c) Install tcltk-8.4.1-1.exe Install it into directory where MSYS/MinGW can find it, for example mingw/bin directory. d) Install gcc-3.3.1 e) Install binutils-2.14.90 from ftp://ftp.sf.net/m/mi/mingw/binutils-2.14.90-20030807-1.tar.gz f) Install msysDTK-1.0.1.exe It provides Perl and autotools (autoconf/automake). msysDTK-1.0.1 comes with Perl version 5.6, which is too old for Maxima 5.11, it requires version 5.8. The easiest way is to download and install ActivePerl binaries provided by . Follow the download link at . NOTE: gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise binutils 2.13.90 and 2.15.90. This is output of msysinfo command for MSYS system with all required components: ----------------------------------------------------------------- MSYS 1.0.10(0.46/3/2) 2004-03-15 07:17 i686 unknown; targ=MINGW32 GNU bash, version 2.04.0(1)-release (i686-pc-msys); ENV=.profile GNU Make version 3.79.1,Built for i686-pc-msys; MAKE_MODE=unix gcc.exe (GCC) 3.3.1 (mingw special 20030804-1); targ=MINGW32 GNU ld version 2.14.90 20040120 789320 Tue Mar 16 10:32:49 2004 /bin/msys-1.0.dll 52064 Thu Jan 02 05:05:27 2003 /bin/msysltdl-3.dll 135680 Tue Mar 16 10:32:48 2004 /bin/make.exe 84992 Thu Aug 07 23:29:00 2003 /mingw/bin/gcc.exe 617472 Tue Jan 20 21:57:52 2004 /mingw/bin/ld.exe ----------------------------------------------------------------- 2) Get a working GCL Get the GCL 2.6.7 release tarball from any GNU mirror or GCL 2.6.8pre from CVS. CVS date must be November 2006 or later. See . Install GCL sources in your MSYS user home directory ~/gcl-2.6.8 Then compile and install it with cd ~/gcl-2.6.8 ./configure --enable-ansi --prefix="c:/gcl" make make install Exact value of --prefix does not matter but make sure that c:\gcl\bin is in the MSYS path. Check that gcl works by typing gcl at MSYS command line ----------------------------------------------------------------------- $ gcl GCL (GNU Common Lisp) 2.6.8 ANSI Nov 11 2006 23:08:49 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files set to C:/DOCUME~1/user/LOCALS~1/Temp/ >(quit) ----------------------------------------------------------------------- 3) Get and install TclKit and Starkit sdx from . Download sdx.bat and sdx.kit from . Download tclkit-win32.exe.gz and tclkitsh-win32.exe.gz from . Install the following four files sdx.bat sdx.kit tclkit.exe tclkitsh.exe in your MSYS user home directory in ~/programs/star 6) Get and install Inno Setup from . 7) Download the gnuplot windows binary from . Version 4.0 patchlevel 0 works. Install in your MSYS user home directory in ~/programs/gnuplot 8) Download the wxMaxima windows binary from . Use wxMaxima 0.6.5 with Maxima 5.9.3 or earlier, wxMaxima 0.7.0 with Maxima 5.10.0, and wxMaxima 0.7.1 with Maxima 5.11.0. Install it to default location, say C:\Program Files\wxMaxima. Then copy contents of wxMaxima directory excluding \uninst subdirectory to your MSYS user home directory ~/programs/wxMaxima NOTE: Location of Starkit/TclKit, gnuplot and wxMaxima is controlled by the override-able variables and their defaults are: TCLKITSH = tclkitsh.exe TCLKITDIR = ../../../../programs/star SDXDIR = $(TCLKITDIR) GCCPREFIX=/mingw GNUPLOTDIR = ../../../../programs/gnuplot WXMAXIMADIR = ../../../../programs/wxMaxima To see how they are used, look in interfaces/xmaxima/win32/Makefile.in and Makefile.am in the top level maxima directory. You may change their values according to your preferences. 9) Get Microsoft HTML Help Workshop from and install it. Make sure that HHW directory is within PATH (edit PATH environment variable with either Windows or MSYS approach), so the HTML Help Workshop compiler command "hhc.exe" is available at the MSYS command prompt. For reference, to change PATH within MSYS only, edit the file c:\msys\1.0\etc\profile and add the following line after the initial setting of PATH: export PATH="/c/gcl/bin:$PATH" 10) Following components a) tcltk (e.g. wish84 command), b) gcl (gcl command), c) HTML Help Workshop compiler (hhc command) should also be available at the MSYS command prompt. If this is not the case, edit your PATH variable again. 11) You should now be ready to compile and install maxima. Configure maxima so that it will install in some sort of temporary directory. The directory does not need to exist ahead of time. ./configure --with-wish=wish84 --prefix="c:/maxima" \ --enable-lang-es --enable-lang-pt make make check make install make iss The "check" should pass all tests except those listed as known failures. 12) Once "make iss" is complete, run Inno Setup on the maxima.iss file. It is recommended to remove the temporary maxima install directory (c:/maxima above) before testing the installation. 13) Test the installed package. For example o Run the maxima testsuite: run_testsuite() o Try compiling a function. This has been a problem in the past - f(x):=x+2; - compile(f); - f(2); o Plot something o Try out the on-line help: describe(sin)