# edit ./configure to reflect paths at your site.  This will insert
# things in these directories.  Then do './configure' 

# the lines down to '# end makedefs' are added by ./configure from the gcl dir.

# place to put maxima in installation procedure
PREFIX_DIR=/usr/local
# the above will result in /usr/local/bin/maxima and /usr/local/lib/maxima-x.x

# 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

#
SRC=./src

all: 
	(cd $(SRC) ; make )


clean:
	(cd src ; make clean)
	(cd info ; make clean)

test:
	make test1 "MAXIMA=`pwd`/src/saved_maxima `pwd`/src/"

test-clisp:
	(cd ../doc ; ${CLISP} -M ../src/maxima-clisp.mem tests.lisp)

test1:
	date
	(cd doc ; ${MAXIMA} -dir `pwd`/../src/   -load "tests.lisp" < /dev/null )
	date

#just for checking sgc is ok... not really a check on maxima.
testsgc:
	date
	(cd doc ; ${MAXIMA} -dir `pwd`/../src/ -eval '(progn (si::sgc-on t) (setq si::*notify-gbc* t))'  -load "tests.lisp" < /dev/null )
	date

time:
	@echo "***** FACTOR TEST *****"
	@date
	@echo Running on `hostname`
	cat doc/time.test | ${MAXIMA}

install:
	make install1 PREFIX_DIR=${PREFIX_DIR} INSTALL_LIB_DIR=${PREFIX_DIR}/lib/maxima-`cat majvers`.`cat minvers`

PLOTTING_BIN=bin/omplotdata bin/mgnuplot

install1: command
	if [  -f ${INSTALL_LIB_DIR}/makefile  ] ; then true; else \
	tar cvf - doc/manual.demo src/plot.o doc/*.mac doc/tests.lisp src/server.lisp intro.html doc/*.html info/*.html */*.mac sym bin/xmaxima maxima.gif info/*.texi info/*.info* info/makefile ${PLOTTING_BIN} \
	share/*.lisp */*.mc */*.dem */*.usg src/saved_maxima${EXE}  | (cd ${INSTALL_LIB_DIR}/ ; tar xvf - ) ;fi
	(cd src ; make install "INSTALL_LIB_DIR=${INSTALL_LIB_DIR}")
	(cd info ; make install)
	(cd elisp ; make install)
	cp  ./doc/maxima.1 ${MAN_DIR}
	chmod a+r ${MAN_DIR}/maxima.1

command:
	for v in ${PREFIX_DIR} ${PREFIX_DIR}/lib ${PREFIX_DIR}/bin  ${INSTALL_LIB_DIR}/ ; do if test -d $$v ; then true ; else mkdir $$v ; fi ; done
	echo '#!/bin/sh' > ${PREFIX_DIR}/bin/maxima
	echo export MAXIMA_DIRECTORY >> ${PREFIX_DIR}/bin/maxima
	echo MAXIMA_DIRECTORY=${INSTALL_LIB_DIR} >> ${PREFIX_DIR}/bin/maxima
	echo exec ${INSTALL_LIB_DIR}/src/saved_maxima -dir ${INSTALL_LIB_DIR}/src/ '$$@' \
	>>  ${PREFIX_DIR}/bin/maxima
	chmod a+x ${PREFIX_DIR}/bin/maxima
	echo '#!/bin/sh' > ${PREFIX_DIR}/bin/xmaxima
	echo export MAXIMA_DIRECTORY >> ${PREFIX_DIR}/bin/xmaxima
	echo MAXIMA_DIRECTORY=${INSTALL_LIB_DIR} >> ${PREFIX_DIR}/bin/xmaxima
	echo exec ${INSTALL_LIB_DIR}/bin/xmaxima  '$$@' >>  ${PREFIX_DIR}/bin/xmaxima
	chmod a+x ${PREFIX_DIR}/bin/xmaxima


tar-bin:
	make tar-bin1 PREFIX_DIR=${PREFIX_DIR} INSTALL_LIB_DIR=${PREFIX_DIR}/lib/maxima-`cat ${MAXDIR}/majvers`.`cat ${MAXDIR}/minvers`
tar-bin1:
	(cd / ; tar cvf - ${PREFIX_DIR}/bin/maxima ${INSTALL_LIB_DIR} | gzip  -c > /tmp/maxima-`cat ${GCLDIR}/machine`-`cat ${MAXDIR}/majvers`.`cat ${MAXDIR}/minvers`-bin.tgz) 

BETA=-beta
tar:
	bin/distribute maxima-`cat majvers`.`cat minvers`$(BETA).tgz


maxima.zip: src/saved_maxima${EXE}
	rm -f maxima.zip
	OTHERS=`make -s -f src/makefile othernames` ; \
	zip maxima.zip $${OTHERS} src/server.lisp doc/manual.demo share*/*.mc share*/*.lisp sym/*.lsp */*.dem doc/*.mac src/xmaxima.exe info/*.html src/saved_maxima.exe .exe info/*info* doc/*.html src/*.ico src/winkill.exe src/tclwinkill.dll maxima.gif doc/tests.lisp


DL=./deliver/

${DL}zipinfo.tcl ${DL}setup_contents.txt: maxima.zip gcc.zip ${DL}pkginfo.tcl
	tclsh  ${DL}getzipinfo.tcl

DELIVER_FILES=${DL}setup.tcl ${DL}unpack.tcl  ${DL}install1.gif  ${DL}fdlogo3.gif  ${DL}pkginfo.tcl ${DL}zipinfo.tcl  ./src/maxicon.gif ./COPYING ./readme.xmaxima

gcc.zip:
	zip -r gcc.zip gcc

${DL}setup{$EXE}: gcc.zip maxima.zip ${DL}setup_contents.txt ${DL}zipinfo.tcl ${DELIVER_FILES}
	freewrap-cross  ${DELIVER_FILES} -p ${DL}setup_contents.txt
setup:  maxima.zip ${DL}setup_contents.txt ${DL}zipinfo.tcl ${DELIVER_FILES}
	freewrap-cross  ${DELIVER_FILES} -p ${DL}setup_contents.txt


	

