# $Id: Imakefile,v 1.29 1992/04/19 08:19:11 queinnec Exp $
# The Imakefile of LiSP2TeX (can also serve as a direct Makefile)

# By default, regenerate everything and install the result.
work : install

# An useful rule to convert a bk file into a TeX file. You can insert it
# in your makefiles (or Imakefiles).
LiSP2TeXFLAGS	= -vU -I${DOCDIR} 
.SUFFIXES: .tex .bk
.bk.tex : ;	LiSP2TeX ${LiSP2TeXFLAGS} -- $*.bk > $*.tex

############### Public Install procedure ######################################
### You must probably be root to make this installation
MANEXTENSION	= 1
MANDIR		= /usr/man/man${MANEXTENSION}
BINDIR		= /usr/local/bin
DOCDIR		= /usr/local/lib/LiSP2TeX
STYDIR		= /usr/local/lib/tex/inputs
INSTALL		= install -c
install : LiSP2TeX LiSP2TeX.1 LiSP2TeX.sty LiSP2TeX.bk LiSP2TeX.dvi README
	@echo
	@echo 'This may fail if you are not root !'
	@echo
	${INSTALL} -s LiSP2TeX  ${BINDIR}
	${INSTALL} LiSP2TeX.1   ${MANDIR}/LiSP2TeX.${MANEXTENSION}
	${INSTALL} LiSP2TeX.sty ${STYDIR}
	-mkdir ${DOCDIR}
	${INSTALL} LiSP2TeX.bk  ${DOCDIR}
	${INSTALL} LiSP2TeX.dvi ${DOCDIR}
	${INSTALL} README       ${DOCDIR}
	for f in *.mkgreek ; do ${INSTALL} $$f ${DOCDIR} ; done

################ End of public entries ########################################

### PORT Note: If you have Scheme->C just use this
FINDER		= find-string.scm
### Otherwise use the already expanded version of the previous file:
### This is provided since macros are not standard enough.
#FINDER 	= look.scm

### PORT Note: All dependencies are gathered in a single file: port-s2c.scm
PORT 	= port-s2c.scm
### The distributed version uses Scheme->C from Joel Bartlett.
### Adjust these paths if your Scheme->C is not there:
SCC  		= /usr/local/bin/scc -schf 14
SCI  		= /usr/local/bin/sci
S2CDIR 		= /usr/local/schemetoc

### The sources:
LiSPsources =  ${PORT} util.scm read-objects.scm read.scm \
	    scan-objects.scm scan-file.scm emit.scm pp.scm \
	    commands.scm ${FINDER} version.scm

### The documentation:
LiSPdocs    = LiSP2TeX.sty LiSP2TeX.bk \
	    LiSP2TeX.tex LiSP2TeX.bbl LiSP2TeX.dvi \
	    LiSP2TeX.1 reading.test README

### The files to include in the distribution:
LiSPallFiles =  Imakefile Makefile ${LiSPsources} look.scm ${LiSPdocs}

############### This generation is adapted to Scheme->C
LiSP2TeX.sc : ${LiSPsources} 
	( echo '(module lisp2tex (main unix-main))'	; \
	  cat ${LiSPsources} )				> LiSP2TeX.sc

# Takes 62 seconds on a News3200 (20MHz r3000 MIPS)
look.scm LiSP2TeX : ${LiSPsources} LiSP2TeX.sc 
	${SCC} -o LiSP2TeX LiSP2TeX.sc

############### Obtaining the documentation
LiSP2TeX.bk : version.scm
LiSP2TeX.tex : LiSP2TeX.bk 
	LiSP2TeX ${LiSP2TeXFLAGS} default.mkgreek -- LiSP2TeX.bk > LiSP2TeX.tex
LiSP2TeX.dvi : LiSP2TeX.tex  LiSP2TeX.sty 
	latex LiSP2TeX.tex
	bibtex LiSP2TeX
	latex LiSP2TeX.tex
	latex LiSP2TeX.tex
LiSP2TeX.spell : LiSP2TeX.tex
	delatex LiSP2TeX.tex | ispell -l | sort -u >LiSP2TeX.spell

############### Print the readable files
PRINT 		= print
PRDVI 		= prdvi
print : print.sources print.man print.dvi
print.sources : 
	${PRINT} ${LiSPsources}
print.dvi : LiSP2TeX.dvi
	${PRDVI} LiSP2TeX.dvi
print.man :
	man LiSP2TeX | ${PRINT}

############### These entries are for my personal usage.
mywork : 
	make TAGS
	-rm LiSP2TeX.tex LiSP2TeX*.tar.Z 
	make LiSP2TeX LiSP2TeX.tex
	latex LiSP2TeX.tex
	bibtex LiSP2TeX
	latex LiSP2TeX.tex
	make private-install
	make distribution
	make install

############### Tags
TAGS-MAKER      = etags -t
TAGS : ${LiSPsources}
	${TAGS-MAKER} ${LiSPsources}

############### private install
private-install : ${HOME}/bin/${HOSTTYPE}/LiSP2TeX ${HOME}/TeX/LiSP2TeX.sty 
${HOME}/bin/${HOSTTYPE}/LiSP2TeX : LiSP2TeX
	${INSTALL} -s LiSP2TeX ${HOME}/bin/${HOSTTYPE}/LiSP2TeX
${HOME}/TeX/LiSP2TeX.sty : LiSP2TeX.sty
	${INSTALL} LiSP2TeX.sty ${HOME}/TeX/LiSP2TeX.sty

############### Test with interpreter
syntax : LiSP2TeX.sc 
	( echo '(load "LiSP2TeX.sc")(test-read "reading.test")' ) | ${SCI}
interp : LiSP2TeX.sc 
	@echo 'Type under sci: (begin (load "LiSP2TeX.sc")(unix-main))' 
	${SCI}

############### Check-in a new version
VERSIONNAME 	= `date +LiSP2TeX%y%h%d`
STATENAME   	= beta
version.scm : ${LiSPsources}
	ident -q `(cd RCS ; ls -A) | sed -e "s=,v\\$$=="` 		    |\
	 awk '/Id:/ {s += $$3} END {printf("(define version \"%g\")\n",s)}'  \
	  > version.scm
new-version :
	@echo Archive version ${VERSIONNAME} in state ${STATENAME} ; sleep 4 
	co -l `cd RCS ; ls -A`
	ci -u -f -s${STATENAME} -N${VERSIONNAME} `cd RCS ; ls -A`

############### Making Distribution
LiSP2TeX.tar : ${LiSPallFiles}
	-mkdir LiSP2TeX-dir
	cp -p ${LiSPallFiles} LiSP2TeX-dir
	tar -cvf LiSP2TeX.tar LiSP2TeX-dir
	rm -rf LiSP2TeX-dir
LiSP2TeX.tar.Z : LiSP2TeX.tar
	compress -f LiSP2TeX.tar
distribution :
	chmod u+w Makefile ; make LiSP2TeX.tar.Z
	mv LiSP2TeX.tar.Z `date +LiSP2TeX%y%h%d.tar.Z`

############### Clean 
clean :: cleanMakefile
	-rm Makefile TAGS 
	-rm core *.BAK *~ .*.BAK .*~
	-rm *.log *.aux *.lof *.lot *.toc
	-rm *.blg 
	-rm *.idx *.ilg *.ind
	-rm *.spell *.epelle
	-rm LiSP2TeX.sc LiSP2TeX.c LiSP2TeX.o 
	-rm LiSP2TeX.tar 
	-rm SC-TO-C* 
	-rm -rf LiSP2TeX-dir
clean.all : clean
	-rm LiSP2TeX LiSP2TeX.dvi LiSP2TeX*.tar.Z LiSP2TeX.tex 
	-rm look.scm version.scm
	-rm ${HOME}/bin/${HOSTTYPE}/LiSP2TeX 
