1; -*- Lisp -*-
2
3; Copyright 2007 by Luigi Panzeri.
4; This file is released under the terms of
5; the GNU General Public License, version 2.
6
7(in-package :asdf)
8
9;; Don't try to optimize so much in ECL.
10;; Therefore functions can be redefined (essential for share libraries).
11#+ecl (declaim (optimize (debug 2)))
12
13(in-package :cl-user)
14
15(defvar *maxima-build-time* (multiple-value-list (get-decoded-time)))
16(export '*maxima-build-time*)
17
18(eval-when (:compile-toplevel :load-toplevel :execute)
19  (unless (find-package :maxima.system)
20    (defpackage :maxima.system
21      (:use :common-lisp :asdf))))
22
23(in-package :maxima.system)
24
25(defsystem :maxima
26  :description "Maxima is a symbolic computation program."
27  :licence "GPL"
28  :serial t
29  :components (
30	       (:module package :pathname ""
31			:components (#-gcl(:file "maxima-package")
32					  #+ecl (:file "ecl-port")
33					  (:file "autoconf-variables" :depends-on ("maxima-package"))))
34           (:module intl :pathname ""
35            :components (
36              ;; Some versions of CMUCL already
37              ;; have a compatible version of
38              ;; INTL, so skip it if we have
39              ;; it.
40               #+#.(cl:if (cl:and (cl:member :cmu cl:*features*) (cl:find-package '#:intl))  '(or) '(and))
41              (:file "intl")))
42	       (:module info :pathname ""
43			:components ((:file "nregex")
44				     (:file "cl-info")))
45	       (:module sloop :pathname ""
46			:components ((:file "sloop")))
47               (:module declarations :pathname ""
48                        :components ((:file "lmdcls")))
49               (:module destructuring-let :pathname ""
50                        :components ((:file "letmac")))
51               (:module compatibility-macros1 :pathname ""
52                        :components ((:file "generr")
53				     (:file "clmacs")))
54               (:module compatibility-macros :pathname ""
55                        :components (#+gcl (:file "gcl-compat")
56				     (:file "defmfun-check")
57                                     (:file "commac")))
58               (:module prerequisites :pathname ""
59                        :components ((:file "mormac")
60                                     (:file "compat")))
61	       (:module maxima-language-compiler-macros :pathname ""
62			:components ((:file "transm")))
63	       (:module getopt :pathname ""
64			:components ((:file "getopt")))
65	       (:module command-line :pathname ""
66			:depends-on (getopt)
67			:components ((:file "command-line")))
68               (:module fundamental-macros :pathname ""
69                        :components ((:file "defcal")
70                                     (:file "maxmac")))
71               (:module utility-macros :pathname ""
72                        :components ((:file "mopers")
73                                     (:file "mforma")))
74               (:module other-macros :pathname ""
75                        :components ((:file "mrgmac")
76                                     (:file "rzmac")
77                                     (:file "strmac")
78                                     (:file "displm")
79                                     (:file "safe-recursion")))
80               (:module rat-macros :pathname ""
81                        :components ((:file "ratmac")
82                                     (:file "mhayat")))
83	       #+gcl (:file "optimize")		; jfa check this
84
85	       (:module utilities :pathname ""
86			:depends-on (utility-macros)
87                        :components ((:file "opers")
88                                     (:file "utils")
89                                     (:file "sumcon")
90                                     (:file "sublis")
91                                     (:file "merror")
92                                     (:file "mformt")
93                                     (:file "mutils")
94                                     (:file "outmis")
95                                     (:file "ar")))
96
97               (:module commands :pathname ""
98                        :components ((:file "comm")
99                                     (:file "comm2")))
100               (:module evaluator :pathname ""
101                        :components ((:file "mlisp")
102                                     (:file "mmacro")
103                                     (:file "buildq")))
104
105	       (:module numerical
106			:components
107			(
108			 (:module packages :pathname ""
109				  :components
110				  ((:file "f2cl-package")
111				   (:file "slatec")))
112			 (:module f2cl-lib :pathname ""
113                  :depends-on (packages)
114				  :components ((:file "f2cl-lib")))
115			 (:module slatec
116				  :depends-on (f2cl-lib packages)
117				  :components
118				  (
119				   (:file "fdump")
120				   (:file "j4save")
121				   (:file "initds"
122					  :depends-on ("xermsg"))
123				   (:file "xgetua")
124				   (:file "xermsg"
125					  :depends-on ("fdump" "j4save" "xercnt" "xerhlt" "xerprn" "xersve"))
126				   (:file "xercnt")
127				   (:file "xerhlt")
128				   (:file "xerprn"
129					  :depends-on ("xgetua"))
130				   (:file "xersve"
131					  :depends-on ("j4save"))
132				   (:file "dcsevl"
133					  :depends-on ("xermsg"))
134
135				   ;; Gamma function
136				   (:file "d9lgmc"
137					  :depends-on ("dcsevl" "initds" "xermsg"))
138				   (:file "dgamlm"
139					  :depends-on ("xermsg"))
140				   (:file "dgamma"
141					  :depends-on ("d9lgmc" "dcsevl" "dgamlm" "initds" "xermsg"))
142				   (:file "dgamln")
143				   (:file "dlngam"
144					  :depends-on ("d9lgmc" "dgamma" "xermsg"))
145
146				   ;; Bessel J functions
147				   (:file "d9b0mp"
148					  :depends-on ("dcsevl" "initds" "xermsg"))
149				   (:file "d9b1mp"
150					  :depends-on ("dcsevl" "initds" "xermsg"))
151				   (:file "dbesj0"
152					  :depends-on ("d9b0mp" "dcsevl" "initds"))
153				   (:file "dbesj1"
154					  :depends-on ("d9b1mp" "dcsevl" "initds" "xermsg"))
155				   (:file "djairy")
156				   (:file "dasyjy")
157				   (:file "dbesj"
158					  :depends-on ("dasyjy" "djairy" "dlngam" "xermsg"))
159				   ;; Bessel I functions
160				   (:file "dbsi0e"
161					  :depends-on ("dcsevl" "initds"))
162				   (:file "dbsi1e"
163					  :depends-on ("dcsevl" "initds" "xermsg"))
164				   (:file "dbesi0"
165					  :depends-on ("dbsi0e" "dcsevl" "initds" "xermsg"))
166				   (:file "dbesi1"
167					  :depends-on ("dbsi1e" "dcsevl" "initds" "xermsg"))
168				   (:file "dasyik")
169				   (:file "dbesi"
170					  :depends-on ("dasyik" "dlngam" "xermsg"))
171				   (:file "zbesi"
172					  :depends-on ("zabs" "zbinu"))
173
174				   ;; Bessel J function for complex
175				   ;; arg and real order.
176
177				   (:file "zabs")
178				   (:file "zacai"
179					  :depends-on ("zabs" "zasyi" "zbknu" "zmlri" "zs1s2" "zseri"))
180				   (:file "zairy"
181					  :depends-on ("zabs" "zacai" "zbknu" "zexp" "zsqrt"))
182				   (:file "zasyi"
183					  :depends-on ("zabs" "zdiv" "zexp" "zmlt" "zsqrt"))
184				   (:file "zbesj"
185					  :depends-on ("zabs" "zbinu"))
186				   (:file "zbinu"
187					  :depends-on ("zabs" "zasyi" "zbuni" "zmlri" "zseri" "zuoik" "zwrsk"))
188				   (:file "zbknu"
189					  :depends-on ("dgamln" "zabs" "zdiv" "zexp" "zkscl"
190								"zlog" "zmlt" "zshch" "zsqrt" "zuchk"))
191				   (:file "zbuni"
192					  :depends-on ("zabs" "zuni1" "zuni2"))
193				   (:file "zdiv")
194				   (:file "zexp")
195				   (:file "zkscl"
196					  :depends-on ("zabs" "zlog" "zuchk"))
197				   (:file "zlog"
198					  :depends-on ("zabs"))
199				   (:file "zmlri"
200					  :depends-on ("dgamln" "zabs" "zexp" "zlog" "zmlt"))
201				   (:file "zmlt")
202				   (:file "zrati"
203					  :depends-on ("zabs" "zdiv"))
204				   (:file "zs1s2"
205					  :depends-on ("zabs" "zexp" "zlog"))
206				   (:file "zseri"
207					  :depends-on ("dgamln" "zabs" "zdiv" "zlog" "zmlt" "zuchk"))
208				   (:file "zshch")
209				   (:file "zsqrt" :depends-on ("zabs"))
210				   (:file "zuchk")
211				   (:file "zunhj"
212					  :depends-on ("zabs" "zdiv" "zlog" "zsqrt"))
213				   (:file "zuni1"
214					  :depends-on ("zabs" "zuchk" "zunik" "zuoik"))
215				   (:file "zuni2"
216					  :depends-on ("zabs" "zairy" "zuchk" "zunhj" "zuoik"))
217				   (:file "zunik"
218					  :depends-on ("zdiv" "zlog" "zsqrt"))
219				   (:file "zuoik"
220					  :depends-on ("zabs" "zlog" "zuchk" "zunhj" "zunik"))
221				   (:file "zwrsk"
222					  :depends-on ("zabs" "zbknu" "zrati"))
223
224				   ;; Bessel Y functions
225				   (:file "dbesy0"
226					  :depends-on ("d9b0mp" "dbesj0" "dcsevl" "initds" "xermsg"))
227				   (:file "dbesy1"
228					  :depends-on ("d9b1mp" "dbesj1" "dcsevl" "initds" "xermsg"))
229				   (:file "dbesy"
230					  :depends-on ("dasyjy" "dbesy0" "dbesy1" "dbsynu" "dyairy" "xermsg"))
231				   (:file "dbsynu"
232					  :depends-on ("dgamma" "xermsg"))
233				   (:file "dyairy")
234
235				   (:file "zbesy"
236					  :depends-on ("zbesh"))
237				   (:file "zbesh"
238					  :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
239				   (:file "zacon"
240					  :depends-on ("zabs" "zbinu" "zbknu" "zmlt" "zs1s2"))
241				   (:file "zbunk"
242					  :depends-on ("zunk1" "zunk2"))
243				   (:file "zunk1"
244					  :depends-on ("zabs" "zs1s2" "zuchk" "zunik"))
245				   (:file "zunk2"
246					  :depends-on ("zabs" "zairy" "zs1s2" "zuchk" "zunhj"))
247
248				   ;; Bessel K functions
249				   (:file "dbesk0"
250					  :depends-on ("dbesi0" "dbsk0e" "dcsevl" "initds" "xermsg"))
251				   (:file "dbsk0e"
252					  :depends-on ("dbesi0" "dcsevl" "initds" "xermsg"))
253				   (:file "dbesk1"
254					  :depends-on ("dbesi1" "dbsk1e" "dcsevl" "initds" "xermsg"))
255				   (:file "dbsk1e"
256					  :depends-on ("dbesi1" "dcsevl" "initds" "xermsg"))
257				   (:file "dbesk"
258					  :depends-on ("dasyik" "dbesk0" "dbesk1" "dbsk0e" "dbsk1e" "dbsknu" "xermsg"))
259				   (:file "dbsknu"
260					  :depends-on ("dgamma" "xermsg"))
261				   (:file "zbesk"
262					  :depends-on ("zabs" "zacon" "zbknu" "zbunk" "zuoik"))
263
264				   ;; Airy functions
265				   (:file "d9aimp"
266					  :depends-on ("dcsevl" "initds" "xermsg"))
267				   (:file "daie"
268					  :depends-on ("d9aimp" "dcsevl" "initds"))
269				   (:file "dai"
270					  :depends-on ("d9aimp" "daie" "dcsevl" "initds" "xermsg"))
271                                  (:file "dbie"
272                                         :depends-on ("d9aimp" "dcsevl" "initds"))
273                                  (:file "dbi"
274                                         :depends-on ("d9aimp" "dbie" "dcsevl" "initds" "xermsg"))
275                                  (:file "zbiry"
276                                         :depends-on ("zabs" "zbinu" "zdiv" "zsqrt"))
277				   ;; Error functions
278				   (:file "derf"
279					  :depends-on ("dcsevl" "derfc" "initds"))
280				   (:file "derfc"
281					  :depends-on ("dcsevl" "initds" "xermsg"))
282				   ;; Exponential integrals
283				   (:file "de1"
284					  :depends-on ("dcsevl" "initds" "xermsg"))
285				   (:file "dei"
286					  :depends-on ("de1"))
287				   (:file "dspenc"
288					  :depends-on ("d9upak"))
289				   (:file "d9upak")))
290			 (:module quadpack
291				  :pathname "slatec/"
292				  :components
293				  (
294				   ;; Support
295				   (:file "dqwgtf")
296				   (:file "dqcheb")
297				   (:file "dqk15w")
298				   (:file "dqwgts")
299				   (:file "dqwgtc")
300				   (:file "dgtsl")
301				   ;; Core integration routines
302				   (:file "dqk15")
303				   (:file "dqk31")
304				   (:file "dqk41")
305				   (:file "dqk51")
306				   (:file "dqk61")
307				   (:file "dqk21")
308				   (:file "dqk15i")
309				   (:file "dqelg")
310				   (:file "dqpsrt")
311				   (:file "dqc25s"
312					  :depends-on ("dqcheb" "dqk15w"))
313				   (:file "dqmomo")
314				   (:file "dqc25c"
315					  :depends-on ("dqcheb"
316						       "dqk15w"))
317				   (:file "dqc25f"
318					  :depends-on ("dgtsl"
319						       "dqcheb"
320						       "dqk15w"
321						       "dqwgtf"))
322				   ;; Basic integrators
323				   (:file "dqage"
324					  :depends-on ("dqk15"
325						       "dqk31"
326						       "dqk41"
327						       "dqk51"
328						       "dqk61"
329						       "dqk21"
330						       "dqpsrt"))
331				   (:file "dqagie"
332					  :depends-on ("dqelg"
333						       "dqk15i"
334						       "dqpsrt"))
335				   (:file "dqagp"
336					  :depends-on ("dqagpe"))
337				   (:file "dqagpe"
338					  :depends-on ("dqelg"
339						       "dqpsrt"
340						       "dqk21"
341						       ))
342				   (:file "dqagse"
343					  :depends-on ("dqk21"
344						       "dqelg"
345						       "dqpsrt"))
346				   (:file "dqawfe"
347					  :depends-on ("dqagie"
348						       "dqawoe"
349						       "dqelg"))
350				   (:file "dqawoe"
351					  :depends-on ("dqc25f"
352						       "dqpsrt"
353						       "dqelg"))
354				   (:file "dqawse"
355					  :depends-on ("dqc25s"
356						       "dqmomo"
357						       "dqpsrt"))
358				   (:file "dqawce"
359					  :depends-on ("dqc25c"
360						       "dqpsrt"))
361				   ;; Simplified interface routines
362				   (:file "dqng")
363				   (:file "dqag"
364					  :depends-on ("dqage"))
365				   (:file "dqags"
366					  :depends-on ("dqagse"))
367				   (:file "dqagi"
368					  :depends-on ("dqagie"))
369				   (:file "dqawf"
370					  :depends-on ("dqawfe"))
371				   (:file "dqawo"
372					  :depends-on ("dqawoe"))
373				   (:file "dqaws"
374					  :depends-on ("dqawse"))
375				   (:file "dqawc"
376					  :depends-on ("dqawce"))
377				   ;; Maxima interface
378				   (:file "quadpack")
379				   )
380			 )))
381               (:module simplification :pathname ""
382                        :components ((:file "simp")
383                                     (:file "float")
384                                     (:file "csimp")
385                                     (:file "csimp2")
386                                     (:file "zero")
387                                     (:file "logarc")
388                                     (:file "rpart")))
389	       (:module numeric-bigfloat :pathname ""
390			:components ((:file "numeric")))
391	       (:module server :pathname ""
392			:components ((:file "server")))
393               (:module i-o :pathname ""
394			:depends-on (compatibility-macros)
395                        :components ((:file "macsys")
396                                     (:file "mload")
397                                     (:file "suprv1")
398                                     (:file "dskfn")))
399               (:module factoring :pathname ""
400                        :components ((:file "lesfac")
401                                     (:file "factor")
402                                     (:file "algfac")
403                                     (:file "nalgfa")
404                                     (:file "ufact")
405                                     (:file "result")))
406	       (:module ifactor :pathname ""
407			:components ((:file "ifactor")))
408
409	       (:module rational-functions :pathname ""
410			:components ((:file "rat3a")
411				     (:file "rat3b")
412				     (:file "rat3d")
413				     (:file "rat3c")
414				     (:file "rat3e")
415				     (:file "nrat4")
416				     (:file "ratout")))
417
418	       (:module maxima-language-compiler :pathname ""
419			:components ((:file "transl")
420				     (:file "transs")
421				     (:file "trans1")
422				     (:file "trans2")
423				     (:file "trans3")
424				     (:file "trans4")
425				     (:file "trans5")
426				     (:file "transf")
427				     (:file "troper")
428				     (:file "trutil")
429				     (:file "trmode")
430				     (:file "trdata")
431				     (:file "trpred")
432				     (:file "transq")
433				     (:file "acall")
434				     (:file "fcall")
435				     (:file "evalw")
436				     (:file "trprop")
437				     (:file "mdefun"))
438			:depends-on (maxima-language-compiler-macros))
439
440	       (:module pattern-matching :pathname ""
441			:components ((:file "schatc")
442				     (:file "matcom")
443				     (:file "matrun")
444				     (:file "nisimp")))
445
446	       (:module trigonometry :pathname ""
447			:components ((:file "trigi")
448				     (:file "trigo")
449				     (:file "trgred")))
450
451	       (:module numerical-functions :pathname ""
452			:depends-on (trigonometry)
453			:components ((:file "bessel")
454				     (:file "ellipt")
455				     (:file "airy"
456					    :depends-on ("ellipt"))
457				     (:file "plasma")
458				     (:file "intpol")))
459
460	       (:module reader :pathname ""
461			:depends-on (compatibility-macros)
462			:components ((:file "nparse")))
463
464	       (:module display :pathname ""
465			:components ((:file "displa")
466				     (:file "nforma")
467				     (:file "grind")))
468
469	       (:module gcd :pathname ""
470			:components ((:file "spgcd")
471				     (:file "ezgcd")))
472	       (:module documentation :pathname ""
473			:components ((:file "option")
474				     (:file "macdes")))
475	       (:module algebraic-database :pathname ""
476			:components ((:file "inmis")
477				     (:file "db")
478				     (:file "compar")
479				     (:file "askp"))) ;does this belong here?
480	       (:module integration :pathname ""
481			:components ((:file "sinint")
482				     (:file "sin")
483				     (:file "risch")))
484	       (:module taylor-series :pathname ""
485			:depends-on (rat-macros)
486			:components ((:file "hayat")))
487	       (:module definite-integration :pathname ""
488			:components ((:file "defint")
489				     (:file "residu")))
490	       (:module special-functions :pathname ""
491			:components ((:file "specfn")))
492	       (:module matrix-algebra :pathname ""
493			:components ((:file "mat")
494                     (:file "linnew")
495				     (:file "matrix")))
496	       (:module determinants :pathname ""
497			:components ((:file "sprdet")
498				     (:file "newinv")
499				     (:file "newdet")))
500	       (:module limits :pathname ""
501			:components ((:file "tlimit")
502				     (:file "limit")))
503	       (:module solve :pathname ""
504			:components ((:file "solve")
505				     (:file "psolve")
506				     (:file "algsys")
507                                     (:file "sqrtdenest")
508				     (:file "polyrz")
509				     (:file "cpoly")))
510	       (:module debugging :pathname ""
511			:components ((:file "mtrace")
512				     (:file "mdebug")))
513	       (:module miscellaneous :pathname ""
514			:components ((:file "scs")
515				     (:file "asum")
516				     (:file "fortra")
517				     (:file "optim")
518				     (:file "marray")
519				     (:file "mdot")
520				     (:file "irinte")
521				     (:file "series")
522                                     (:file "numth")
523				     (:file "laplac")
524				     (:file "pade")
525				     (:file "homog")
526				     (:file "combin")
527				     (:file "nset")
528				     (:file "rand-mt19937")
529				     (:file "maxmin")
530				     (:file "nummod")
531				     (:file "conjugate")
532                                     (:file "expintegral")
533                                     (:file "gamma")
534				     (:file "mstuff")))
535	       (:module poisson-series :pathname ""
536			:components ((:file "pois2")
537				     (:file "pois3")))
538	       (:module translated-packages :pathname ""
539			:depends-on ("maxima-language-compiler-macros")
540			:components
541			((:file "desoln")
542			 (:file "elim")
543			 (:file "invert")
544			 (:file "hypgeo")
545			 (:file "hyp")
546			 (:file "todd-coxeter")
547			 (:file "mactex")
548			 (:file "plot")))
549	       (:module graphics-drivers :pathname ""
550			:components ((:file "gnuplot_def")
551				     (:file "xmaxima_def")))
552
553	       (:module final :pathname ""
554			;; These are not compiled, for whatever reason
555			:components ((:file "autol")
556				     (:file "max_ext")
557				     (:file "share-subdirs")
558				     (:file "init-cl"))))
559  :serial t
560  :depends-on ())
561