Merge branch 'master' of https://git.code.sf.net/p/maxima/code into master
[maxima.git] / INSTALL.lisp
blob9792170d393d647684aafd80f468bb163d381e89
1 Maxima can be built using a purely Lisp-based procedure.
2 This procedure is not yet as polished as the GNU Autotools system
3 described in the file INSTALL.
4 However, it may be more convenient on a system (e.g., Windows)
5 which does not have the GNU Autotools installed.
7 User feedback on this procedure would be greatly appreciated.
9 Note: xmaxima cannot be built using this procedure.
11 Note (2): Plotting on Windows does not (yet) work using this procedure.
14 To build Maxima:
16 (0) cd to the top-level Maxima directory (i.e., the directory
17 which contains src/, tests/, share/, and other directories).
19 (1) Launch your Lisp implementation.
21 (2) Load the file configure.lisp:
23 (load "configure.lisp")
25 (3) Generate configuration files:
27 (configure)
29 You will be prompted for several inputs.
30 Press carriage return to accept the default values.
32 The configure process can be automated through the use
33 of keyword arguments to configure. For example,
35 (configure :interactive nil)
37 will use the default values for all options and will not
38 prompt for any input.
39 See the file configure.lisp for more details.
41 (4) Quit Lisp,
43 (quit)
45 and cd to the directory src/.
47 (4.1) GCL only: Create these directories if they do not already exist:
49 binary-gcl
50 binary-gcl/numerical
51 binary-gcl/numerical/slatec
53 (4.2) GCL only: Create an empty sys-proclaim.lisp file, restart Lisp and do:
55 (load "generate-sys-proclaim.lisp")
57 Delete the directory binary-gcl and repeat step (4.1) before continuing to
58 step (5).
60 Maxima builds with defsystem. The file maxima-build.lisp is provided
61 for rudimentary guidance in using defsystem. Experts should feel free
62 to subsitute their knowledge of defsystem for the following steps.
64 (5) Restart Lisp, and load maxima-build.lisp:
66 (load "maxima-build.lisp")
68 (6) Compile the Lisp source code:
70 (maxima-compile)
72 (7) Quit Lisp, and restart Lisp.
74 (8) Load the compiled Lisp files:
76 (load "maxima-build.lisp")
77 (maxima-load)
79 (9a) Run Maxima from the loaded image.
81 (cl-user::run)
83 That should bring up the Maxima input prompt.
85 (9b) As an alternative to executing maxima immediately, most Lisps support
86 dumping the compiled application as an image that can later be loaded in
87 one piece. Often Lisp implementations additionally allow to specify a
88 start-up function that runs the application contained in the image on
89 loading it. In the case of maxima the start-up function that does this
90 is CL-USER::RUN.
92 There is a function MAXIMA-DUMP in src/maxima-build.lisp to dump an image.
93 At present it works for Clisp, SBCL, GCL, CMUCL, Scieneer, Allegro and CCL.
94 Reinhard Oldenburg writes, in reference to Lispworks:
95 "(maxima-dump) works when threading is disabled."
96 Some Lisp implementations (SBCL, GCL, CMUCL, Scieneer, maybe others)
97 terminate after saving the image.
99 In order to save an image, enter the following at the Lisp input prompt:
101 (maxima-dump)
103 (10) Execute the saved image.
105 Each Lisp implementation allows one to specify the name of the
106 image to be executed in a slightly different way.
107 Two scripts, maxima and maxima.bat,
108 are provided to specify the command line options appropriately.
110 Unix systems and Windows with Bourne shell:
112 sh maxima
113 --- or ---
114 chmod a+x maxima
115 ./maxima
117 (Even if Bourne shell is not available on your system,
118 it is worth looking at the way images are invoked at the end of the script.)
120 Windows without Bourne shell:
122 maxima.bat
124 (11) Test the build. At the Maxima prompt, enter:
126 run_testsuite();