SRRAT: use MRAT reader functions instead of CADDAR, etc.
[maxima.git] / archive / src / makefile
bloba109e73b044f276b531971100b8ce9ad11ec7f21
2 .SUFFIXES: .o .c .lisp
4 SHELL = sh
5 SRC = .
6 PORTDIR =$(GCLDIR)/unixport
7 MAXIMA = ./saved_maxima
8 LISP = $(PORTDIR)/saved_gcl${EXE} $(PORTDIR)/
9 # sloop.o is already in our kcl. otherwise it goes here.
10 HERE=${MAXDIR}/src
12 # begin makedefs
14 # use=386-linux
16 # for main link of raw_gcl
17 LIBS= -lm
19 #The multi precision library stuff
20 MPFILES=$(MPDIR)/mpi-386_no_under.o $(MPDIR)/libmport.a
23 # root for the installation, eg /usr/local
24 # This would cause make install to create /usr/local/bin/gcl and
25 # /usr/local/lib/gcl-2-??/* with some basic files.
26 prefix=/usr/local
28 # where to place the info files
29 INFO_DIR=/usr/local/info/
31 # where to put emacs lisp files.
32 EMACS_SITE_LISP=/usr/share/emacs/20.7/site-lisp
34 # the default.el file
35 EMACS_DEFAULT_EL=/usr/share/emacs/20.7/site-lisp/default.el
37 # numerous TCL/TK variables culled from the tkConfig.sh and tclConfig.sh
38 # if these are found.
39 TK_CONFIG_PREFIX=/usr/local/lib
40 TK_LIBRARY=/usr/local/lib/tk8.3
41 TCL_LIBRARY=/usr/local/lib/tcl8.3
42 TK_XINCLUDES=-I/usr/X11R6/include
43 TK_INCLUDE=-I/usr/local/lib/../include
44 TCL_INCLUDE=-I/usr/local/lib/../include
45 TK_LIB_SPEC=-L/usr/local/lib -ltk8.3
46 TK_BUILD_LIB_SPEC=-L/home/wfs/src/tk8.3.2/unix -ltk8.3
47 TK_XLIBSW=-L/usr/X11R6/lib -lX11
48 TK_XINCLUDES=-I/usr/X11R6/include
49 TCL_LIB_SPEC=-L/usr/local/lib -ltcl8.3${TCL_DBGX}
50 TCL_DL_LIBS=-ldl
51 TCL_LIBS=-ldl -lm
53 NOTIFY=yes
54 GCC=gcc
60 GCLDIR=/home/wfs/cvs/gcl
61 SHELL=/bin/sh
62 MACHINE=386-linux
64 # notes for redhat 6.0
65 # the configure should select the compiler GCC=/usr/bin/i386-glibc20-linux-gcc
66 # However for the gcl-tk directory, you must use plain 'gcc' since
67 # that must link with the tcl tk libs which have been compiled with it.
68 # so after configure change to GCC=gcc in the gcl-tk/makefile
71 # Machine dependent makefile definitions for intel 386,486 running linux
73 LBINDIR=/usr/local/bin
75 OFLAG = -O
76 LIBS = -lm
78 ODIR_DEBUG= -O4
80 # This CC string will be used for compilation of the system,
81 # and also in the compiler::*cc* variable for later compilation of
82 # lisp files.
83 # (the -pipe is just since our file system is slow..)
84 CC = ${GCC} -pipe -fwritable-strings -DVOL=volatile -I$(GCLDIR)/o -fsigned-char
86 # under redhat 6.1 and slackware 7.0 we needed to have this
87 # link be static, but should be ok with the fix to unixport/rsym_elf.c
88 LDCC=${CC} -static
89 LDCC=${CC}
91 # note for linuxaout on an elf machine add -b i486-linuxaout
92 # CC = gcc -pipe -fwritable-strings -DVOL=volatile -I$(GCLDIR)/o -fsigned-char -b i486-linuxaout
94 # Enable the fastloading mechanism which does not use ld -A
95 # requires c/rel_.. machine dependent code.
97 RSYM = rsym
98 SFASL = $(ODIR)/sfasl.o
101 #MPFILES= $(MPDIR)/mpi-386d.o $(MPDIR)/libmport.a
104 # When using SFASL it is good to have (si::build-symbol-table)
105 INITFORM=(si::build-symbol-table)
107 # Use symbolic links
108 SYMB=-s
110 LIBFILES=bsearch.o
112 # the make to use for saved_kcp the profiler.
113 KCP=kcp-bsd
114 MPFILES=${GMP_DIR}libgmp.a
117 # end makedefs
118 GCLDIR=/home/wfs/cvs/gcl
119 MAXDIR=/home/wfs/cvs/maxima
120 PREFIX_DIR=/usr/local
121 EMACS_SITE_LISP=/usr/local/lib/emacs/site-lisp
122 INFO_DIR=/usr/local/info
123 MAN_DIR=/usr/local/man/man1
124 # end maxmakedefs
128 MACROS = lmdcls.o letmac.o kclmac.o clmacs.o commac.o mormac.o \
129 compat.o defopt.o defcal.o maxmac.o mopers.o \
130 mforma.o mrgmac.o procs.o rzmac.o strmac.o \
131 displm.o ratmac.o mhayat.o \
132 numerm.o transm.o optimize.o
134 # serror.o is now in gcl
135 OBJS = opers.o utils.o sumcon.o sublis.o runtim.o \
136 merror.o mformt.o mutils.o \
137 outmis.o ar.o misc.o comm.o comm2.o mlisp.o \
138 mmacro.o buildq.o simp.o float.o csimp.o \
139 csimp2.o zero.o logarc.o rpart.o macsys.o mload.o \
140 suprv1.o dskfn.o lesfac.o \
141 factor.o algfac.o nalgfa.o ufact.o result.o \
142 rat3a.o rat3b.o rat3d.o rat3c.o rat3e.o \
143 nrat4.o ratout.o transl.o transs.o \
144 trans1.o trans2.o trans3.o trans4.o \
145 trans5.o transf.o troper.o trutil.o trmode.o trdata.o \
146 trpred.o transq.o acall.o \
147 fcall.o evalw.o trprop.o mdefun.o bessel.o ellipt.o \
148 numer.o intpol.o rombrg.o \
149 nparse.o displa.o nforma.o ldisp.o \
150 grind.o spgcd.o ezgcd.o option.o macdes.o \
151 inmis.o db.o compar.o askp.o sinint.o \
152 sin.o risch.o hayat.o defint.o residu.o trigi.o \
153 trigo.o trgred.o specfn.o mat.o matrix.o \
154 sprdet.o newinv.o linnew.o newdet.o \
155 schatc.o matcom.o matrun.o nisimp.o tlimit.o \
156 limit.o solve.o psolve.o algsys.o \
157 polyrz.o cpoly.o mtrace.o scs.o asum.o fortra.o \
158 optim.o marray.o mdot.o irinte.o \
159 series.o numth.o laplac.o pade.o homog.o combin.o \
160 mstuff.o ratpoi.o pois2.o pois3.o mdebug.o
163 TRANSLATED = nusum.o desoln.o elim.o trgsmp.o ode2.o invert.o plot.o
165 OTHERS = hypgeo.o hyp.o todd-coxeter.o mactex.o
167 all: $(MACROS) $(OBJS) saved_maxima $(OTHERS)
168 make translated
171 install:
172 cp ${TRANSLATED} ${OTHERS} ${INSTALL_LIB_DIR}/src
174 sysinit.o maxobjs: sysinit.lsp makefile ../makefile
175 echo '(load "sysdef.lisp")(compile-file "sysinit.lsp" :system-p t :c-file t)' | $(LISP)
177 # make an init_maxima.lsp in the PORTDIR
179 init_max0.lisp: makefile
180 echo '(si::chdir "${HERE}")' > init_max0.lisp
181 echo '(load "maxima-package.lisp")' >> init_max0.lisp
182 echo '(setq maxima::*maxima-directory* (namestring (truename "../")))' >> init_max0.lisp
184 comparedirs:
185 for v in `echo $OBJS $OTHERS $TRANSLATED | sed -e "s:\.o:.lisp:g"` ; do echo for $v ; diff -c $v /home/wfs/cvs/maxima/src/$v ; done
187 init_max2.lisp: makefile
188 echo '(si::chdir "'${PORTDIR}'")' > init_max2.lisp
190 saved_maxima: maxobjs sysinit.o $(OBJS) $(MACROS) version.lisp init_max0.lisp init_max2.lisp
191 cat $(PORTDIR)/init_gcl.lsp | sed -e \
192 "s\a;system-init\a(si::chdir \"${HERE}\")(si::save-system \"saved_maxima\")\ag" \
193 > init_maxima.lsp
194 - if cmp init_maxima.lsp $(PORTDIR)/init_maxima.lsp > /dev/null ;\
195 then true; else cp init_maxima.lsp $(PORTDIR)/init_maxima.lsp;fi
196 (cd $(PORTDIR) ; make saved_maxima "SYSTEM=maxima" "SYSTEM_OBJS=`cat $(MAXDIR)/src/maxobjs`" "PORTDIR=$(PORTDIR)")
200 version.lisp: ../majvers ../minvers ${OBJS} ${MACROS}
201 echo "(setf (get :maxima :version) (quote (" `cat ../majvers` `cat ../minvers` \"`date`\" ")))" > version.lisp
203 PREAMBLE='(load "sysdef.lisp")' \
204 '(load "SYS-PROCLAIM.lisp")' \
205 '(proclaim (quote (optimize (safety 0) (speed 0) (space 0))))' \
206 '(setq compiler::*ifuncall* t)'
208 PREAMBLE='(load "sysdef.lisp")' \
209 '(load "'${GCLDIR}'/lsp/sys-proclaim.lisp")' '(load "sys-proclaim.lisp")' \
210 '(proclaim (quote (optimize (safety 0) (speed 3) (space 0))))' \
211 '(setq *load-verbose* nil)'
214 $(MACROS):
215 echo $(PREAMBLE)\
216 '(proclaim (quote (optimize (safety 2) (speed 2) (space 2))))' \
217 '(make::make :maxima-macros :compile t)' | $(LISP)
219 $(TRANSLATED) $(OTHERS):
220 ./saved_maxima -compile $*.lisp -o-file t
222 translated: $(TRANSLATED) $(OTHERS)
224 sloop.o make.o:
225 $(SAVEDKCLDIR)/saved_kcl $(SAVEDKCLDIR) $*.lisp $* S1000
227 # This would cause recompiling of all objects if one macro file changed.
228 # $(OBJS):: saved_max_compile
229 # rm $@
231 .lisp.o:
232 echo $(PREAMBLE)'(make::make :maxima-macros)(compile-file '\"$*.lisp\"' :system-p t)' | ${LISP}
234 # c files should not get left but they're sometimes there.
236 .c.o:
237 echo $(PREAMBLE)'(make::make :maxima-macros)(compile-file '\"$*.lisp\"' :system-p t)' | ${LISP}
239 all-clean:
240 rm -f $(TRANSLATED) $(OBJS) $(MACROS) core saved_maxima
241 rm -f *.o
243 clean:
244 rm -f $(OBJS) $(MACROS) core saved_max_compile make.o $(PORTDIR)/raw_maxima
246 eliminate-source:
247 rm -f `echo $(OBJS) | sed -e "s:[.]o:.lisp:g"`
248 rm -f $(OBJS) sysdef.lisp make.lisp
249 rm -f info/*.texi
250 rm -f $(PORTDIR)/raw_maxima
252 tags:
253 @echo etags $(OTHERS) $(TRANSLATED) $(OBJS) $(MACROS) | sed -e "s:\.o:.lisp:g" |sh
255 proclaims:
256 echo "(setq user::lisp-dir \"$(KCLDIR)\")" \
257 '(load "makepro.lisp")' | $(KCLDIR)/xbin/kcl
258 cat var-proclaims.lisp >> SYS-PROCLAIM.lisp
260 sys-proclaim.lisp:
261 echo $(PREAMBLE)\
262 '(setq maxima::*maxima-directory* (namestring (truename "../")))'\
263 '(proclaim (quote (optimize (safety 2) (speed 2) (space 2))))' \
264 '(in-package "MAXIMA")(make::make :maxima :proclaims t)' | $(LISP)
265 cat var-proclaims.lisp >> sys-proclaim.lisp
267 CLISP=clisp
268 CMULISP=lisp
269 clisp-compile:
270 echo '(progn (load "compile-clisp.lisp")(compile-maxima))' | ${CLISP}
271 maxima-clisp.mem: clisp-compile
272 echo '(progn (load "compile-clisp.lisp")(save-maxima))' | ${CLISP}
273 # invoke clisp maxima on the test suite
274 test-clisp: maxima-clisp.mem
275 (cd ../doc ; ${CLISP} -M ../src/maxima-clisp.mem tests.lisp)
278 cmulisp-compile:
279 echo '(progn (load "compile-cmulisp.lisp")(compile-maxima)(quit))' | ${CMULISP}
280 maxima.core: cmulisp-compile
281 echo '(progn (load "compile-cmulisp.lisp")(save-maxima)(quit))' | ${CMULISP}
283 test-cmulisp: maxima.core
284 (cd ../doc ; ${CMULISP} -core ../src/maxima.core -load tests.lisp)
293 # explicitly state these... necessary for some 'make' s
295 lmdcls.o:lmdcls.lisp
296 letmac.o:letmac.lisp
297 kclmac.o:kclmac.lisp
298 clmacs.o:clmacs.lisp
299 commac.o:commac.lisp
300 mormac.o:mormac.lisp
301 compat.o:compat.lisp
302 defopt.o:defopt.lisp
303 defcal.o:defcal.lisp
304 maxmac.o:maxmac.lisp
305 mopers.o:mopers.lisp
306 mforma.o:mforma.lisp
307 mrgmac.o:mrgmac.lisp
308 procs.o:procs.lisp
309 rzmac.o:rzmac.lisp
310 strmac.o:strmac.lisp
311 displm.o:displm.lisp
312 ratmac.o:ratmac.lisp
313 mhayat.o:mhayat.lisp
314 numerm.o:numerm.lisp
315 transm.o:transm.lisp
316 optimize.o:optimize.lisp
317 plot.o:plot.lisp
319 othernames:
320 @ for v in ${OTHERS} ${TRANSLATED} ; do echo src/$$v ; done