# Makefile for JACAL: Symbolic Mathematics System.
# Copyright (C) 1990, 1991, 1992, 1993, 1994 Aubrey Jaffer.
# See the file "COPYING" for terms applying to this program

SHELL = /bin/sh
intro:
	@echo
	@echo "Welcome to JACAL.  To install, unpack this directory"
	@echo "where it will eventually reside.  You will also need"
	@echo "to install SLIB and have a Scheme Implementation"
	@echo "(both of which are available from the same vendor or"
	@echo "site as JACAL)."
	@echo
	@echo "Read \"README\" and \"jacal.info\" (or \"jacal.texi\") to"
	@echo "learn how to run and use JACAL."
	@echo
	@echo
	-make jacal.info
	-make jacal

jacal:	Makefile . ..
	echo scm -iql`pwd`/math.scm -ie"\"(math)\"" > jacal
	chmod +x jacal

info:	jacal.info
jacal.info:	jacal.texi
	makeinfo jacal.texi

dvi:	jacal.dvi
jacal.dvi:	jacal.texi jacal.fn
#	texi2dvi jacal.texi
	-texindex jacal.??
	tex jacal.texi
jacal.fn:
	tex jacal.texi
xdvi:	jacal.dvi
	xdvi jacal.dvi

#### Stuff for maintaining JACAL below ####

VERSION = 1a4
ver = $(VERSION)
cfiles = scl.scm math.scm modeinit.scm debug.scm view.scm
sfiles = toploads.scm types.scm func.scm poly.scm elim.scm \
	vect.scm ext.scm norm.scm hist.scm sexp.scm sect.scm \
	grammar.scm parse.scm unparse.scm builtin.scm info.scm \
	tensor.scm
gfiles = English.scm
mfiles = ANNOUNCE README COPYING HELP Makefile ChangeLog \
	jacal.texi demo test.math rw.math
allfiles = $(mfiles) $(sfiles) $(cfiles) $(gfiles)
#defiles Document internals of Jacal.
dfiles = algdenom grammar history lambda ratint.tex
# Common Lisp not currently supported.
lfiles = scl.lisp math.lisp compilem.lisp

makedev = make -f $(HOME)/makefile.dev
dest = $(HOME)/dist/
temp/jacal:	$(allfiles)
	-rm -rf temp
	mkdir temp
	mkdir temp/jacal
	ln  $(allfiles) temp/jacal
	mkdir temp/jacal/DOC
	cd DOC; ln $(dfiles) ../temp/jacal/DOC

infotemp/jacal:	jacal.info
	-rm -rf infotemp
	mkdir infotemp
	mkdir infotemp/jacal
	ln jacal.info jacal.info-* infotemp/jacal

distinfo:	$(dest)jacal.info.tar.gz
$(dest)jacal.info.tar.gz:	infotemp/jacal
	$(makedev) TEMP=infotemp/ DEST=$(dest) PROD=jacal ver=.info tar.gz
	rm -rf infotemp

dist:	$(dest)jacal$(VERSION).tar.gz
$(dest)jacal$(VERSION).tar.gz:	temp/jacal
	$(makedev) DEST=$(dest) PROD=jacal ver=$(VERSION) tar.gz
shar:	jacal.shar
jacal.shar:	temp/jacal
	$(makedev) PROD=jacal shar
dclshar:	jacal.com
com:	jacal.com
jacal.com:	temp/jacal
	$(makedev) PROD=jacal com
zip:	jacal.zip
jacal.zip:	temp/jacal
	$(makedev) PROD=jacal zip
distzip:	jacal$(VERSION).zip
jacal$(VERSION).zip:	temp/jacal
	$(makedev) DEST=$(dest) PROD=jacal ver=$(VERSION) zip
	mv $(dest)jacal$(VERSION).zip /d/scm/dist/
pubzip:	temp/jacal
	$(makedev) DEST=$(HOME)/pub/ PROD=jacal zip

diffs:	pubdiffs
pubdiffs:	temp/jacal
	$(makedev) DEST=$(HOME)/pub/ PROD=jacal pubdiffs
distdiffs:	temp/jacal
	$(makedev) DEST=$(dest) PROD=jacal ver=$(ver) distdiffs

new:
	chpat jacal$(VERSION) jacal$(ver) ANNOUNCE ../scm/ANNOUNCE \
		/d/scm/dist/install.bat /d/scm/dist/makefile
	chpat $(VERSION) $(ver) README jacal.texi toploads.scm Makefile

tags:	$(sfiles) $(cfiles) $(gfiles) jacal.texi
	etags $(cfiles) $(sfiles) $(gfiles) jacal.texi

clean:
	-rm -f *~ *.bak *.orig *.rej core a.out *.o \#*
	-rm -rf *temp
distclean:	realclean
realclean:
	-rm -f *~ *.bak *.orig *.rej TAGS core a.out *.o \#*
	-rm -f jacal.info* jacal.?? jacal.???
	-rm -rf *temp
realempty:	temp/jacal
	-rm -f $(allfiles)
	cd DOC; rm -f $(dfiles)
