Help save net neutrality! Learn more.

[49e46e]: / INSTALL.win32  Maximize  Restore  History

Download this file

258 lines (206 with data), 9.1 kB

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 --prefix=c:/maxima \
    --enable-chm \
    --enable-xmaxima-exe \
    --enable-lang-es --enable-lang-pt --enable-lang-pt_BR
make install
make iss
Then run Inno Setup on the generated maxima.iss file. That is all it

External Requirements

1) MSYS+MinGW, including mktemp
2) msysDTK
3) GCL
4) Tcl/Tk
5) Starkit, TclKit and img.kit
6) InnoSetup
7) gnuplot
8) wxMaxima
9) Microsoft HTML Help Workshop
10) Perl 5.8 (ActivePerl)
11) Python 

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 

Option A - gcc-3.3.1 based system

From 2006 until 2012, it was 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
   f) Install msysDTK-1.0.1.exe
      It provides Perl and autotools (autoconf/automake).
      msysDTK-1.0.1 comes with Perl version 5.6.  This is now too old.
      Since Maxima 5.11 we require version 5.8. 

      or install

      - automake msys-autoconf-2.59.tar.bz2
      - autoconf msys-automake-1.8.2.tar.bz2
      - libtool msys-libtool-1.5.tar.bz2
   g) Download the MinGW implementation of mktemp from: (4 Kb)
      Install by (cd /; tar xjf /path/to/mktemp-1.5-MSYS.tar.bz2)

NOTE: gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise binutils 2.13.90
and 2.15.90, but 2.17.50-20060824 is OK.

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

Option B - gcc-4.6.2 based system

From early 2012 it has been possible to build maxima using current 
msys, mingw and gcc-4.6.

a) Download mingw installer mingw-get-inst from
b) Run the installer to install mingw and msys
c) Use the installed mingw-get to add the build dependencies, including
   - mingw-gcc
   - mingw-binutils
   - mingw-make
   - mingw32-autotools

maxima-5.27.0 was successfully built using
  MSYS 1.0.17(0.48/3/2) 
  GNU bash, version 3.1.17
  GNU Make 3.81
  gcc.exe (GCC) 4.6.2
  GNU ld (GNU Binutils) 2.22

2) Get a working GCL 

Get the GCL 2.6.8pre from CVS.  
See  <>. 

Then compile and install under mingw/msys with

./configure --enable-ansi
make install

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/


3) Get and install TclKit and Starkit sdx from <>. 

Download sdx.bat and sdx.kit from <>. 
Download tclkit-win32.upx.exe and tclkitsh-win32.upx.exe from 

Install the following four files 
	sdx.bat  sdx.kit  tclkit-win32.upx.exe  tclkitsh-win32.upx.exe
in your MSYS user home directory in ~/programs/star

Download img.kit from <> and put it in

6) Get and install Inno Setup from

7) Download the gnuplot windows binary from <>.
Version 4.6 patchlevel 0 works. 
Install in your MSYS user home directory in ~/programs/gnuplot 

8) Compile wxMaxima for windows 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
GNUPLOTDIR = ../../../../programs/gnuplot
WXMAXIMADIR = ../../../../programs/wxMaxima

To see how they are used, look in interfaces/xmaxima/win32/
and 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) Install Perl 5.8.  ActivePerl binaries provided by work.  Again add the perl bin
    directory to PATH.  Alternatively use a wrapper script like

    $ cat /usr/local/bin/perl
    exec /c/perl/bin/perl $@

11) Install Python 2.6. ActivePython binaries provided by work.

11) Following components
    a) tcltk (e.g. wish84 command), 
    b) gcl (gcl command),
    c) HTML Help Workshop compiler (hhc command)
    d) perl
    e) python
should also be available at the MSYS command prompt.

If this is not the case, edit your PATH variable or add wrapper scripts.

12) 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 --prefix="c:/maxima" \
  --enable-lang-es --enable-lang-pt --enable-lang-pt_BR
make check
make install
make iss

The "check" should pass all tests except those listed as known

13) 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.

14) 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 Test the graphics systems in both xmaxima and wxmaxima
    - plot2d(sin(x),[x,0,10]);
    - plot3d(x*y,[x,-1,1],[y,-1,1]);
    - load(draw)$
      draw3d(xu_grid = 30, yv_grid = 60, surface_hide = true,
          parametric_surface(cos(phi) * sin(theta),
                       sin(phi) * sin(theta),
                       theta, 0, %pi, phi, 0, 2 * %pi))$
 o Try out the on-line help: describe(sin)