4 Maxima can now be built under Windows without recourse to any
5 Unix-like utilities. To do so, follow the purely lisp-based build
6 procedure in INSTALL.lisp.
8 Maxima can be simply compiled and installed under MSYS or Cygwin by
9 following the GNU Autotools instructions in INSTALL. With a few more
10 steps, Maxima will create a windows installer executable. The
11 instructions for doing so are contained in this file. Note, however,
12 that this process is not as polished as the Unix-like install process.
14 In order to create the Maxima Windows installer from the maxima tarball
15 distribution, I do the following in a MSYS window:
16 ----------------------------------------------------
17 ./configure --prefix=c:/maxima \
19 --enable-xmaxima-exe \
21 --enable-lang-es --enable-lang-pt --enable-lang-pt_BR
25 ----------------------------------------------------
26 Then run Inno Setup on the generated maxima.iss file. That is all it
33 1) MSYS+MinGW, including mktemp
37 5) Starkit, TclKit and img.kit
41 9) Microsoft HTML Help Workshop
42 10) Perl 5.8 (ActivePerl)
48 The instructions below apply to the maxima release tarball. In order
49 to build from the cvs repository, cvs, autoconf and automake are also
50 required. Follow the directions in INSTALL.cvs before proceeding.
52 1) Get a working msys+mingw installation from www.mingw.org.
54 Option A - gcc-3.3.1 based system
56 From 2006 until 2012, it was essential to install the versions of gcc and
57 binutils listed here to obtain a working gcl. The files are available
58 from <http://sourceforge.net/project/showfiles.php?group_id=2435>:
59 a) Get and install MinGW-3.1.0-1.exe
60 b) Install MSYS-1.0.10.exe
61 The installer should magically find your mingw installation
62 and add it to your path.
63 c) Install tcltk-8.4.1-1.exe
64 Install it into directory where MSYS/MinGW can find it,
65 for example mingw/bin directory.
67 e) Install binutils-2.14.90 from
68 ftp://ftp.sf.net/m/mi/mingw/binutils-2.14.90-20030807-1.tar.gz
69 f) Install msysDTK-1.0.1.exe
70 It provides Perl and autotools (autoconf/automake).
71 msysDTK-1.0.1 comes with Perl version 5.6. This is now too old.
72 Since Maxima 5.11 we require version 5.8.
76 - automake msys-autoconf-2.59.tar.bz2
77 - autoconf msys-automake-1.8.2.tar.bz2
78 - libtool msys-libtool-1.5.tar.bz2
79 g) Download the MinGW implementation of mktemp from:
80 http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)
81 Install by (cd /; tar xjf /path/to/mktemp-1.5-MSYS.tar.bz2)
83 NOTE: gcc 3.3.3 and gcc 3.4.0 do NOT work; likewise binutils 2.13.90
84 and 2.15.90, but 2.17.50-20060824 is OK.
86 This is output of msysinfo command for MSYS system with
87 all required components:
88 -----------------------------------------------------------------
89 MSYS 1.0.10(0.46/3/2) 2004-03-15 07:17 i686 unknown; targ=MINGW32
90 GNU bash, version 2.04.0(1)-release (i686-pc-msys); ENV=.profile
91 GNU Make version 3.79.1,Built for i686-pc-msys; MAKE_MODE=unix
92 gcc.exe (GCC) 3.3.1 (mingw special 20030804-1); targ=MINGW32
93 GNU ld version 2.14.90 20040120
94 789320 Tue Mar 16 10:32:49 2004 /bin/msys-1.0.dll
95 52064 Thu Jan 02 05:05:27 2003 /bin/msysltdl-3.dll
96 135680 Tue Mar 16 10:32:48 2004 /bin/make.exe
97 84992 Thu Aug 07 23:29:00 2003 /mingw/bin/gcc.exe
98 617472 Tue Jan 20 21:57:52 2004 /mingw/bin/ld.exe
99 -----------------------------------------------------------------
101 Option B - gcc-4.6.2 based system
103 From early 2012 it has been possible to build maxima using current
104 msys, mingw and gcc-4.6.
106 a) Download mingw installer mingw-get-inst from http://www.mingw.org/
107 b) Run the installer to install mingw and msys
108 c) Use the installed mingw-get to add the build dependencies, including
114 maxima-5.27.0 was successfully built using
115 MSYS 1.0.17(0.48/3/2)
116 GNU bash, version 3.1.17
119 GNU ld (GNU Binutils) 2.22
123 Get the GCL 2.6.8pre from CVS.
124 See <http://savannah.gnu.org/projects/gcl/>.
126 Then compile and install under mingw/msys with
128 ./configure --enable-ansi
132 Check that gcl works by typing gcl at MSYS command line
133 -----------------------------------------------------------------------
135 GCL (GNU Common Lisp) 2.6.8 ANSI Nov 11 2006 23:08:49
136 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
137 Binary License: GPL due to GPL'ed components: (UNEXEC)
138 Modifications of this banner must retain notice of a compatible license
139 Dedicated to the memory of W. Schelter
141 Use (help) to get some basic information on how to use GCL.
142 Temporary directory for compiler files set to C:/DOCUME~1/user/LOCALS~1/Temp/
145 -----------------------------------------------------------------------
147 3) Get and install TclKit and Starkit sdx from <http://www.equi4.com>.
149 Download sdx.bat and sdx.kit from <http://www.equi4.com/pub/sk/>.
150 Download tclkit-win32.upx.exe and tclkitsh-win32.upx.exe from
151 <http://www.equi4.com/pub/tk/8.5.2/>.
153 Install the following four files
154 sdx.bat sdx.kit tclkit-win32.upx.exe tclkitsh-win32.upx.exe
155 in your MSYS user home directory in ~/programs/star
157 Download img.kit from <http://www.tcl.tk/starkits/> and put it in
160 6) Get and install Inno Setup from
161 <http://www.jrsoftware.org/isinfo.php>.
163 7) Download the gnuplot windows binary from <http://gnuplot.sourceforge.net>.
164 It is recomended to use version 4.6 patchlevel 3 or more recent (If you
165 do have to use an older version, read the Maxima documentation for variable
167 Install gnuplot in your MSYS user home directory in ~/programs/gnuplot
169 8) Compile wxMaxima for windows from <http://wxmaxima.sourceforge.net>.
170 Use wxMaxima 0.6.5 with Maxima 5.9.3 or earlier,
171 wxMaxima 0.7.0 with Maxima 5.10.0,
172 and wxMaxima 0.7.1 with Maxima 5.11.0.
174 Install it to default location, say C:\Program Files\wxMaxima.
175 Then copy contents of wxMaxima directory excluding \uninst subdirectory
176 to your MSYS user home directory ~/programs/wxMaxima
178 NOTE: Location of Starkit/TclKit, gnuplot and wxMaxima is controlled
179 by the override-able variables and their defaults are:
181 TCLKITSH = tclkitsh.exe
182 TCLKITDIR = ../../../../programs/star
183 SDXDIR = $(TCLKITDIR)
185 GNUPLOTDIR = ../../../../programs/gnuplot
186 WXMAXIMADIR = ../../../../programs/wxMaxima
188 To see how they are used, look in interfaces/xmaxima/win32/Makefile.in
189 and Makefile.am in the top level maxima directory. You may change
190 their values according to your preferences.
192 9) Get Microsoft HTML Help Workshop from
193 <http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en>
196 Make sure that HHW directory is within PATH (edit PATH environment
197 variable with either Windows or MSYS approach), so the HTML Help Workshop
198 compiler command "hhc.exe" is available at the MSYS command prompt.
200 For reference, to change PATH within MSYS only, edit the file
201 c:\msys\1.0\etc\profile and add the following line after the initial
203 export PATH="/c/gcl/bin:$PATH"
205 10) Install Perl 5.8. ActivePerl binaries provided by
206 http://www.activestate.com work. Again add the perl bin
207 directory to PATH. Alternatively use a wrapper script like
209 $ cat /usr/local/bin/perl
211 exec /c/perl/bin/perl $@
213 11) Install Python 2.6. ActivePython binaries provided by
214 http://www.activestate.com work.
216 11) Following components
217 a) tcltk (e.g. wish84 command),
218 b) gcl (gcl command),
219 c) HTML Help Workshop compiler (hhc command)
222 should also be available at the MSYS command prompt.
224 If this is not the case, edit your PATH variable or add wrapper scripts.
226 12) You should now be ready to compile and install maxima.
227 Configure maxima so that it will install in some sort of temporary
228 directory. The directory does not need to exist ahead of time.
230 ./configure --prefix="c:/maxima" \
231 --enable-lang-es --enable-lang-pt --enable-lang-pt_BR
237 The "check" should pass all tests except those listed as known
240 13) Once "make iss" is complete, run Inno Setup on the maxima.iss
241 file. It is recommended to remove the temporary maxima install
242 directory (c:/maxima above) before testing the installation.
244 14) Test the installed package. For example
245 o Run the maxima testsuite: run_testsuite()
246 o Try compiling a function. This has been a problem in the past
250 o Test the graphics systems in both xmaxima and wxmaxima
251 plot2d(sin(x),[x,0,10]);
252 plot3d(x*y,[x,-1,1],[y,-1,1]);
254 draw3d(xu_grid = 30, yv_grid = 60, surface_hide = true,
255 parametric_surface(cos(phi) * sin(theta),
256 sin(phi) * sin(theta),
258 theta, 0, %pi, phi, 0, 2 * %pi))$
259 o Check that plotting to Postscript works
260 plot2d(sin(x),[x,0,10],[ps_file,"ps_test.ps"]);
261 o Try out the on-line help: describe(sin)
262 o Check that the windows help files work from the Start menu
263 and from within xmaxima and wxmaxima
269 The Windows installer for gcl-based maxima requires gcc and as. The gcc
270 files required depend on the version of gcc used. If compilation fails
271 then some troubleshooting is required.
273 One way to do this is to save the .c file generated by gcl:
275 :lisp (setq compiler::*keep-gaz* t)
277 then open a cmd window and run gcc from the command line.