.SUFFIXES: .o .c .lisp

# begin makedefs
MAXDIR = /usr/public/maxima
KCLDO = /public/akcl/o/
KCLDLSP = /public/akcl/lsp/
KCLDCMP = /public/akcl/cmpnew/
MAXSRC = ../src/
AKCLDIR=/usr/public/akcl
SHELL=/bin/sh
MACHINE=hp300-bsd

# Machine dependent makefile definitions for hp300 running 4.3bsd(mt xinu)

LBINDIR=/usr/local/bin

OFLAG	=  -O 
LIBS	= -lm -lg 
ODIR_DEBUG= -g

# This CC string will be used for compilation of the system,
# and also in the compiler::*cc* variable for later compilation of
# lisp files.

CC = gcc -fwritable-strings -msoft-float -DVOL=volatile -I$(AKCLDIR)/o 
MAINDIR = /public/kcl

# Enable the fastloading mechanism which does not use ld -A
# requires c/rel_.. machine dependent code.

RSYM	= rsym
SFASL	= $(ODIR)/sfasl.o

#  Use the mp.s file on 68k machine 

MPFILES= $(MPDIR)/mpi-bsd68k.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

KCLDIR = /public/akcl
# end makedefs


SAVEDKCLDIR = $(KCLDIR)/unixport
KCLCOM 	= ../bin/kcl
SRC	= .
PORTDIR	=../unixport

#       sloop.o is already in our kcl. otherwise it goes here.

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 

OBJS   = opers.o utils.o sumcon.o sublis.o runtim.o \
	serror.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 

TRANSLATED = nusum.o desoln.o elim.o trgsmp.o ode2.o invert.o plot.o

OTHERS 	= hypgeo.o hyp.o


all:  make.o $(MACROS) saved_max_compile $(OBJS) $(OTHERS)

$(MACROS):  
	echo '(load "sysdef.lisp")' '(setq compiler::*ifuncall* t)' \
	'(load "SYS-PROCLAIM.lisp")' \
	'(proclaim '\''(optimize (safety 2) (speed 2) (space 2)))' \
	'(make::make :maxima-macros :compile t)' | $(KCLCOM)

saved_max_compile: $(MACROS)  make.o  sysdef.lisp 
	echo '(load "sysdef.lisp")(make::make :maxima-macros )' \
	'(load "SYS-PROCLAIM.lisp")' \
	'(setq compiler::*ifuncall* t)' \
	'(gbc nil)(si:save-system "saved_max_compile")' | $(KCLCOM)

$(TRANSLATED):	# $(PORTDIR)/saved_maxima
	$(PORTDIR)/saved_maxima $(PORTDIR)/ $*.lisp $*.o S1000

translated:	$(TRANSLATED)

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:
	@date
	$(SRC)/saved_max_compile $(SRC)/ $(SRC)/$*.lisp $(SRC)/$*.o S1000

# c files should not get left but they're sometimes there.

.c.o:
	@date
	$(SRC)/saved_max_compile $(SRC)/ $(SRC)/$*.lisp $(SRC)/$*.o S1000

all-clean:
	rm -f $(TRANSLATED) $(OBJS) $(MACROS) core saved_max_compile make.o
	rm -f *.o

clean:
	rm -f  $(OBJS) $(MACROS) core saved_max_compile make.o


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

saved: ${PORTDIR}/saved_maxima

${PORTDIR}/saved_maxima: ${OBJS} ${MACROS} save.lisp
	cat save.lisp | sed -e "s:SYSDIR:${MAXDIR}:g" | ${KCLCOM}



	
