Allow itensor's diff to work on lists
[maxima.git] / INSTALL.win32
blobd8cdcb541ddbe75c756dbe1aba02ddba6a05ab7a
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=hhc \
21     --enable-lang-es --enable-lang-pt --enable-lang-pt_BR
22 make
23 make install
24 make iss
25 ----------------------------------------------------
26 Then run Inno Setup on the generated maxima.iss file. That is all it
27 takes.
30 External Requirements
31 =====================
33 1) MSYS+MinGW, including mktemp
34 2) msysDTK
35 3) GCL
36 4) Tcl/Tk
37 5) Starkit, TclKit and img.kit
38 6) InnoSetup
39 7) gnuplot
40 8) wxMaxima
41 9) Microsoft HTML Help Workshop
42 10) Perl 5.8 (ActivePerl)
43 11) Python 
45 Detailed Instructions
46 =====================
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.
66    d) Install gcc-3.3.1
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. 
74       or install
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
109    - mingw-gcc
110    - mingw-binutils
111    - mingw-make
112    - mingw32-autotools
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
117   GNU Make 3.81
118   gcc.exe (GCC) 4.6.2
119   GNU ld (GNU Binutils) 2.22
121 2) Get a working GCL 
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
129 make
130 make install
132 Check that gcl works by typing gcl at MSYS command line
133 -----------------------------------------------------------------------
134 $ gcl
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/
144 >(quit)
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
158 ~/programs/star
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
166 gnuplot_view_args).  
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)
184 GCCPREFIX=/mingw
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>
194 and install it.  
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
202 setting of PATH:
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
210     #!/bin/sh
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)
220     d) perl
221     e) python
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
232 make
233 make check
234 make install
235 make iss
237 The "check" should pass all tests except those listed as known
238 failures.
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
247     - f(x):=x+2;
248     - compile(f);
249     - f(2);
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]);
253     load(draw)$
254     draw3d(xu_grid = 30, yv_grid = 60, surface_hide = true,
255           parametric_surface(cos(phi) * sin(theta),
256                        sin(phi) * sin(theta),
257                        cos(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
266 Troubleshooting
267 ===============
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:
274   f(x):=x+2$
275   :lisp (setq compiler::*keep-gaz* t)
276   compile(f);
277 then open a cmd window and run gcc from the command line.