.SUFFIXES: .o .c .lisp SHELL = sh SRC = . PORTDIR =$(GCLDIR)/unixport MAXIMA = ./saved_maxima LISP = $(PORTDIR)/saved_gcl${EXE} $(PORTDIR)/ # sloop.o is already in our kcl. otherwise it goes here. HERE=${MAXDIR}/src # begin makedefs # use=386-linux # for main link of raw_gcl LIBS= -lm #The multi precision library stuff MPFILES=$(MPDIR)/mpi-386_no_under.o $(MPDIR)/libmport.a # root for the installation, eg /usr/local # This would cause make install to create /usr/local/bin/gcl and # /usr/local/lib/gcl-2-??/* with some basic files. prefix=/usr/local # where to place the info files INFO_DIR=/usr/local/info/ # where to put emacs lisp files. EMACS_SITE_LISP=/usr/share/emacs/20.7/site-lisp # the default.el file EMACS_DEFAULT_EL=/usr/share/emacs/20.7/site-lisp/default.el # numerous TCL/TK variables culled from the tkConfig.sh and tclConfig.sh # if these are found. TK_CONFIG_PREFIX=/usr/local/lib TK_LIBRARY=/usr/local/lib/tk8.3 TCL_LIBRARY=/usr/local/lib/tcl8.3 TK_XINCLUDES=-I/usr/X11R6/include TK_INCLUDE=-I/usr/local/lib/../include TCL_INCLUDE=-I/usr/local/lib/../include TK_LIB_SPEC=-L/usr/local/lib -ltk8.3 TK_BUILD_LIB_SPEC=-L/home/wfs/src/tk8.3.2/unix -ltk8.3 TK_XLIBSW=-L/usr/X11R6/lib -lX11 TK_XINCLUDES=-I/usr/X11R6/include TCL_LIB_SPEC=-L/usr/local/lib -ltcl8.3${TCL_DBGX} TCL_DL_LIBS=-ldl TCL_LIBS=-ldl -lm NOTIFY=yes GCC=gcc GCLDIR=/home/wfs/cvs/gcl SHELL=/bin/sh MACHINE=386-linux # notes for redhat 6.0 # the configure should select the compiler GCC=/usr/bin/i386-glibc20-linux-gcc # However for the gcl-tk directory, you must use plain 'gcc' since # that must link with the tcl tk libs which have been compiled with it. # so after configure change to GCC=gcc in the gcl-tk/makefile # Machine dependent makefile definitions for intel 386,486 running linux LBINDIR=/usr/local/bin OFLAG = -O LIBS = -lm ODIR_DEBUG= -O4 # This CC string will be used for compilation of the system, # and also in the compiler::*cc* variable for later compilation of # lisp files. # (the -pipe is just since our file system is slow..) CC = ${GCC} -pipe -fwritable-strings -DVOL=volatile -I$(GCLDIR)/o -fsigned-char # under redhat 6.1 and slackware 7.0 we needed to have this # link be static, but should be ok with the fix to unixport/rsym_elf.c LDCC=${CC} -static LDCC=${CC} # note for linuxaout on an elf machine add -b i486-linuxaout # CC = gcc -pipe -fwritable-strings -DVOL=volatile -I$(GCLDIR)/o -fsigned-char -b i486-linuxaout # Enable the fastloading mechanism which does not use ld -A # requires c/rel_.. machine dependent code. RSYM = rsym SFASL = $(ODIR)/sfasl.o #MPFILES= $(MPDIR)/mpi-386d.o $(MPDIR)/libmport.a # When using SFASL it is good to have (si::build-symbol-table) INITFORM=(si::build-symbol-table) # Use symbolic links SYMB=-s LIBFILES=bsearch.o # the make to use for saved_kcp the profiler. KCP=kcp-bsd MPFILES=${GMP_DIR}libgmp.a # end makedefs GCLDIR=/home/wfs/cvs/gcl MAXDIR=/home/wfs/cvs/maxima PREFIX_DIR=/usr/local EMACS_SITE_LISP=/usr/local/lib/emacs/site-lisp INFO_DIR=/usr/local/info MAN_DIR=/usr/local/man/man1 # end maxmakedefs MACROS = lmdcls.o letmac.o kclmac.o clmacs.o commac.o mormac.o \ compat.o defopt.o defcal.o maxmac.o mopers.o \ mforma.o mrgmac.o procs.o rzmac.o strmac.o \ displm.o ratmac.o mhayat.o \ numerm.o transm.o optimize.o # serror.o is now in gcl OBJS = opers.o utils.o sumcon.o sublis.o runtim.o \ merror.o mformt.o mutils.o \ outmis.o ar.o misc.o comm.o comm2.o mlisp.o \ mmacro.o buildq.o simp.o float.o csimp.o \ csimp2.o zero.o logarc.o rpart.o macsys.o mload.o \ suprv1.o dskfn.o lesfac.o \ factor.o algfac.o nalgfa.o ufact.o result.o \ rat3a.o rat3b.o rat3d.o rat3c.o rat3e.o \ nrat4.o ratout.o transl.o transs.o \ trans1.o trans2.o trans3.o trans4.o \ trans5.o transf.o troper.o trutil.o trmode.o trdata.o \ trpred.o transq.o acall.o \ fcall.o evalw.o trprop.o mdefun.o bessel.o ellipt.o \ numer.o intpol.o rombrg.o \ nparse.o displa.o nforma.o ldisp.o \ grind.o spgcd.o ezgcd.o option.o macdes.o \ inmis.o db.o compar.o askp.o sinint.o \ sin.o risch.o hayat.o defint.o residu.o trigi.o \ trigo.o trgred.o specfn.o mat.o matrix.o \ sprdet.o newinv.o linnew.o newdet.o \ schatc.o matcom.o matrun.o nisimp.o tlimit.o \ limit.o solve.o psolve.o algsys.o \ polyrz.o cpoly.o mtrace.o scs.o asum.o fortra.o \ optim.o marray.o mdot.o irinte.o \ series.o numth.o laplac.o pade.o homog.o combin.o \ mstuff.o ratpoi.o pois2.o pois3.o mdebug.o TRANSLATED = nusum.o desoln.o elim.o trgsmp.o ode2.o invert.o plot.o OTHERS = hypgeo.o hyp.o todd-coxeter.o mactex.o all: $(MACROS) $(OBJS) saved_maxima $(OTHERS) make translated install: cp ${TRANSLATED} ${OTHERS} ${INSTALL_LIB_DIR}/src sysinit.o maxobjs: sysinit.lsp makefile ../makefile echo '(load "sysdef.lisp")(compile-file "sysinit.lsp" :system-p t :c-file t)' | $(LISP) # make an init_maxima.lsp in the PORTDIR init_max0.lisp: makefile echo '(si::chdir "${HERE}")' > init_max0.lisp echo '(load "maxima-package.lisp")' >> init_max0.lisp echo '(setq maxima::*maxima-directory* (namestring (truename "../")))' >> init_max0.lisp comparedirs: 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 init_max2.lisp: makefile echo '(si::chdir "'${PORTDIR}'")' > init_max2.lisp saved_maxima: maxobjs sysinit.o $(OBJS) $(MACROS) version.lisp init_max0.lisp init_max2.lisp cat $(PORTDIR)/init_gcl.lsp | sed -e \ "s;system-init(si::chdir \"${HERE}\")(si::save-system \"saved_maxima\")g" \ > init_maxima.lsp - if cmp init_maxima.lsp $(PORTDIR)/init_maxima.lsp > /dev/null ;\ then true; else cp init_maxima.lsp $(PORTDIR)/init_maxima.lsp;fi (cd $(PORTDIR) ; make saved_maxima "SYSTEM=maxima" "SYSTEM_OBJS=`cat $(MAXDIR)/src/maxobjs`" "PORTDIR=$(PORTDIR)") version.lisp: ../majvers ../minvers ${OBJS} ${MACROS} echo "(setf (get :maxima :version) (quote (" `cat ../majvers` `cat ../minvers` \"`date`\" ")))" > version.lisp PREAMBLE='(load "sysdef.lisp")' \ '(load "SYS-PROCLAIM.lisp")' \ '(proclaim (quote (optimize (safety 0) (speed 0) (space 0))))' \ '(setq compiler::*ifuncall* t)' PREAMBLE='(load "sysdef.lisp")' \ '(load "'${GCLDIR}'/lsp/sys-proclaim.lisp")' '(load "sys-proclaim.lisp")' \ '(proclaim (quote (optimize (safety 0) (speed 3) (space 0))))' \ '(setq *load-verbose* nil)' $(MACROS): echo $(PREAMBLE)\ '(proclaim (quote (optimize (safety 2) (speed 2) (space 2))))' \ '(make::make :maxima-macros :compile t)' | $(LISP) $(TRANSLATED) $(OTHERS): ./saved_maxima -compile $*.lisp -o-file t translated: $(TRANSLATED) $(OTHERS) sloop.o make.o: $(SAVEDKCLDIR)/saved_kcl $(SAVEDKCLDIR) $*.lisp $* S1000 # This would cause recompiling of all objects if one macro file changed. # $(OBJS):: saved_max_compile # rm $@ .lisp.o: echo $(PREAMBLE)'(make::make :maxima-macros)(compile-file '\"$*.lisp\"' :system-p t)' | ${LISP} # c files should not get left but they're sometimes there. .c.o: echo $(PREAMBLE)'(make::make :maxima-macros)(compile-file '\"$*.lisp\"' :system-p t)' | ${LISP} all-clean: rm -f $(TRANSLATED) $(OBJS) $(MACROS) core saved_maxima rm -f *.o clean: rm -f $(OBJS) $(MACROS) core saved_max_compile make.o $(PORTDIR)/raw_maxima eliminate-source: rm -f `echo $(OBJS) | sed -e "s:[.]o:.lisp"` rm -f $(OBJS) sysdef.lisp make.lisp rm -f info/*.texi rm -f $(PORTDIR)/raw_maxima tags: @echo etags $(OTHERS) $(TRANSLATED) $(OBJS) $(MACROS) | sed -e "s:\.o:.lisp:g" |sh proclaims: echo "(setq user::lisp-dir \"$(KCLDIR)\")" \ '(load "makepro.lisp")' | $(KCLDIR)/xbin/kcl cat var-proclaims.lisp >> SYS-PROCLAIM.lisp sys-proclaim.lisp: echo $(PREAMBLE)\ '(setq maxima::*maxima-directory* (namestring (truename "../")))'\ '(proclaim (quote (optimize (safety 2) (speed 2) (space 2))))' \ '(in-package "MAXIMA")(make::make :maxima :proclaims t)' | $(LISP) cat var-proclaims.lisp >> sys-proclaim.lisp CLISP=clisp CMULISP=lisp clisp-compile: echo '(progn (load "compile-clisp.lisp")(compile-maxima))' | ${CLISP} maxima-clisp.mem: clisp-compile echo '(progn (load "compile-clisp.lisp")(save-maxima))' | ${CLISP} # invoke clisp maxima on the test suite test-clisp: maxima-clisp.mem (cd ../doc ; ${CLISP} -M ../src/maxima-clisp.mem tests.lisp) cmulisp-compile: echo '(progn (load "compile-cmulisp.lisp")(compile-maxima))' | ${CMULISP} maxima.core: cmulisp-compile echo '(progn (load "compile-cmulisp.lisp")(save-maxima))' | ${CMULISP} test-cmulisp: maxima.core (cd ../doc ; ${CMULISP} -core ../src/maxima.core -load ../src/maxima-clisp.mem tests.lisp) # explicitly state these... necessary for some 'make' s lmdcls.o:lmdcls.lisp letmac.o:letmac.lisp kclmac.o:kclmac.lisp clmacs.o:clmacs.lisp commac.o:commac.lisp mormac.o:mormac.lisp compat.o:compat.lisp defopt.o:defopt.lisp defcal.o:defcal.lisp maxmac.o:maxmac.lisp mopers.o:mopers.lisp mforma.o:mforma.lisp mrgmac.o:mrgmac.lisp procs.o:procs.lisp rzmac.o:rzmac.lisp strmac.o:strmac.lisp displm.o:displm.lisp ratmac.o:ratmac.lisp mhayat.o:mhayat.lisp numerm.o:numerm.lisp transm.o:transm.lisp optimize.o:optimize.lisp othernames: @ for v in ${OTHERS} ${TRANSLATED} ; do echo src/$$v ; done