Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code
[maxima.git] / src / maxima.system
blobab1b5d6b2397649746c8736487e991993fa40ff2
1 ;;; -*- Lisp -*-
3 (in-package :cl-user)
5 (pushnew :cl *features*)
7 ;; Don't try to optimize so much in ECL.
8 ;; Therefore functions can be redefined (essential for share libraries).
9 #+ecl (declaim (optimize (debug 2)))
11 #+gcl
12 (let ((version-num (+ (* 10000 system::*gcl-major-version*)
13                       (* 100 system::*gcl-minor-version*)
14                       system::*gcl-extra-version*)))
15   (when (> version-num 20603)
16     (pushnew :gcl-working-proclaims *features*)))
18 #+cmu
19 (setf ext:*gc-verbose* nil)
21 ;; In server.lisp, we load up sb-bsd-sockets for sbcl.  This also
22 ;; causes asdf to be loaded.  Not normally a problem, but
23 ;; asdf::*output-translations* is not NIL when maxima is restarted.
24 ;; If you give maxima.core (as a binary distribution) to someone else,
25 ;; the translations are wrong.  The solution is to clear the
26 ;; translations before saving the core.
28 ;; This should really be done for all lisps that might have asdf2
29 ;; loaded.  Currently, I (rtoy) thinks this only happens with sbcl.
31 ;; (This issue was brought to my attention by Zach Beane, on irc.
32 ;; Solution by Nikodemus Siivola.)
33 #+(and sbcl asdf2)
34 (pushnew 'asdf::clear-configuration *save-hooks*)
36 ;; If you want maxima to use long-floats for arithmetic, use this:
37 #+(and nil (or clisp scl))
38 (pushnew :flonum-long *features*)
40 ;; If you want maxima to use double-double-floats, use this:
41 #+(and nil cmu double-double)
42 (pushnew :flonum-double-double *features*)
44 (setf *load-verbose* nil)
46 (defvar *maxima-build-time* (multiple-value-list (get-decoded-time)))
48 (export '*maxima-build-time*)
50 #+ecl
51 (defun do-compile-ecl (file &rest args)
52   ;; Not sure about this.  Compile twice.  The first produces a .o
53   ;; file.  The second produces the .fas file to keep defsystem happy
54   ;; because defsystem needs to load the files while compiling so
55   ;; macros and such are defined.
56   (let* ((output (getf args :output-file))
57          (object-output (compile-file-pathname output :system-p t)))
58     (and (apply #'compile-file file :output-file object-output args)
59          (c:build-fasl output :lisp-files (list object-output)))))
61 #+ecl
62 (defun build-maxima-lib ()
63   (labels ((list-all-objects (module)
64              (if (eql (mk::component-type module) :file)
65                  (list (mk::component-full-pathname module :binary))
66                  (apply #'append (mapcar #'list-all-objects (mk::component-components module))))))
67     (let* ((files (list-all-objects (mk:find-system 'maxima))))
68       #+msvc
69       (progn
70         (c::build-static-library "binary-ecl/maxima-lib" :lisp-files (print files))
71         (let ((c::*ld-format* (concatenate 'string c::*ld-format* " /LIBPATH:binary-ecl")))
72           (c::build-fasl "binary-ecl/maxima" :lisp-files '(maxima-lib))))
73       #-msvc
74       (let ((obj (mapcar #'(lambda (p)
75                              ;; Convert dir/foo.fas to dir/foo.o
76                              (make-pathname :type "o" :defaults p))
77                          files)))
78         (c::build-fasl "binary-ecl/maxima" :lisp-files obj
79                           :ld-flags
80                           (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
81                                                               (find-package "MAXIMA")))))
82                             (if (and x (not (string= x ""))) (list x))))
83         (c::build-program "binary-ecl/maxima" :lisp-files obj
84                           :ld-flags
85                           (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
86                                                               (find-package "MAXIMA")))))
87                             (if (and x (not (string= x ""))) (list x)))
88                           :epilogue-code '(progn (cl-user::run)))))))
90 (defun maxima-binary-pathname ()
91   #+clisp
92   "binary-clisp"
93   #+cmu
94   (make-pathname :name "binary-cmucl"
95                  :directory (pathname-directory *load-truename*))
96   #+scl
97   (make-pathname :name "binary-scl"
98                  :directory (pathname-directory *load-truename*))
99   #+sbcl
100   (make-pathname :name "binary-sbcl"
101                  :directory (pathname-directory *load-truename*))
102   #+gcl
103   "binary-gcl"
104   #+allegro
105   "binary-acl"
106   #+(and openmcl (not 64-bit-target))
107   "binary-openmcl"
108   #+(and openmcl 64-bit-target)
109   "binary-ccl64"
110   #+abcl
111   "binary-abcl"
112   #+lispworks
113   (make-pathname :name "binary-lispworks"
114                  :directory (pathname-directory *load-truename*))
115   #+ecl
116   "binary-ecl"
117   #-(or clisp cmu scl sbcl gcl allegro openmcl abcl lispworks ecl)
118   "binary-unknownlisp")
120 (mk:defsystem "maxima"
121   :source-extension "lisp"
122   :binary-pathname (maxima-binary-pathname)
123   #+ecl :compiler-options #+ecl (:system-p t)
124   #+ecl :compiler #+ecl do-compile-ecl
125   :components
126   (#+gcl
127    (:module proclaim :source-pathname ""
128             :load-only t
129             :components
130             ((:file "maxima-package")
131              (:file "numerical/f2cl-package")
132              (:file "numerical/slatec")
133              (:file "command-line")
134              (:file "pregexp")
135              #+gcl-working-proclaims
136              (:private-file "tools/sys-proclaim")))
137    (:module package :source-pathname ""
138             ;; On ECL all runtime alterations to the system (i.e from repl)
139             ;; at runtime are not part of the final executable if they aren't.
140             ;; compiled.
141             #-ecl :load-only #-ecl t
142             :components
143             (#-gcl
144              (:file "maxima-package")
145              #+ecl (:file "ecl-port")
146              ;; If a file is declared as private-file it is loaded
147              ;; from the build tree (which makes an out-of-tree
148              ;; build possible), but not compiled (which means
149              ;; with ECL or ABCL it won't end up in the final image)
150              ;; => no out-of-tree build for ECL.
151              #-(or ecl abcl lispworks) (:private-file "autoconf-variables")
152              #+(or ecl abcl lispworks) (:file "autoconf-variables")
153              ))
154    (:module intl :source-pathname ""
155             :components
156             (
157              ;; Some versions of CMUCL already
158              ;; have a compatible version of
159              ;; INTL, so skip it if we have
160              ;; it.
161              #+#.(cl:if (cl:and (cl:member :cmu cl:*features*) (cl:find-package '#:intl))  '(or) '(and))
162              (:file "intl")))
163    (:module info :source-pathname ""
164             :components
165             ((:file "pregexp")
166              (:file "cl-info")))
167    (:module sloop :source-pathname ""
168             :components
169             ((:file "sloop")))
170    (:module declarations :source-pathname ""
171             :components
172             ((:file "lmdcls")))
173    (:module destructuring-let :source-pathname ""
174             :components
175             ((:file "letmac")))
176    (:module compatibility-macros1 :source-pathname ""
177             :components
178             ((:file "generr")
179              (:file "clmacs")))
180    (:module defmfun :source-pathname ""
181             :components
182             ((:file "defmfun-check")))
183    (:module compatibility-macros :source-pathname ""
184             :depends-on ("defmfun")
185             :components
186             (#+gcl (:file "gcl-compat")
187                    (:file "commac")))
188    (:module prerequisites :source-pathname ""
189             :depends-on ("defmfun")
190             :components
191             ((:file "mormac")
192              (:file "compat")))
193    (:module maxima-language-compiler-macros :source-pathname ""
194             :depends-on ("defmfun")
195             :components
196             ((:file "transm")))
197    (:module command-line :source-pathname ""
198             :depends-on ("defmfun")
199             :depends-on ("getopt")
200             :components
201             ((:file "command-line")))
202    (:module getopt :source-pathname ""
203             :depends-on ("defmfun")
204             :components
205             ((:file "getopt")))
206    (:module fundamental-macros :source-pathname ""
207             :depends-on ("defmfun")
208             :components
209             ((:file "defcal")
210              (:file "maxmac")))
211    (:module utility-macros :source-pathname ""
212             :depends-on ("defmfun")
213             :components
214             ((:file "mopers")
215              (:file "mforma")))
216    (:module other-macros :source-pathname ""
217             :depends-on ("defmfun")
218             :components
219             ((:file "mrgmac")
220              (:file "rzmac")
221              (:file "strmac")
222              (:file "displm")
223              (:file "safe-recursion")))
224    (:module rat-macros :source-pathname ""
225             :depends-on ("defmfun")
226             :components
227             ((:file "ratmac")
228              (:file "mhayat")))
229    #+gcl (:file "optimize")             ; jfa check this
230    (:module utilities :source-pathname ""
231             :depends-on ("defmfun" "utility-macros")
232             :components
233             ((:file "opers")
234              (:file "utils")
235              (:file "sumcon")
236              (:file "sublis")
237              (:file "merror")
238              (:file "mformt")
239              (:file "mutils")
240              (:file "outmis")
241              (:file "ar")))
242    (:module commands :source-pathname ""
243             :depends-on ("defmfun" "compatibility-macros1")
244             :components
245             ((:file "comm")
246              (:file "comm2")))
247    (:module evaluator :source-pathname ""
248             :depends-on ("defmfun")
249             :components
250             ((:file "mlisp")
251              (:file "mmacro")
252              (:file "buildq")))
253    ;; The free versions of Allegro and Lispworks have a heap limit.
254    ;; Let's not compile these routines so that we can at least
255    ;; get the rest of maxima built.
256    (:module numerical
257             :depends-on ("defmfun")
258             :components
259             ((:module packages :source-pathname ""
260                       :components
261                       ((:file "f2cl-package")
262                        (:file "slatec")))
263              (:module f2cl-lib :source-pathname ""
264                       :components
265                       ((:file "f2cl-lib")))
266              (:module slatec :source-pathname "slatec"
267                       :depends-on ("f2cl-lib" "packages")
268                       #+(or allegro-cl-trial lispworks-personal-edition) :load-only
269                       #+(or allegro-cl-trial lispworks-personal-edition)  t
270                       :components
271                       ((:file "fdump")
272                        (:file "j4save")
273                        (:file "initds"
274                               :depends-on ("xermsg"))
275                        (:file "xgetua")
276                        (:file "xermsg"
277                               :depends-on ("fdump" "j4save" "xercnt" "xerhlt" "xerprn" "xersve"))
278                        (:file "xercnt")
279                        (:file "xerhlt")
280                        (:file "xerprn"
281                               :depends-on ("xgetua"))
282                        (:file "xersve"
283                               :depends-on ("j4save"))
284                        (:file "dcsevl"
285                               :depends-on ("xermsg"))
287                        ;; Gamma function
288                        (:file "d9lgmc"
289                               :depends-on ("dcsevl" "initds" "xermsg"))
290                        (:file "dgamlm"
291                               :depends-on ("xermsg"))
292                        (:file "dgamma"
293                               :depends-on ("d9lgmc" "dcsevl" "dgamlm" "initds" "xermsg"))
294                        (:file "dgamln")
295                        (:file "dlngam"
296                               :depends-on ("d9lgmc" "dgamma" "xermsg"))
298                        ;; Bessel J functions
299                        (:file "d9b0mp"
300                               :depends-on ("dcsevl" "initds" "xermsg"))
301                        (:file "d9b1mp"
302                               :depends-on ("dcsevl" "initds" "xermsg"))
303                        (:file "dbesj0"
304                               :depends-on ("d9b0mp" "dcsevl" "initds"))
305                        (:file "dbesj1"
306                               :depends-on ("d9b1mp" "dcsevl" "initds" "xermsg"))
307                        (:file "djairy")
308                        (:file "dasyjy")
309                        (:file "dbesj"
310                               :depends-on ("dasyjy" "djairy" "dlngam" "xermsg"))
311                        ;; Bessel I functions
312                        (:file "dbsi0e"
313                               :depends-on ("dcsevl" "initds"))
314                        (:file "dbsi1e"
315                               :depends-on ("dcsevl" "initds" "xermsg"))
316                        (:file "dbesi0"
317                               :depends-on ("dbsi0e" "dcsevl" "initds" "xermsg"))
318                        (:file "dbesi1"
319                               :depends-on ("dbsi1e" "dcsevl" "initds" "xermsg"))
320                        (:file "dasyik")
321                        (:file "dbesi"
322                               :depends-on ("dasyik" "dlngam" "xermsg"))
323                        (:file "zbesi"
324                               :depends-on ("zabs" "zbinu"))
326                        ;; Bessel J function for complex
327                        ;; arg and real order.
329                        (:file "zabs")
330                        (:file "zacai"
331                               :depends-on ("zabs" "zasyi" "zbknu" "zmlri" "zs1s2" "zseri"))
332                        (:file "zairy"
333                               :depends-on ("zabs" "zacai" "zbknu" "zexp" "zsqrt"))
334                        (:file "zasyi"
335                               :depends-on ("zabs" "zdiv" "zexp" "zmlt" "zsqrt"))
336                        (:file "zbesj"
337                               :depends-on ("zabs" "zbinu"))
338                        (:file "zbinu"
339                               :depends-on ("zabs" "zasyi" "zbuni" "zmlri" "zseri" "zuoik" "zwrsk"))
340                        (:file "zbknu"
341                               :depends-on ("dgamln" "zabs" "zdiv" "zexp" "zkscl"
342                                                     "zlog" "zmlt" "zshch" "zsqrt" "zuchk"))
343                        (:file "zbuni"
344                               :depends-on ("zabs" "zuni1" "zuni2"))
345                        (:file "zdiv")
346                        (:file "zexp")
347                        (:file "zkscl"
348                               :depends-on ("zabs" "zlog" "zuchk"))
349                        (:file "zlog"
350                               :depends-on ("zabs"))
351                        (:file "zmlri"
352                               :depends-on ("dgamln" "zabs" "zexp" "zlog" "zmlt"))
353                        (:file "zmlt")
354                        (:file "zrati"
355                               :depends-on ("zabs" "zdiv"))
356                        (:file "zs1s2"
357                               :depends-on ("zabs" "zexp" "zlog"))
358                        (:file "zseri"
359                               :depends-on ("dgamln" "zabs" "zdiv" "zlog" "zmlt" "zuchk"))
360                        (:file "zshch")
361                        (:file "zsqrt" :depends-on ("zabs"))
362                        (:file "zuchk")
363                        (:file "zunhj"
364                               :depends-on ("zabs" "zdiv" "zlog" "zsqrt"))
365                        (:file "zuni1"
366                               :depends-on ("zabs" "zuchk" "zunik" "zuoik"))
367                        (:file "zuni2"
368                               :depends-on ("zabs" "zairy" "zuchk" "zunhj" "zuoik"))
369                        (:file "zunik"
370                               :depends-on ("zdiv" "zlog" "zsqrt"))
371                        (:file "zuoik"
372                               :depends-on ("zabs" "zlog" "zuchk" "zunhj" "zunik"))
373                        (:file "zwrsk"
374                               :depends-on ("zabs" "zbknu" "zrati"))
376                        ;; Bessel Y functions
377                        (:file "dbesy0"
378                               :depends-on ("d9b0mp" "dbesj0" "dcsevl" "initds" "xermsg"))
379                        (:file "dbesy1"
380                               :depends-on ("d9b1mp" "dbesj1" "dcsevl" "initds" "xermsg"))
381                        (:file "dbesy"
382                               :depends-on ("dasyjy" "dbesy0" "dbesy1" "dbsynu" "dyairy" "xermsg"))
383                        (:file "dbsynu"
384                               :depends-on ("dgamma" "xermsg"))
385                        (:file "dyairy")
387                        (:file "zbesy"
388                               :depends-on ("zbesh"))
389                        (:file "zbesh"
390                               :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
391                        (:file "zacon"
392                               :depends-on ("zabs" "zbinu" "zbknu" "zmlt" "zs1s2"))
393                        (:file "zbunk"
394                               :depends-on ("zunk1" "zunk2"))
395                        (:file "zunk1"
396                               :depends-on ("zabs" "zs1s2" "zuchk" "zunik"))
397                        (:file "zunk2"
398                               :depends-on ("zabs" "zairy" "zs1s2" "zuchk" "zunhj"))
400                        ;; Bessel K functions
401                        (:file "dbesk0"
402                               :depends-on ("dbesi0" "dbsk0e" "dcsevl" "initds" "xermsg"))
403                        (:file "dbsk0e"
404                               :depends-on ("dbesi0" "dcsevl" "initds" "xermsg"))
405                        (:file "dbesk1"
406                               :depends-on ("dbesi1" "dbsk1e" "dcsevl" "initds" "xermsg"))
407                        (:file "dbsk1e"
408                               :depends-on ("dbesi1" "dcsevl" "initds" "xermsg"))
409                        (:file "dbesk"
410                               :depends-on ("dasyik" "dbesk0" "dbesk1" "dbsk0e" "dbsk1e" "dbsknu" "xermsg"))
411                        (:file "dbsknu"
412                               :depends-on ("dgamma" "xermsg"))
413                        (:file "zbesk"
414                               :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
416                        ;; Airy functions
417                        (:file "d9aimp"
418                               :depends-on ("dcsevl" "initds" "xermsg"))
419                        (:file "daie"
420                               :depends-on ("d9aimp" "dcsevl" "initds"))
421                        (:file "dai"
422                               :depends-on ("d9aimp" "daie" "dcsevl" "initds" "xermsg"))
423                        (:file "dbie"
424                               :depends-on ("d9aimp" "dcsevl" "initds"))
425                        (:file "dbi"
426                               :depends-on ("d9aimp" "dbie" "dcsevl" "initds" "xermsg"))
427                        (:file "zbiry"
428                               :depends-on ("zabs" "zbinu" "zdiv" "zsqrt"))
429                        ;; Error functions
430                        (:file "derf"
431                               :depends-on ("dcsevl" "derfc" "initds"))
432                        (:file "derfc"
433                               :depends-on ("dcsevl" "initds" "xermsg"))
434                        ;; Exponential integrals
435                        (:file "de1"
436                               :depends-on ("dcsevl" "initds" "xermsg"))
437                        (:file "dei"
438                               :depends-on ("de1"))
439                        (:file "dspenc"
440                               :depends-on ("d9upak"))
441                        (:file "d9upak")))
442              (:module quadpack
443                       :source-pathname "slatec"
444                       #+(or allegro-cl-trial lispworks-personal-edition) :load-only
445                       #+(or allegro-cl-trial lispworks-personal-edition) t
446                       :components
447                       (
448                        ;; Support
449                        (:file "dqwgtf")
450                        (:file "dqcheb")
451                        (:file "dqk15w")
452                        (:file "dqwgts")
453                        (:file "dqwgtc")
454                        (:file "dgtsl")
455                        ;; Core integration routines
456                        (:file "dqk15")
457                        (:file "dqk31")
458                        (:file "dqk41")
459                        (:file "dqk51")
460                        (:file "dqk61")
461                        (:file "dqk21")
462                        (:file "dqk15i")
463                        (:file "dqelg")
464                        (:file "dqpsrt")
465                        (:file "dqc25s"
466                               :depends-on ("dqcheb" "dqk15w"))
467                        (:file "dqmomo")
468                        (:file "dqc25c"
469                               :depends-on ("dqcheb"
470                                            "dqk15w"))
471                        (:file "dqc25f"
472                               :depends-on ("dgtsl"
473                                            "dqcheb"
474                                            "dqk15w"
475                                            "dqwgtf"))
476                        ;; Basic integrators
477                        (:file "dqage"
478                               :depends-on ("dqk15"
479                                            "dqk31"
480                                            "dqk41"
481                                            "dqk51"
482                                            "dqk61"
483                                            "dqk21"
484                                            "dqpsrt"))
485                        (:file "dqagie"
486                               :depends-on ("dqelg"
487                                            "dqk15i"
488                                            "dqpsrt"))
489                        (:file "dqagp"
490                               :depends-on ("dqagpe"))
491                        (:file "dqagpe"
492                               :depends-on ("dqelg"
493                                            "dqpsrt"
494                                            "dqk21"
495                                            ))
496                        (:file "dqagse"
497                               :depends-on ("dqk21"
498                                            "dqelg"
499                                            "dqpsrt"))
500                        (:file "dqawfe"
501                               :depends-on ("dqagie"
502                                            "dqawoe"
503                                            "dqelg"))
504                        (:file "dqawoe"
505                               :depends-on ("dqc25f"
506                                            "dqpsrt"
507                                            "dqelg"))
508                        (:file "dqawse"
509                               :depends-on ("dqc25s"
510                                            "dqmomo"
511                                            "dqpsrt"))
512                        (:file "dqawce"
513                               :depends-on ("dqc25c"
514                                            "dqpsrt"))
515                        ;; Simplified interface routines
516                        (:file "dqng")
517                        (:file "dqag"
518                               :depends-on ("dqage"))
519                        (:file "dqags"
520                               :depends-on ("dqagse"))
521                        (:file "dqagi"
522                               :depends-on ("dqagie"))
523                        (:file "dqawf"
524                               :depends-on ("dqawfe"))
525                        (:file "dqawo"
526                               :depends-on ("dqawoe"))
527                        (:file "dqaws"
528                               :depends-on ("dqawse"))
529                        (:file "dqawc"
530                               :depends-on ("dqawce"))
531                        ;; Maxima interface
532                        (:file "quadpack")
533                        )
534                       )))
535    (:module simplification :source-pathname ""
536             :depends-on ("defmfun")
537             :components
538             ((:file "simp")
539              (:file "float")
540              (:file "csimp")
541              (:file "csimp2")
542              (:file "zero")
543              (:file "logarc")
544              (:file "rpart")))
545    (:module numeric-bigfloat :source-pathname ""
546             :depends-on ("defmfun" #-gcl "package"
547                                #+gcl "proclaim")
548             :components
549             ((:file "numeric")))
550    (:module server :source-pathname ""
551             :depends-on ("defmfun")
552             :components ((:file "server")))
553    (:module i-o :source-pathname ""
554             :depends-on ("defmfun" "compatibility-macros" "compatibility-macros1")
555             :components
556             ((:file "macsys")
557              (:file "testsuite")
558              (:file "mload")
559              (:file "suprv1")
560              (:file "dskfn")))
561    (:module factoring :source-pathname ""
562             :depends-on ("defmfun")
563             :components
564             ((:file "lesfac")
565              (:file "factor")
566              (:file "algfac")
567              (:file "nalgfa")
568              (:file "ufact")
569              (:file "result")))
570    (:module ifactor :source-pathname ""
571             :depends-on ("defmfun")
572             :components
573             ((:file "ifactor")))
574    (:module rational-functions :source-pathname ""
575             :depends-on ("defmfun" "rat-macros" "other-macros" "compatibility-macros1")
576             :components
577             ((:file "rat3a")
578              (:file "rat3b")
579              (:file "rat3d")
580              (:file "rat3c")
581              (:file "rat3e")
582              (:file "nrat4")
583              (:file "ratout")))
584    (:module maxima-language-compiler :source-pathname ""
585             :depends-on ("defmfun" "maxima-language-compiler-macros")
586             :components
587             ((:file "transl")
588              (:file "transs")
589              (:file "trans1")
590              (:file "trans2")
591              (:file "trans3")
592              (:file "trans4")
593              (:file "trans5")
594              (:file "transf")
595              (:file "troper")
596              (:file "trutil")
597              (:file "trmode")
598              (:file "trdata")
599              (:file "trpred")
600              (:file "transq")
601              (:file "acall")
602              (:file "fcall")
603              (:file "evalw")
604              (:file "trprop")
605              (:file "mdefun")))
606    (:module numerical-functions :source-pathname ""
607             :depends-on ("defmfun" "trigonometry" "algebraic-database" "utility-macros")
608             :components
609             ((:file "bessel")
610              (:file "ellipt")
611              (:file "airy"
612                     :depends-on ("ellipt"))
613              (:file "plasma")
614              (:file "intpol")))
615    (:module reader :source-pathname ""
616             :depends-on ("defmfun" "compatibility-macros" "compatibility-macros1")
617             :components
618             ((:file "nparse")))
619    (:module display :source-pathname ""
620             :depends-on ("defmfun")
621             :components
622             ((:file "displa")
623              (:file "nforma")
624              (:file "grind")))
625    (:module gcd :source-pathname ""
626             :depends-on ("defmfun")
627             :components
628             ((:file "spgcd")
629              (:file "ezgcd")))
630    (:module documentation :source-pathname ""
631             :depends-on ("defmfun")
632             :components
633             ((:file "option")
634              (:file "macdes")))
635    (:module algebraic-database :source-pathname ""
636             :depends-on ("defmfun" "compatibility-macros1")
637             :components
638             ((:file "inmis")
639              (:file "db")
640              (:file "compar")
641              (:file "askp"))            ;does this belong here?
642             )
643    (:module integration :source-pathname ""
644             :depends-on ("defmfun" "pattern-matching")
645             :components
646             ((:file "sinint")
647              (:file "sin")
648              (:file "risch")))
649    (:module taylor-series :source-pathname ""
650             :depends-on ("defmfun")
651             :components ((:file "hayat")))
652    (:module definite-integration :source-pathname ""
653             :depends-on ("defmfun")
654             :components
655             ((:file "defint")
656              (:file "residu")))
657    (:module trigonometry :source-pathname ""
658             :depends-on ("pattern-matching" "defmfun")
659             :components
660             ((:file "trigi")
661              (:file "trigo")
662              (:file "trgred")))
663    (:module special-functions :source-pathname ""
664             :depends-on ("defmfun")
665             :components
666             ((:file "specfn")))
667    (:module matrix-algebra :source-pathname ""
668             :depends-on ("defmfun")
669             :components
670             ((:file "mat")
671              (:file "linnew")
672              (:file "matrix")))
673    (:module determinants :source-pathname ""
674             :depends-on ("defmfun")
675             :components
676             ((:file "sprdet")
677              (:file "newinv")
678              (:file "newdet")))
679    (:module pattern-matching :source-pathname ""
680             :depends-on ("defmfun" "compatibility-macros1")
681             :components
682             ((:file "schatc")
683              (:file "matcom")
684              (:file "matrun")
685              (:file "nisimp")))
686    (:module limits :source-pathname ""
687             :depends-on ("defmfun")
688             :components ((:file "tlimit")
689                          (:file "limit")))
690    (:module solve :source-pathname ""
691             :depends-on ("defmfun" "compatibility-macros1")
692             :components
693             ((:file "solve")
694              (:file "psolve")
695              (:file "algsys")
696              (:file "sqrtdenest")
697              (:file "polyrz")
698              (:file "cpoly")))
699    (:module debugging :source-pathname ""
700             :depends-on ("defmfun" "compatibility-macros1")
701             :components
702             ((:file "mtrace")
703              (:file "mdebug")))
704    (:module miscellaneous :source-pathname ""
705             :depends-on ("defmfun" "pattern-matching" "compatibility-macros1")
706             :components
707             ((:file "scs")
708              (:file "asum")
709              (:file "fortra")
710              (:file "optim")
711              (:file "marray")
712              (:file "mdot")
713              (:file "irinte")
714              (:file "series")
715              (:file "numth")
716              (:file "laplac")
717              (:file "pade")
718              (:file "homog")
719              (:file "combin")
720              (:file "nset")
721              (:file "rand-mt19937")
722              (:file "maxmin")
723              (:file "nummod")
724              (:file "conjugate")
725              (:file "expintegral")
726              (:file "gamma")
727              (:file "mstuff")))
728    (:module polynomial :source-pathname ""
729             :depends-on ("defmfun")
730             :components
731             ((:file "polynomialp")))
732    (:module poisson-series :source-pathname ""
733             :depends-on ("defmfun")
734             :components
735             ((:file "pois2")
736              (:file "pois3")))
737    (:module translated-packages :source-pathname ""
738             :depends-on ("maxima-language-compiler-macros"
739                          "compatibility-macros1"
740                          "defmfun")
741             :components
742             ((:file "desoln")
743              (:file "elim")
744              (:file "invert")
745              (:file "hypgeo")
746              (:file "hyp")
747              (:file "todd-coxeter")
748              (:file "mactex")
749              (:file "plot")))
750    (:module graphics-drivers :source-pathname ""
751             :depends-on ("defmfun")
752             :components
753             ((:file "gnuplot_def")
754              (:file "xmaxima_def")
755              (:file "geomview_def")))
756    (:module final :source-pathname ""
757             :depends-on ("defmfun")
758             ;; These are not compiled, for whatever reason, except on ecl:
759             ;; On ECL all runtime alterations to the system (i.e from repl)
760             ;; at runtime are not part of the final executable if they aren't.
761             ;; compiled.
762             #-ecl :load-only #-ecl t
763             :components
764             ((:file "autol")
765              (:file "max_ext")
766              ;; If a file is declared as private-file it is loaded
767              ;; from the build tree (which makes an out-of-tree
768              ;; build possible), but not compiled (which means
769              ;; that with ECL or ABCL it won't end up in the final image)
770              ;; => no out-of-tree build for ECL.
771              (:file "share-subdirs")
772              (:file "init-cl")))))