# define variables WEB, WEB_BETA, CGI_BIN, HOME_DIR, CTAN_HOME, CTAN_ROOT
include locations.mk
# list of subdocuments of gather-faqbody
include subdocuments.mk
BODY = gather-faqbody.tex filectan.tex dirctan.tex $(SUBDOCS)
MACROS = faq.cls faq.sty
CONFIGS = archive.cfg
CMFONTS = cmz
PATCH = newfaq-patch.tex add-general.tex add-hammond.tex
MAKEF = Makefile
HTML_TAR = FAQ-html.tar.gz
LATEX = latex
PDFLATEX = pdflatex
CTAN_HOME = help/uk-tex-faq
#h
#hThe main targets of this Makefile are
#h release build a distribution
#h
#h patch build latest patched version
#h
#h ctan install distribution on CTAN
#h (to be run on the CTAN machine)
#h web install files required for web access
#h (must be run on the machine that hosts
#h the CGI script)
#h web-index web access files, just (dir|file)ctan
#h web-beta as web, except beta distribution
#h
#h inst-perl install texfaq2html and sanitize.pl
#h in the cgi-bin directory
#h inst-perl-beta ditto, for texfaq2html-beta, sanitize-beta
#h inst-perl-gamma ditto, for texfaq2html-gamma
#h
#h html make html files in html/
#h html-gamma make html files in html, copy for -gamma tests
help:; @sed -n 's/^#h//p' < $(MAKEF)
release: all html-tar
all: newfaq.pdf letterfaq.pdf
# did have faqfont.cfg in here, but that caused problems, since it
# typically doesn't exist...
# pdf generation has to be done one a different base file name because
# of incompatibilities in the .aux and .toc files
newfaq.pdf: newfaq.tex $(BODY) $(MACROS) $(CONFIGS)
ln -sf newfaq.tex ./pdf-newfaq.tex
rm -f faqfont.cfg
while ( \
$(PDFLATEX) \\def\\Status{1} \\input pdf-newfaq ; \
grep "Rerun to get cross" pdf-newfaq.log > /dev/null ) do true ; \
done
thumbpdf pdf-newfaq
$(PDFLATEX) \\def\\Status{1} \\input pdf-newfaq
mv pdf-newfaq.pdf newfaq.pdf
rm pdf-newfaq.tex
letterfaq.pdf: letterfaq.tex $(BODY) $(MACROS) $(CONFIGS)
ln -sf letterfaq.tex ./pdf-letterfaq.tex
rm -f faqfont.cfg
while ( \
$(PDFLATEX) \\def\\Status{1} \\input pdf-letterfaq ; \
grep "Rerun to get cross" pdf-letterfaq.log > /dev/null ) do true ; \
done
thumbpdf pdf-letterfaq
$(PDFLATEX) \\def\\Status{1} \\input pdf-letterfaq
mv pdf-letterfaq.pdf letterfaq.pdf
rm pdf-letterfaq.tex
patch: newfaq-patch
newfaq-patch: newfaq-patch.pdf newfaq-patch.ps
patch.pdf: newfaq-patch.pdf
newfaq-patch.pdf: $(PATCH) $(BODY) $(MACROS) $(CONFIGS)
./find-add-files
ln -sf newfaq-patch.tex ./pdf-newfaq-patch.tex
rm -f faqfont.cfg
while ( \
$(PDFLATEX) \\def\\Status{1} \\input pdf-newfaq-patch ; \
grep "Rerun to get cross" pdf-newfaq-patch.log > /dev/null ) do true ; \
done
thumbpdf pdf-newfaq-patch
$(PDFLATEX) \\def\\Status{1} \\input pdf-newfaq-patch
mv pdf-newfaq-patch.pdf newfaq-patch.pdf
ln -sf newfaq-patch.pdf patch.pdf
rm pdf-newfaq-patch.tex
patch.dvi: newfaq-patch.dvi
newfaq-patch.dvi: $(PATCH) $(BODY) $(MACROS) $(CONFIGS)
./find-add-files
while ( \
$(LATEX) newfaq-patch ; \
grep "Rerun to get cross" newfaq-patch.log > /dev/null ) do true ; \
done
ln -sf newfaq-patch.dvi patch.dvi
newfaq.aux: newfaq.dvi
newfaq.dvi: newfaq.tex $(BODY) $(MACROS) $(CONFIGS)
echo $(LATEX)
while ( \
$(LATEX) newfaq ; \
grep "Rerun to get cross" newfaq.log > /dev/null ) do true ; \
done
letterfaq.dvi: letterfaq.tex $(BODY) $(MACROS) $(CONFIGS)
while ( \
$(LATEX) letterfaq ; \
grep "Rerun to get cross" letterfaq.log > /dev/null ) do true ; \
done
newfaq-cm.dvi: newfaq.tex $(BODY) $(MACROS) $(CONFIGS)
ln -sf faqfont.cfg.cmfonts faqfont.cfg
ln -sf newfaq.tex newfaq-cm.tex
while ( \
$(LATEX) newfaq-cm ; \
grep "Rerun to get cross" newfaq-cm.log > /dev/null ) do true ; \
done
rm faqfont.cfg newfaq-cm.tex
letterfaq-cm.dvi: letterfaq.tex $(BODY) $(MACROS) $(CONFIGS)
ln -sf faqfont.cfg.cmfonts faqfont.cfg
ln -sf letterfaq.tex letterfaq-cm.tex
while ( \
$(LATEX) letterfaq-cm ; \
grep "Rerun to get cross" letterfaq-cm.log > /dev/null ) do true ; \
done
rm faqfont.cfg letterfaq-cm.tex
$(HTML_TAR):
tar czvf $(HTML_TAR) html/*
ctan: $(HTML_TAR)
(cd $(CTAN_ROOT)/$(CTAN_HOME); \
really -u ctan make -f /home/rf/tex/faq/Makefile.CTAN)
# faqbody for all the webbery stuff
faqbody.tex: $(SUBDOCS) gather-faqbody.tex
./build-faqbody
web: $(WEB)/dirctan.tex $(WEB)/filectan.tex $(WEB)/faqbody.tex $(WEB)/newfaq.aux $(WEB)/archive.list
web-index: $(WEB)/dirctan.tex $(WEB)/filectan.tex
$(WEB)/dirctan.tex: dirctan.tex
$(WEB)/filectan.tex: filectan.tex
$(WEB)/faqbody.tex: faqbody.tex
$(WEB)/newfaq.aux: newfaq.aux
$(WEB)/archive.list: archive.list
$(WEB)/aliasquestion.list: aliasquestion.list
$(WEB)/label-to-file.pl: label-to-file.pl
$(WEB)/dirctan.tex $(WEB)/filectan.tex $(WEB)/faqbody.tex $(WEB)/newfaq.aux $(WEB)/archive.list $(WEB)/aliasquestion.list $(WEB)/label-to-file.pl:
if [ -f $@ ]; then \
chmod 644 $@; \
cp -p $< $@-t; \
mv $@-t $@; \
else \
cp -p $< $@; \
fi
chmod 444 $@
web-beta: $(WEB_BETA)/dirctan.tex $(WEB_BETA)/filectan.tex $(WEB_BETA)/faqbody.tex $(WEB_BETA)/newfaq.aux $(WEB_BETA)/archive.list $(WEB_BETA)/aliasquestion.list $(WEB_BETA)/label-to-file.pl
$(WEB_BETA)/dirctan.tex: dirctan.tex
$(WEB_BETA)/filectan.tex: filectan.tex
$(WEB_BETA)/faqbody.tex: faqbody.tex
$(WEB_BETA)/newfaq.aux: newfaq.aux
$(WEB_BETA)/archive.list: archive.list
$(WEB_BETA)/aliasquestion.list: aliasquestion.list
$(WEB_BETA)/label-to-file.pl: label-to-file.pl
$(WEB_BETA)/dirctan.tex $(WEB_BETA)/filectan.tex $(WEB_BETA)/faqbody.tex $(WEB_BETA)/newfaq.aux $(WEB_BETA)/archive.list $(WEB_BETA)/aliasquestion.list $(WEB_BETA)/label-to-file.pl:
if [ -f $@ ]; then \
chmod 644 $@; \
cp -p $< $@-t; \
mv $@-t $@; \
else \
cp -p $< $@; \
fi
chmod 444 $@
inst-perl: $(CGI_BIN)/texfaq2html $(CGI_BIN)/sanitize.pl
inst-perl-beta: $(CGI_BIN)/texfaq2html-beta $(CGI_BIN)/sanitize-beta.pl
inst-perl-gamma: $(CGI_BIN)/texfaq2html-gamma
$(CGI_BIN)/texfaq2html: $(HOME_DIR)/texfaq2html
$(CGI_BIN)/texfaq2html-beta: $(HOME_DIR)/texfaq2html-beta
$(CGI_BIN)/texfaq2html-gamma: $(HOME_DIR)/texfaq2html-gamma
$(CGI_BIN)/sanitize.pl: $(HOME_DIR)/sanitize.pl
$(CGI_BIN)/sanitize-beta.pl: $(HOME_DIR)/sanitize-beta.pl
$(CGI_BIN)/texfaq2html $(CGI_BIN)/texfaq2html-beta $(CGI_BIN)/texfaq2html-gamma $(CGI_BIN)/sanitize.pl $(CGI_BIN)/sanitize-beta.pl:
# co -l $@
cp -p $? $@
# ci -u -m"automatic check-in" $@
html: $(HTMLDIR)/index.html
$(HTMLDIR)/index.html: $(BODY) newfaq.aux faqbody.tex
./texfaq2file
html-tar: html
tar czf FAQ-html.tar.gz $(HTMLDIREL)/
html-gamma: $(HTMLDIR_GAMMA)/index.html
$(HTMLDIR_GAMMA)/index.html: $(BODY) newfaq.aux faqbody.tex
./texfaq2file -2 -w
cp -p $(HTMLDIR_GAMMA)/* $(GAMMADIR)/
clean:
rm -f *.pdf *.dvi *.log *.bak *.toc *.out *.lab *.tpt *.png
rm -f *.aux html/*.html html_gamma/*.html htmltext/*.txt
rm -f pdf-newfaq*.tex comment.cut additions.tex aliasquestion.list
rm -f faqbody.tex FAQ-html.tar.gz