3
Your basic needs are a computer running Windows, Linux or MacOSX and a
4
supported Lisp implimentation. Currently on Linux Maxima will build on CMUCL (18e
5
recommended), GCL (2.5.0 or greater) and CLisp (2.29, 2.31 or greater - 2.30 won't work
6
properly). On Windows builds have been achieved with Clisp and GCL - GCL is used
7
in the standard binary. On MacOSX Maxima is compiled using OpenMCL. Note that Lisp choice
8
is not an either/or situation - if you have
9
multiple lisp implimentations available you can build on all of them and
10
select at runtime which Lisp you would like to use. While it is possible
11
to build your own Windows or Mac OS X binary, it is quite difficult to do
12
so (especially on Windows) and unless there is a real need we recommend you
13
use the provided binaries for those platforms. For Windows a Wizard based install
14
has been created using InnoSetup which should look and feel very familiar to most
15
Windows users. On MacOSX you need to use either the DarwinPorts? or Other way?
16
tools to download the binaries.
18
\section{Source Based Installation on Linux}
20
Note: we assume here that your machine has development libraries and tools
21
installed. If you get file/feature not found failures during configure it
22
is probably because your distribution doesn't have the development libraries
23
and tools you need installed.
25
\index{Compiling!Linux}
27
\subsection{Configure}
29
(Note - this discussion assumes you are using Maxima 5.9.0 or greater to
30
build with. Older versions have a terrible build system and are no longer]
33
Your first task (assuming you are in the top level directory of the maxima
34
source file hierchy) is to determine which version(s) of Lisp you intend to
35
build on. If you are building with multiple Lisps, you should specify which
36
one you want to be your default Lisp (the Lisp Maxima will run with if you do
37
not tell it otherwise.)
39
In the example below, options are given to enable building on all three Lisps
40
supported by Maxima 5.9.0. The default Lisp of CLisp is selected.
41
\index{Compiling!Linux!CMUCl}\index{Compiling!Linux!GCL}\index{Compiling!Linux!Clisp}
46
\texttt{./configure --enable-gcl --enable-cmucl --enable-clisp }
48
\texttt{--with-default-lisp=clisp}
53
You should see some output scroll by and then a summary similar to the
60
clisp enabled. Executable name: "clisp"
62
CMUCL enabled. Executable name: "lisp"
64
GCL enabled. Executable name: "gcl"
68
wish executable name: "wish"
72
The wish executable is related to Tcl/Tk used for the Xmaxima gui. If you
73
encounter a case where a Lisp executable name is not found or you wish to
74
use a different version of a particular lisp, you can specify the location
75
of the executible you wish to use. For example, if you have a different
76
copy of CMUCL you wish to use with an executable name of cmulisp instead of
77
lisp, you can specify that with the following:
82
\texttt{./configure --enable-gcl --enable-cmucl --enable-clisp}
84
\texttt{--with-cmucl=/usr/local/bin/cmulisp --with-default-lisp=clisp}
90
clisp enabled. Executable name: "clisp"
92
CMUCL enabled. Executable name: "\texttt{/usr/local/bin/cmulisp}"
94
GCL enabled. Executable name: "gcl"
98
wish executable name: "wish"
103
There are other options available for configure, but these should be enough
104
to get you started on a standard Linux system. If you need more options, check
109
\texttt{./configure --help}
113
Once you have configured the program to your satisfaction, simply type make.
114
You will see a very long series of outputs as Maxima is compiled on each Lisp
115
platform you have selected. This is a long process even on fairly fast
118
Once this process is done, you should run make check. This will run each build
119
of Maxima through a series of mathematical tests to ensure your Maxima build
120
succeeded. You will see something similar to the following, depending on
121
which Lisp(s) you compiled with. (Plus some make
122
related output about checking directories for tasks which doesn't matter):
126
\texttt{make[1]: Entering directory `/home/user/maxima/tests'}
128
\texttt{echo "Running test suite with clisp..."; \ }
132
\texttt{/bin/sh ../maxima-local --lisp=clisp --batch-lisp=tests.lisp > tests-clisp.log <}
134
\texttt{ /dev/null 2>\&1; \ }
136
\texttt{./summarize-log tests-clisp.log}
138
\texttt{Running test suite with clisp...}
142
\texttt{*** Summary results for tests recorded in}
144
\texttt{*** log file tests-clisp.log:}
146
\texttt{Error summary:}
148
\texttt{Error(s) found in rtest15.mac: (4)}
152
\texttt{Expected failures (known bugs in this version of Maxima):}
154
\texttt{rtest15.mac: (4)}
160
\texttt{Real time: 9.218797 sec.}
162
\texttt{Run time: 9.01 sec.}
164
\texttt{GC: 60, GC time: 0.64 sec.}
166
\texttt{*** end of summary for tests-clisp.log}
170
\texttt{echo "Running test suite with cmucl..."; \ }
172
\texttt{/bin/sh ../maxima-local --lisp=cmucl --batch-lisp=tests.lisp > tests-cmucl.log < }
174
\texttt{ /dev/null 2>\&1; \ }
176
\texttt{./summarize-log tests-cmucl.log}
178
\texttt{Running test suite with cmucl...}
182
\texttt{*** Summary results for tests recorded in}
184
\texttt{*** log file tests-cmucl.log:}
186
\texttt{Error summary:}
188
\texttt{Error(s) found in rtest15.mac: (4)}
192
\texttt{Expected failures (known bugs in this version of Maxima):}
194
\texttt{rtest15.mac: (4)}
200
\texttt{; 3.91f0 seconds of real time}
202
\texttt{; 3.34f0 seconds of user run time}
204
\texttt{; 0.49f0 seconds of system run time}
206
\texttt{; [Run times include 0.21f0 seconds GC run time]}
208
\texttt{*** end of summary for tests-cmucl.log}
212
\texttt{echo "Running test suite with gcl..."; \ }
214
\texttt{/bin/sh ../maxima-local --lisp=gcl --batch-lisp=tests.lisp > tests-gcl.log < /de}
216
\texttt{v/null 2>\&1; \ }
218
\texttt{./summarize-log tests-gcl.log}
220
\texttt{Running test suite with gcl...}
224
\texttt{*** Summary results for tests recorded in}
226
\texttt{*** log file tests-gcl.log:}
228
\texttt{Error summary:}
230
\texttt{Error(s) found in rtest15.mac: (4)}
234
\texttt{Expected failures (known bugs in this version of Maxima):}
236
\texttt{rtest15.mac: (4)}
242
\texttt{real time : 8.690 secs}
244
\texttt{run time : 7.160 secs}
246
\texttt{*** end of summary for tests-gcl.log}
251
If all these tests are passed and the number of expected
252
failures is the same as the number of known failures,
253
everything has tested out correctly and you can proceed to the
254
install, which is simply the standard make install. Getting
255
advanced features like the Emacs modes to work may require a
256
little extra work - see the documentation on those specific
257
modes for details about making them work.
259
\section{Source Based Installation on Windows}
261
Someone want to write this one up? I am most definitely not qualified.
263
\section{Source Based Installation on MacOSX}
265
Someone who has done it?