Simpilify how print-help-string works and support gcl
[maxima.git] / src / maxima.system
blob45856508506ee473d77cc832935d128d112a94dd
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 globals :source-pathname ""
164             :depends-on ("intl")
165             :components
166             ((:file "globals")))
167    (:module info :source-pathname ""
168             :components
169             ((:file "pregexp")
170              (:file "cl-info")))
171    (:module sloop :source-pathname ""
172             :components
173             ((:file "sloop")))
174    (:module declarations :source-pathname ""
175             :depends-on ("globals")
176             :components
177             ((:file "lmdcls")))
178    (:module destructuring-let :source-pathname ""
179             :components
180             ((:file "letmac")))
181    (:module compatibility-macros1 :source-pathname ""
182             :components
183             ((:file "generr")
184              (:file "clmacs")))
185    (:module defmfun :source-pathname ""
186             :components
187             ((:file "defmfun-check")))
188    (:module float-properties :source-pathname ""
189             :depends-on ("defmfun")
190             :components
191             ((:file "float-properties")))
192    (:module compatibility-macros :source-pathname ""
193             :depends-on ("defmfun" "compatibility-macros1")
194             :components
195             (#+gcl (:file "gcl-compat")
196                    (:file "commac")))
197    (:module prerequisites :source-pathname ""
198             :depends-on ("defmfun")
199             :components
200             ((:file "mormac")
201              (:file "compat")))
202    (:module maxima-language-compiler-macros :source-pathname ""
203             ;; Should depend on transl to get special var tr-abort,
204             ;; but making this depend on maxima-language-compiler to
205             ;; get transl.lisp doesn't work.  It results in a compiler
206             ;; error about maxima::$local being an unknown block.  I
207             ;; (rtoy) didn't investigate further.
208             :depends-on ("defmfun")
209             :components
210             ((:file "transm")))
211    (:module command-line :source-pathname ""
212             :depends-on ("defmfun")
213             :depends-on ("getopt")
214             :components
215             ((:file "command-line")))
216    (:module getopt :source-pathname ""
217             :depends-on ("defmfun")
218             :components
219             ((:file "getopt")))
220    (:module fundamental-macros :source-pathname ""
221             :depends-on ("globals" "defmfun")
222             :components
223             ((:file "defcal")
224              (:file "maxmac")))
225    (:module utility-macros :source-pathname ""
226             :depends-on ("defmfun")
227             :components
228             ((:file "mopers")
229              (:file "mforma")))
230    (:module other-macros :source-pathname ""
231             :depends-on ("defmfun" "compatibility-macros1")
232             :components
233             ((:file "mrgmac")
234              (:file "rzmac")
235              (:file "strmac")
236              (:file "displm")
237              (:file "safe-recursion")))
238    (:module rat-macros :source-pathname ""
239             :depends-on ("defmfun")
240             :components
241             ((:file "ratmac")
242              (:file "mhayat")))
243    #+gcl (:file "optimize")             ; jfa check this
244    (:module utilities :source-pathname ""
245             :depends-on ("globals" "defmfun" "utility-macros")
246             :components
247             ((:file "opers")
248              (:file "utils")
249              (:file "sumcon")
250              (:file "sublis")
251              (:file "merror")
252              (:file "mformt")
253              (:file "mutils")
254              (:file "outmis")
255              (:file "ar")))
256    (:module commands :source-pathname ""
257             :depends-on ("globals" "defmfun" "compatibility-macros1")
258             :components
259             ((:file "comm")
260              (:file "comm2")))
261    (:module evaluator :source-pathname ""
262             :depends-on ("globals" "defmfun" "utility-macros")
263             :components
264             ((:file "mlisp")
265              (:file "mmacro")
266              (:file "buildq")))
267    ;; The free versions of Allegro and Lispworks have a heap limit.
268    ;; Let's not compile these routines so that we can at least
269    ;; get the rest of maxima built.
270    (:module numerical
271             :depends-on ("defmfun")
272             :components
273             ((:module packages :source-pathname ""
274                       :components
275                       ((:file "f2cl-package")
276                        (:file "slatec")))
277              (:module f2cl-lib :source-pathname ""
278                       :components
279                       ((:file "f2cl-lib")))
280              (:module slatec :source-pathname "slatec"
281                       :depends-on ("f2cl-lib" "packages")
282                       #+(or allegro-cl-trial lispworks-personal-edition) :load-only
283                       #+(or allegro-cl-trial lispworks-personal-edition)  t
284                       :components
285                       ((:file "fdump")
286                        (:file "j4save")
287                        (:file "initds"
288                               :depends-on ("xermsg"))
289                        (:file "xgetua")
290                        (:file "xermsg"
291                               :depends-on ("fdump" "j4save" "xercnt" "xerhlt" "xerprn" "xersve"))
292                        (:file "xercnt")
293                        (:file "xerhlt")
294                        (:file "xerprn"
295                               :depends-on ("xgetua"))
296                        (:file "xersve"
297                               :depends-on ("j4save"))
298                        (:file "dcsevl"
299                               :depends-on ("xermsg"))
301                        ;; Gamma function
302                        (:file "d9lgmc"
303                               :depends-on ("dcsevl" "initds" "xermsg"))
304                        (:file "dgamlm"
305                               :depends-on ("xermsg"))
306                        (:file "dgamma"
307                               :depends-on ("d9lgmc" "dcsevl" "dgamlm" "initds" "xermsg"))
308                        (:file "dgamln")
309                        (:file "dlngam"
310                               :depends-on ("d9lgmc" "dgamma" "xermsg"))
312                        ;; Bessel J functions
313                        (:file "d9b0mp"
314                               :depends-on ("dcsevl" "initds" "xermsg"))
315                        (:file "d9b1mp"
316                               :depends-on ("dcsevl" "initds" "xermsg"))
317                        (:file "dbesj0"
318                               :depends-on ("d9b0mp" "dcsevl" "initds"))
319                        (:file "dbesj1"
320                               :depends-on ("d9b1mp" "dcsevl" "initds" "xermsg"))
321                        (:file "djairy")
322                        (:file "dasyjy")
323                        (:file "dbesj"
324                               :depends-on ("dasyjy" "djairy" "dlngam" "xermsg"))
325                        ;; Bessel I functions
326                        (:file "dbsi0e"
327                               :depends-on ("dcsevl" "initds"))
328                        (:file "dbsi1e"
329                               :depends-on ("dcsevl" "initds" "xermsg"))
330                        (:file "dbesi0"
331                               :depends-on ("dbsi0e" "dcsevl" "initds" "xermsg"))
332                        (:file "dbesi1"
333                               :depends-on ("dbsi1e" "dcsevl" "initds" "xermsg"))
334                        (:file "dasyik")
335                        (:file "dbesi"
336                               :depends-on ("dasyik" "dlngam" "xermsg"))
337                        (:file "zbesi"
338                               :depends-on ("zabs" "zbinu"))
340                        ;; Bessel J function for complex
341                        ;; arg and real order.
343                        (:file "zabs")
344                        (:file "zacai"
345                               :depends-on ("zabs" "zasyi" "zbknu" "zmlri" "zs1s2" "zseri"))
346                        (:file "zairy"
347                               :depends-on ("zabs" "zacai" "zbknu" "zexp" "zsqrt"))
348                        (:file "zasyi"
349                               :depends-on ("zabs" "zdiv" "zexp" "zmlt" "zsqrt"))
350                        (:file "zbesj"
351                               :depends-on ("zabs" "zbinu"))
352                        (:file "zbinu"
353                               :depends-on ("zabs" "zasyi" "zbuni" "zmlri" "zseri" "zuoik" "zwrsk"))
354                        (:file "zbknu"
355                               :depends-on ("dgamln" "zabs" "zdiv" "zexp" "zkscl"
356                                                     "zlog" "zmlt" "zshch" "zsqrt" "zuchk"))
357                        (:file "zbuni"
358                               :depends-on ("zabs" "zuni1" "zuni2"))
359                        (:file "zdiv")
360                        (:file "zexp")
361                        (:file "zkscl"
362                               :depends-on ("zabs" "zlog" "zuchk"))
363                        (:file "zlog"
364                               :depends-on ("zabs"))
365                        (:file "zmlri"
366                               :depends-on ("dgamln" "zabs" "zexp" "zlog" "zmlt"))
367                        (:file "zmlt")
368                        (:file "zrati"
369                               :depends-on ("zabs" "zdiv"))
370                        (:file "zs1s2"
371                               :depends-on ("zabs" "zexp" "zlog"))
372                        (:file "zseri"
373                               :depends-on ("dgamln" "zabs" "zdiv" "zlog" "zmlt" "zuchk"))
374                        (:file "zshch")
375                        (:file "zsqrt" :depends-on ("zabs"))
376                        (:file "zuchk")
377                        (:file "zunhj"
378                               :depends-on ("zabs" "zdiv" "zlog" "zsqrt"))
379                        (:file "zuni1"
380                               :depends-on ("zabs" "zuchk" "zunik" "zuoik"))
381                        (:file "zuni2"
382                               :depends-on ("zabs" "zairy" "zuchk" "zunhj" "zuoik"))
383                        (:file "zunik"
384                               :depends-on ("zdiv" "zlog" "zsqrt"))
385                        (:file "zuoik"
386                               :depends-on ("zabs" "zlog" "zuchk" "zunhj" "zunik"))
387                        (:file "zwrsk"
388                               :depends-on ("zabs" "zbknu" "zrati"))
390                        ;; Bessel Y functions
391                        (:file "dbesy0"
392                               :depends-on ("d9b0mp" "dbesj0" "dcsevl" "initds" "xermsg"))
393                        (:file "dbesy1"
394                               :depends-on ("d9b1mp" "dbesj1" "dcsevl" "initds" "xermsg"))
395                        (:file "dbesy"
396                               :depends-on ("dasyjy" "dbesy0" "dbesy1" "dbsynu" "dyairy" "xermsg"))
397                        (:file "dbsynu"
398                               :depends-on ("dgamma" "xermsg"))
399                        (:file "dyairy")
401                        (:file "zbesy"
402                               :depends-on ("zbesh"))
403                        (:file "zbesh"
404                               :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
405                        (:file "zacon"
406                               :depends-on ("zabs" "zbinu" "zbknu" "zmlt" "zs1s2"))
407                        (:file "zbunk"
408                               :depends-on ("zunk1" "zunk2"))
409                        (:file "zunk1"
410                               :depends-on ("zabs" "zs1s2" "zuchk" "zunik"))
411                        (:file "zunk2"
412                               :depends-on ("zabs" "zairy" "zs1s2" "zuchk" "zunhj"))
414                        ;; Bessel K functions
415                        (:file "dbesk0"
416                               :depends-on ("dbesi0" "dbsk0e" "dcsevl" "initds" "xermsg"))
417                        (:file "dbsk0e"
418                               :depends-on ("dbesi0" "dcsevl" "initds" "xermsg"))
419                        (:file "dbesk1"
420                               :depends-on ("dbesi1" "dbsk1e" "dcsevl" "initds" "xermsg"))
421                        (:file "dbsk1e"
422                               :depends-on ("dbesi1" "dcsevl" "initds" "xermsg"))
423                        (:file "dbesk"
424                               :depends-on ("dasyik" "dbesk0" "dbesk1" "dbsk0e" "dbsk1e" "dbsknu" "xermsg"))
425                        (:file "dbsknu"
426                               :depends-on ("dgamma" "xermsg"))
427                        (:file "zbesk"
428                               :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
430                        ;; Airy functions
431                        (:file "d9aimp"
432                               :depends-on ("dcsevl" "initds" "xermsg"))
433                        (:file "daie"
434                               :depends-on ("d9aimp" "dcsevl" "initds"))
435                        (:file "dai"
436                               :depends-on ("d9aimp" "daie" "dcsevl" "initds" "xermsg"))
437                        (:file "dbie"
438                               :depends-on ("d9aimp" "dcsevl" "initds"))
439                        (:file "dbi"
440                               :depends-on ("d9aimp" "dbie" "dcsevl" "initds" "xermsg"))
441                        (:file "zbiry"
442                               :depends-on ("zabs" "zbinu" "zdiv" "zsqrt"))
443                        ;; Error functions
444                        (:file "derf"
445                               :depends-on ("dcsevl" "derfc" "initds"))
446                        (:file "derfc"
447                               :depends-on ("dcsevl" "initds" "xermsg"))
448                        ;; Exponential integrals
449                        (:file "de1"
450                               :depends-on ("dcsevl" "initds" "xermsg"))
451                        (:file "dei"
452                               :depends-on ("de1"))
453                        (:file "dspenc"
454                               :depends-on ("d9upak"))
455                        (:file "d9upak")))
456              (:module quadpack
457                       :source-pathname "slatec"
458                       #+(or allegro-cl-trial lispworks-personal-edition) :load-only
459                       #+(or allegro-cl-trial lispworks-personal-edition) t
460                       :components
461                       (
462                        ;; Support
463                        (:file "dqwgtf")
464                        (:file "dqcheb")
465                        (:file "dqk15w")
466                        (:file "dqwgts")
467                        (:file "dqwgtc")
468                        (:file "dgtsl")
469                        ;; Core integration routines
470                        (:file "dqk15")
471                        (:file "dqk31")
472                        (:file "dqk41")
473                        (:file "dqk51")
474                        (:file "dqk61")
475                        (:file "dqk21")
476                        (:file "dqk15i")
477                        (:file "dqelg")
478                        (:file "dqpsrt")
479                        (:file "dqc25s"
480                               :depends-on ("dqcheb" "dqk15w"))
481                        (:file "dqmomo")
482                        (:file "dqc25c"
483                               :depends-on ("dqcheb"
484                                            "dqk15w"))
485                        (:file "dqc25f"
486                               :depends-on ("dgtsl"
487                                            "dqcheb"
488                                            "dqk15w"
489                                            "dqwgtf"))
490                        ;; Basic integrators
491                        (:file "dqage"
492                               :depends-on ("dqk15"
493                                            "dqk31"
494                                            "dqk41"
495                                            "dqk51"
496                                            "dqk61"
497                                            "dqk21"
498                                            "dqpsrt"))
499                        (:file "dqagie"
500                               :depends-on ("dqelg"
501                                            "dqk15i"
502                                            "dqpsrt"))
503                        (:file "dqagp"
504                               :depends-on ("dqagpe"))
505                        (:file "dqagpe"
506                               :depends-on ("dqelg"
507                                            "dqpsrt"
508                                            "dqk21"
509                                            ))
510                        (:file "dqagse"
511                               :depends-on ("dqk21"
512                                            "dqelg"
513                                            "dqpsrt"))
514                        (:file "dqawfe"
515                               :depends-on ("dqagie"
516                                            "dqawoe"
517                                            "dqelg"))
518                        (:file "dqawoe"
519                               :depends-on ("dqc25f"
520                                            "dqpsrt"
521                                            "dqelg"))
522                        (:file "dqawse"
523                               :depends-on ("dqc25s"
524                                            "dqmomo"
525                                            "dqpsrt"))
526                        (:file "dqawce"
527                               :depends-on ("dqc25c"
528                                            "dqpsrt"))
529                        ;; Simplified interface routines
530                        (:file "dqng")
531                        (:file "dqag"
532                               :depends-on ("dqage"))
533                        (:file "dqags"
534                               :depends-on ("dqagse"))
535                        (:file "dqagi"
536                               :depends-on ("dqagie"))
537                        (:file "dqawf"
538                               :depends-on ("dqawfe"))
539                        (:file "dqawo"
540                               :depends-on ("dqawoe"))
541                        (:file "dqaws"
542                               :depends-on ("dqawse"))
543                        (:file "dqawc"
544                               :depends-on ("dqawce"))
545                        ;; Maxima interface
546                        (:file "quadpack")
547                        )
548                       )))
549    (:module simplification :source-pathname ""
550             :depends-on ("globals" "defmfun")
551             :components
552             ((:file "simp")
553              (:file "float")
554              (:file "csimp")
555              (:file "csimp2")
556              (:file "zero")
557              (:file "logarc")
558              (:file "rpart")))
559    (:module numeric-bigfloat :source-pathname ""
560             :depends-on ("defmfun" #-gcl "package"
561                                #+gcl "proclaim")
562             :components
563             ((:file "numeric")))
564    (:module server :source-pathname ""
565             :depends-on ("defmfun")
566             :components ((:file "server")))
567    (:module i-o :source-pathname ""
568             :depends-on ("globals" "defmfun" "compatibility-macros" "compatibility-macros1")
569             :components
570             ((:file "macsys")
571              (:file "testsuite")
572              (:file "mload")
573              (:file "suprv1")
574              (:file "mactex")
575              (:file "dskfn")))
576    (:module factoring :source-pathname ""
577             :depends-on ("globals" "defmfun")
578             :components
579             ((:file "lesfac")
580              (:file "factor")
581              (:file "algfac")
582              (:file "nalgfa")
583              (:file "ufact")
584              (:file "result")))
585    (:module ifactor :source-pathname ""
586             :depends-on ("defmfun")
587             :components
588             ((:file "ifactor")))
589    (:module rational-functions :source-pathname ""
590             :depends-on ("globals" "defmfun" "rat-macros" "other-macros" 
591                          "compatibility-macros1" "ifactor" "factoring")
592             :components
593             ((:file "rat3a")
594              (:file "rat3b")
595              (:file "rat3d")
596              (:file "rat3c")
597              (:file "rat3e")
598              (:file "nrat4")
599              (:file "ratout")))
600    (:module maxima-language-compiler :source-pathname ""
601             :depends-on ("globals" "defmfun" "maxima-language-compiler-macros" "evaluator")
602             :components
603             ((:file "transl")
604              (:file "transs"
605                     :depends-on ("transl"))
606              (:file "trans1")
607              (:file "trans2"
608                     :depends-on ("transl"))
609              (:file "trans3"
610                     :depends-on ("transl"))
611              (:file "trans4"
612                     :depends-on ("trprop"))
613              (:file "trans5"
614                     :depends-on ("transl"))
615              (:file "transf")
616              (:file "troper"
617                     :depends-on ("transl"))
618              (:file "trutil"
619                     :depends-on ("transl"))
620              (:file "trmode"
621                     :depends-on ("transl"))
622              (:file "trdata")
623              (:file "trpred")
624              (:file "transq")
625              (:file "acall")
626              (:file "fcall")
627              (:file "evalw")
628              (:file "trprop")
629              (:file "mdefun")))
630    (:module numerical-functions :source-pathname ""
631             :depends-on ("globals" "defmfun" "trigonometry" "algebraic-database" "utility-macros")
632             :components
633             ((:file "bessel")
634              (:file "ellipt")
635              (:file "airy"
636                     :depends-on ("ellipt"))
637              (:file "plasma")
638              (:file "intpol")))
639    (:module reader :source-pathname ""
640             :depends-on ("globals" "defmfun" "compatibility-macros" "compatibility-macros1")
641             :components
642             ((:file "nparse")))
643    (:module display :source-pathname ""
644             :depends-on ("globals" "defmfun")
645             :components
646             ((:file "displa")
647              (:file "nforma")
648              (:file "grind")))
649    (:module gcd :source-pathname ""
650             :depends-on ("globals" "defmfun")
651             :components
652             ((:file "spgcd")
653              (:file "ezgcd")))
654    (:module documentation :source-pathname ""
655             :depends-on ("globals" "defmfun")
656             :components
657             ((:file "macdes")
658              (:file "verify-html-index")))
659    (:module algebraic-database :source-pathname ""
660             :depends-on ("globals" "defmfun" "compatibility-macros1")
661             :components
662             ((:file "inmis")
663              (:file "db")
664              (:file "compar")
665              (:file "askp"))            ;does this belong here?
666             )
667    (:module integration :source-pathname ""
668             :depends-on ("globals" "defmfun" "pattern-matching")
669             :components
670             ((:file "sinint")
671              (:file "sin")
672              (:file "risch")
673              (:file "irinte")
674              (:file "laplac")))
675    (:module taylor-series :source-pathname ""
676             :depends-on ("globals" "defmfun")
677             :components ((:file "hayat")))
678    (:module definite-integration :source-pathname ""
679             :depends-on ("globals" "defmfun")
680             :components
681             ((:file "defint")
682              (:file "residu")))
683    (:module trigonometry :source-pathname ""
684             :depends-on ("globals" "pattern-matching" "defmfun")
685             :components
686             ((:file "trigi")
687              (:file "trigo")
688              (:file "trgred")))
689    (:module special-functions :source-pathname ""
690             :depends-on ("globals" "defmfun")
691             :components
692             ((:file "specfn")))
693    (:module matrix-algebra :source-pathname ""
694             :depends-on ("globals" "defmfun")
695             :components
696             ((:file "mat")
697              (:file "linnew")
698              (:file "matrix")))
699    (:module determinants :source-pathname ""
700             :depends-on ("globals" "defmfun")
701             :components
702             ((:file "sprdet")
703              (:file "newinv")
704              (:file "newdet")))
705    (:module pattern-matching :source-pathname ""
706             :depends-on ("globals" "defmfun" "compatibility-macros1")
707             :components
708             ((:file "schatc")
709              (:file "matcom")
710              (:file "matrun")
711              (:file "nisimp")))
712    (:module limits :source-pathname ""
713             :depends-on ("globals" "defmfun")
714             :components ((:file "tlimit")
715                          (:file "limit")))
716    (:module solve :source-pathname ""
717             :depends-on ("globals" "defmfun" "compatibility-macros1")
718             :components
719             ((:file "solve")
720              (:file "psolve")
721              (:file "algsys")
722              (:file "sqrtdenest")
723              (:file "polyrz")
724              (:file "cpoly")))
725    (:module debugging :source-pathname ""
726             :depends-on ("globals" "defmfun" "compatibility-macros1")
727             :components
728             ((:file "mtrace")
729              (:file "mdebug")))
730    (:module miscellaneous :source-pathname ""
731             :depends-on ("globals" "defmfun" "pattern-matching" "compatibility-macros1")
732             :components
733             ((:file "scs")
734              (:file "asum")
735              (:file "fortra")
736              (:file "optim")
737              (:file "marray")
738              (:file "mdot")
739              (:file "series")
740              (:file "numth")
741              (:file "pade")
742              (:file "homog")
743              (:file "combin")
744              (:file "nset")
745              (:file "rand-mt19937")
746              (:file "maxmin")
747              (:file "nummod")
748              (:file "conjugate")
749              (:file "expintegral")
750              (:file "gamma")
751              (:file "mstuff")))
752    (:module polynomial :source-pathname ""
753             :depends-on ("defmfun")
754             :components
755             ((:file "polynomialp")))
756    (:module poisson-series :source-pathname ""
757             :depends-on ("defmfun")
758             :components
759             ((:file "pois2")
760              (:file "pois3")))
761    (:module translated-packages :source-pathname ""
762             :depends-on ("globals" "maxima-language-compiler-macros"
763                          "compatibility-macros1"
764                          "defmfun")
765             :components
766             ((:file "desoln")
767              (:file "elim")
768              (:file "invert")
769              (:file "hypgeo")
770              (:file "hyp")
771              (:file "hypergeometric")
772              (:file "nfloat"
773                     ;; Comment in nfloat says hypergeometric needs to
774                     ;; be loaded first.
775                     :depends-on ("hypergeometric"))
776              (:file "todd-coxeter")
777              (:file "plot")))
778    (:module graphics-drivers :source-pathname ""
779             :depends-on ("defmfun")
780             :components
781             ((:file "gnuplot_def")
782              (:file "xmaxima_def")
783              (:file "geomview_def")))
784    (:module final :source-pathname ""
785             :depends-on ("globals" "defmfun")
786             ;; These are not compiled, for whatever reason, except on ecl:
787             ;; On ECL all runtime alterations to the system (i.e from repl)
788             ;; at runtime are not part of the final executable if they aren't.
789             ;; compiled.
790             #-ecl :load-only #-ecl t
791             :components
792             ((:file "autol")
793              (:file "max_ext")
794              ;; If a file is declared as private-file it is loaded
795              ;; from the build tree (which makes an out-of-tree
796              ;; build possible), but not compiled (which means
797              ;; that with ECL or ABCL it won't end up in the final image)
798              ;; => no out-of-tree build for ECL.
799              (:file "init-cl")))))