Nightly test: Update SBCL, ECL and ABCL.
[maxima.git] / INSTALL.win32nogcl
blobac40d445492f5bb2ae4a38ab4d3ed051bf84ae31
1 Executive Summary
2 =================
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 \
18     --enable-chm \
19     --enable-xmaxima-exe \
20     --with-hhc=<path-to-hhc> \
21     --enable-lang-es --enable-lang-pt --enable-lang-pt_BR \
22     --with-ccl=<path-to-ccl>
23 make
24 make install
25 make iss
26 ----------------------------------------------------
27 Then run Inno Setup on the generated maxima.iss file. That is all it
28 takes.
30 To compile with sbcl replace --with-ccl=<path-to-ccl> with
31 --with-sbcl=<path-to-sbcl>.
33 A script for building an installer is available at
34 <https://github.com/andrejv/max_build.sh>.
36 External Requirements
37 =====================
39 1) MinGW and MSYS
40 2) ccl/sbcl
41 3) Tcl/Tk (8.5 or later recommended)
42 4) Starkit, TclKit and img.kit
43 5) Vtk
44 6) InnoSetup
45 7) gnuplot
46 8) wxMaxima
47 9) Microsoft HTML Help Workshop
48 10) Python
50 Detailed Instructions
51 =====================
53 The instructions below apply to the maxima release tarball. In order
54 to build from the git repository, git, autoconf and automake are also
55 required. Follow the directions in INSTALL.git before proceeding.
57 1) Install MinGW and MSYS
58 a) Download mingw installer mingw-get-inst from http://www.mingw.org/
59 b) Run the installer to install mingw and msys
60 c) Use the installed mingw-get to add the build dependencies, including
61    - mingw-gcc
62    - mingw-binutils
63    - mingw-make
64    - mingw32-autotools
66 2) Install a lisp. Clozure Common Lisp (http://ccl.clozure.com) and
67 Steel Bank Common Lisp (http://sbcl.org) are supported. For Clozure
68 Common List use at least version 1.7 (version 1.10 does not work). For
69 Steel Bank CL use at least version 1.2.
71 3) Download tclkitsh-8.6.3-win32-ix86.exe and
72 tclkit-8.6.3-win32-ix86.exe from
73 <http://tclkits.rkeene.org/fossil/wiki?name=Downloads> and put them in
74 c:/programs/star.
76 Download sdx.kit and img.kit from <http://www.tcl.tk/starkits/> and
77 put them in c:/programs/star.
79 4) Get and install Inno Setup from <http://www.jrsoftware.org/isinfo.php>.
81 5) Download the gnuplot windows binary from
82 <http://gnuplot.sourceforge.net> and put it in
83 c:/programs/gnuplot. Use at least version 4.4.
85 6) Put the wxMaxima windows binary into c:/programs/wxMaxima.
87 7) Get Microsoft HTML Help Workshop from
88 <http://www.microsoft.com/en-us/download/details.aspx?id=21138>
90 8) Install Python from www.python.org. Add the path to python to your
91 windows PATH environment variable.
94 You should now be ready to compile and install maxima.  Configure
95 maxima so that it will install in some sort of temporary
96 directory. The directory does not need to exist ahead of time.
98 ./configure --prefix=c:/maxima \
99     --enable-chm \
100     --enable-xmaxima-exe \
101     --with-hhc=<path-to-hhc> \
102     --enable-lang-es --enable-lang-pt --enable-lang-pt_BR \
103     --with-ccl=<path-to-ccl>
104 make
105 make check
106 make install
107 make iss
109 The "check" should pass all tests except those listed as known
110 failures.
112 Once "make iss" is complete, run Inno Setup on the maxima.iss file. It
113 is recommended to remove the temporary maxima install directory
114 (c:/maxima above) before testing the installation.
116 9) Test the installed package (see the following part:)
120 Testing the installation package:
121 =================================
123 After building it, you can (and should) test the new Maxima installation package.
124 Install it on Windows and check that the installation (and later the deinstallation)
125 works properly. To test Maxima, try the following:
127  o Run the maxima testsuite: run_testsuite();
128  o Try compiling a function.  This has been a problem in the past
129     f(x):=x+2;
130     compile(f);
131     f(2);
132  o Test the graphics systems in both xmaxima and wxmaxima
133     plot2d(sin(x),[x,0,10]);
134     plot2d(sin(x),[x,0,10],[plot_format,xmaxima]);
135     plot3d(x*y,[x,-1,1],[y,-1,1]);
136     plotdf([-y,x],[trajectory_at,5,0]);
137     load(draw)$
138     draw3d(xu_grid = 30, yv_grid = 60, surface_hide = true,
139           parametric_surface(cos(phi) * sin(theta),
140                        sin(phi) * sin(theta),
141                        cos(theta),
142                        theta, 0, %pi, phi, 0, 2 * %pi))$
143  o Check that plotting to Postscript works
144     plot2d(sin(x),[x,0,10],[ps_file,"ps_test.ps"]);
145  o Try out the on-line help: describe(sin);
146  o Try out, if external packages (e.g. lapack) work:
147    load(lapack);
148    fpprintprec : 6;
149    M : matrix ([9.5, 1.75], [3.25, 10.45]);
150    dgeev (M);
152    should return the eigenvalues of M (and false, false since we did
153    not compute eigenvectors: [[7.54331, 12.4067], false, false]
155  o Check that the windows help files work from the Start menu 
156    and from within xmaxima and wxmaxima
157  o Try if double-clicking on a .wxmx file opens it
158  o The wxMaxima source comes with a file (test/testbench_simple.wxmx)
159    that tries to trigger everything that has gone wrong in previous
160    wxMaxima builds.  They include the commands that will test the
161    graphics system in the next step.
162    Open that file and then select "Cells/Evaluate all cells" in this
163    file and check if the file is processed correctly.