diff options
Diffstat (limited to 'web/latexspider/webmakefile')
-rw-r--r-- | web/latexspider/webmakefile | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/web/latexspider/webmakefile b/web/latexspider/webmakefile new file mode 100644 index 0000000000..42070774db --- /dev/null +++ b/web/latexspider/webmakefile @@ -0,0 +1,172 @@ +# Copyright 1989 by Norman Ramsey, Odyssey Research Associates +# To be used for research purposes only +# For more information, see file COPYRIGHT in the parent directory +# Modified by Dave Love, Daresbury Lab (d.love@daresbury.ac.uk) for local +# setup and to incorporate change files, particularly for LaTeX mods. +# To make LaTeX versions of weave, set WEAVECHANGEFILE=$(MASTER)/weave.ltx +# and include -DLaTeX in CFLAGS. To get a version of spider.awk usable for +# LaTeX or plain, define SPIDERCHANGEFILE=$(MASTER)/spider.ltx and define +# LaTeX=1 so that spider.awk generates LaTeX-compatible webs. I'm sure all +# this could be tidied up. + +#HOME=/home/users0/fx# # Make no longer inherits environment vars +# (it does inherit env vars on my system!) +THETANGLE=tangle +THEWEAVE=weave +SPIDER=any.spider +WEAVECHANGEFILE= +TANGLECHANGEFILE= +SPIDERCHANGEFILE= + +# +DVI=dvi +CFLAGS=-DDEBUG -DSTAT + +# CPUTYPE is a grim hack that attempts to solve the problem of multiple +# cpus sharing a file system. In my environment I have to have different +# copies of object and executable for vax, sun3, next, iris, and other +# cpu types. If you will be using Spidery WEB in a homogenous processor +# environment, you can just set CPUTYPE to a constant, or eliminate it +# entirely. +# +# In my environment, the 'cputype' program returns a string that +# describes the current processor. That means that the easiest thing +# for you to do is to define a 'cputype' program that does something +# sensible. A shell script that says 'echo "vax"' is fine. + +#CPUTYPE=`cputype` +CPUTYPE=`arch` + +# Change the following three directories to match your installation +# +# the odd placement of # is to prevent any trailing spaces from slipping in + +WEBROOT=$(HOME)/ltxspiderweb# # root of the WEB source distribution +DEST=$(HOME)/bin# # place where the executables go +MACROS=$(HOME)/tex/inputs# # place where the macros go + +MASTER=$(WEBROOT)/master# # master source directory +OBDIR=$(MASTER)/$(CPUTYPE)# # common object files + +TANGLESRC=tangle +CTANGLE=ceetangle -I$(MASTER) +CWEAVE=ceeweave -I$(MASTER) +AWKTANGLE=awktangle -I$(MASTER) +COMMONOBJS=$(OBDIR)/common.o $(OBDIR)/pathopen.o +COMMONC=$(MASTER)/common.c $(MASTER)/pathopen.c +COMMONSRC=$(COMMONC) $(MASTER)/spider.awk + + + +# Our purpose is to make tangle and weave + +web: tangle weave + +tangle: $(COMMONOBJS) $(TANGLESRC).o + cc $(CFLAGS) -o $(DEST)/$(THETANGLE) $(COMMONOBJS) $(TANGLESRC).o + +weave: $(COMMONOBJS) weave.o + cc $(CFLAGS) -o $(DEST)/$(THEWEAVE) $(COMMONOBJS) weave.o + + +source: $(TANGLESRC).c $(COMMONSRC) # make tangle.c and common src, then clean + if [ -f WebMakefile ]; then exit 1; fi # don't clean the master! + if [ -f spiderman.tex ]; then exit 1; fi # don't clean the manual + -rm -f tangle.web weave.* common.* # remove links that may be obsolete + -rm -f *.unsorted *.list grammar.web outtoks.web scraps.web + -rm -f cycle.test spider.slog + -rm -f *.o *.tex *.toc *.dvi *.log *.makelog *~ *.wlog *.printlog + +# Here is how we make the common stuff + +$(MASTER)/common.c: $(MASTER)/common.web $(MASTER)/common.ch + $(CTANGLE) $(MASTER)/common $(MASTER)/common + +$(OBDIR)/common.o: $(MASTER)/common.c + cc $(CFLAGS) -c $(MASTER)/common.c + mv common.o $(OBDIR) + + +$(MASTER)/pathopen.c: $(MASTER)/pathopen.web $(MASTER)/pathopen.ch + $(CTANGLE) $(MASTER)/pathopen $(MASTER)/pathopen + mv pathopen.h $(MASTER) + +$(OBDIR)/pathopen.o: $(MASTER)/pathopen.c + cc $(CFLAGS) -c $(MASTER)/pathopen.c + mv pathopen.o $(OBDIR) + + +## Now we make the tangle and weave source locally + +$(TANGLESRC).c: $(MASTER)/$(TANGLESRC).web $(MASTER)/common.h grammar.web \ + $(TANGLECHANGEFILE) + -/bin/rm -f $(TANGLESRC).web + ln $(MASTER)/$(TANGLESRC).web $(TANGLESRC).web +# chmod -w $(TANGLESRC).web + $(CTANGLE) $(TANGLESRC) $(TANGLECHANGEFILE) + +weave.c: $(MASTER)/weave.web $(MASTER)/common.h grammar.web $(WEAVECHANGEFILE) + -/bin/rm -f weave.web + ln $(MASTER)/weave.web weave.web +# chmod -w weave.web + $(CTANGLE) weave $(WEAVECHANGEFILE) + +## Here's where we run SPIDER to create the source + +grammar.web: $(MASTER)/cycle.awk $(MASTER)/spider.awk $(SPIDER) + echo "date" `date` | cat - $(SPIDER) | awk -f $(MASTER)/spider.awk \ + LaTeX=$(LaTeX) - + cat $(MASTER)/transcheck.list trans_keys.unsorted | awk -f \ + $(MASTER)/transcheck.awk + awk -f $(MASTER)/cycle.awk < cycle.test + sort *.unsorted | awk -f $(MASTER)/nodups.awk + mv *web.tex $(MACROS) + +## We might have to make spider first. + +$(MASTER)/spider.awk: $(MASTER)/spider.web $(SPIDERCHANGEFILE) + $(AWKTANGLE) $(MASTER)/spider $(SPIDERCHANGEFILE) + mv cycle.awk nodups.awk transcheck.awk $(MASTER) + rm junk.list + +# $(MASTER)/cycle.awk: $(MASTER)/cycle.web # making spider also makes cycle +# $(AWKTANGLE) $(MASTER)/cycle + +# Weaving: + +weave.tex: $(MASTER)/weave.web grammar.web $(WEAVECHANGEFILE) + ceeweave -I$(MASTER) $(MASTER)/weave.web $(WEAVECHANGEFILE) + mv $(MASTER)/weave.tex . + +tangle.tex: $(MASTER)/tangle.web $(TANGLECHANGEFILE) + ceeweave -I$(MASTER) $(MASTER)/tangle.web $(TANGLECHANGEFILE) + mv $(MASTER)/tangle.tex . + +spider.tex: $(MASTER)/spider.web $(SPIDERCHANGEFILE) + awkweave -I$(MASTER) $(MASTER)/spider.web $(SPIDERCHANGEFILE) + mv $(MASTER)/spider.tex . + +# This cleanup applies to every language + +clean: + if [ -f WebMakefile ]; then exit 1; fi # don't clean the master! + if [ -f spiderman.tex ]; then exit 1; fi # don't clean the manual + -rm -f tangle.web weave.web common.* # remove links that may be obsolete + -rm -f *.unsorted *.list grammar.web outtoks.web scraps.web + -rm -f cycle.test spider.slog +# vital bootstrap files are kept as SAVE..., hence only remove .c files whose +# names start with lower case + -rm -f [a-z]*.c *.o *.tex *.toc *.dvi *.log *.makelog *~ *.wlog *.printlog + + + +# booting the new distribution +boot: + cd ../master; rm -f *.o; for i in $(COMMONC); do \ + cc $(CFLAGS) -c $$i; \ + mv *.o $(OBDIR) ; \ + done; cd ../c + cc $(CFLAGS) -c $(TANGLESRC).c; \ + cc $(CFLAGS) -o $(DEST)/$(THETANGLE) $(COMMONOBJS) $(TANGLESRC).o + + |