gno/doc/refs/Makefile

291 lines
7.8 KiB
Makefile

#
# This is the top level makefile for making GNO documentation. It can't
# be run under GNO itself yet, and probably never will be due to the
# dependancy on LaTeX.
#
# This file is for use with dmake.
#
# Devin Reade, 1997.
#
# $Id: Makefile,v 1.15 2012/08/25 07:22:00 gdr Exp $
#
# Set this to 'true' (without the quotes) for local links (used
# during editing).
DRAFT =
# This is the name and address that will be given as contact info
# at the bottom of each of the HTML pages. Do NOT use '<' or '>' in the
# address.
NAME = Devin Reade
ADDRESS = gdr@gno.org
# Pathnames for various programs.
DVIPS = dvips
LATEX = latex
TEX2HTML = latex2html
MAKEINDEX = makeindex
# The names of the subdirs where we will collect html generated by
# latex(1), latex2html(1), and dvips(1).
DVID = dvid
HTMLD = htmld
PSD = psd
.IF $(DRAFT) == true
# This is the root of the html tree used in the generated sources.
HTML_ROOT = file:/home/gdr/src/gno/doc/refs/$(HTMLD)/
# This is the directory where the remaining gifs may be found
GIFDIR = file:/home/gdr/graphics
.ELSE
HTML_ROOT = http://www.gno.org/gno/
GIFDIR = http://www.gno.org/icons
.END
FTP_ROOT = ftp://ftp.gno.org/pub/apple2/gs.specific/gno
# Where can the FAQ be located?
FAQ = http://www.gno.org/~gno/FAQ.html
FAQLOG = http://www.gno.org/~gno/FAQ-log.html
FAQ_TEXT = $(FTP_ROOT)/doc/faq/CURRENT
FAQLOG_TEXT = $(FTP_ROOT)/doc/faq/LOG
FTP_INTRO = $(FTP_ROOT)/doc/refs/intro
FTP_KERN = $(FTP_ROOT)/doc/refs/kern
FTP_GSH = $(FTP_ROOT)/doc/refs/gsh
# Where can the old v2.0.4 docs be found?
OLD_HTML = http://www.gno.org/~gno/docs.Aug96
#########################################################
# You should not have to modify anything below this line.
#########################################################
# Format of the comment block for each html page.
CONTACT1 = '$(NAME)\
<A HREF="mailto:$(ADDRESS)" TITLE="GNO Documentation Feedback">\
&lt;$(ADDRESS)&gt;</A><br>Last Updated: '
CONTACT2 = '<br>Document Version: '
# Some more programs and flags
GETDATE = ./getdate -date
GETVERS = ./getdate -version
DVIPS_FLAGS =
LATEX_FLAGS =
TEX2HTML_FLAGS = -info "" -local_icons -dir $(HTMLD) -up_url refs.html \
-up_title "GNO Reference Manuals"
DVI = intro.dvi kern.dvi
PS_LTR = intro.ltr.ps kern.ltr.ps gsh-ltr-ps
PS_A4 = intro.a4.ps kern.a4.ps
HTML = $(HTMLD)/intro.html $(HTMLD)/kern.html gsh-h
.PRECIOUS: $(DVI)
MANORG = ../../usr.man
MANHTML = $(HTMLD)/man
MKSO = $(MANORG)/mkso.data
# Scratch files to clean up
MANUAL_GARBAGE =
TEX_GARBAGE = *.err *.aux *.log *.dvi *.toc *.idx *.ilg *.ind
DVIPS_GARBAGE = *.ps *.djc
BIB_GARBAGE = *.blg *.bbl
UPLOADDIR = uploads
UPLOADS = \
$(UPLOADDIR)/intro.dvi.Z \
$(UPLOADDIR)/intro.ltr.ps.Z \
$(UPLOADDIR)/intro.a4.ps.Z \
$(UPLOADDIR)/kern.dvi.Z \
$(UPLOADDIR)/kern.ltr.ps.Z \
$(UPLOADDIR)/kern.a4.ps.Z \
$(UPLOADDIR)/gsh.ltr.ps.Z \
$(UPLOADDIR)/htmld.tar.gz
#
# targets
#
upload: all setup $(UPLOADS)
all: dvi ps h man notes
dvi: $(DVI)
ps: ps_ltr ps_a4
ps_ltr: $(PS_LTR)
ps_a4: $(PS_A4)
h: $(HTML) \
$(HTMLD)/index.html \
$(HTMLD)/faqindex.html \
$(HTMLD)/refs.html \
$(HTMLD)/manindex.html \
$(HTMLD)/related.html \
$(HTMLD)/oldrefs.html \
$(HTMLD)/bugs.html \
$(HTMLD)/unaval.html cleanhtml
bib: intro.bbl
intro.bbl: gno.bib
bibtex intro
# keeps intro.tex in sync with ../../verbatim/boot/README.install
notes:; ./mknotes
$(UPLOADDIR)/htmld.tar.gz: h
rm -rf $(HTMLD)/gsh
(cd gsh; tar -cf - gsh) | (cd $(HTMLD); tar -xpBf -)
tar -cf - $(HTMLD) | gzip --best > $@
$(UPLOADDIR)/intro.dvi.Z: intro.dvi; compress -c $< > $@
$(UPLOADDIR)/intro.ltr.ps.Z: intro.ltr.ps; compress -c $< > $@
$(UPLOADDIR)/intro.a4.ps.Z: intro.a4.ps; compress -c $< > $@
$(UPLOADDIR)/kern.dvi.Z: kern.dvi; compress -c $< > $@
$(UPLOADDIR)/kern.ltr.ps.Z: kern.ltr.ps; compress -c $< > $@
$(UPLOADDIR)/kern.a4.ps.Z: kern.a4.ps; compress -c $< > $@
$(UPLOADDIR)/gsh.ltr.ps.Z: gsh/gsh.ltr.ps.Z; cp $< $@
$(UPLOADDIR)/gsh/gsh.ltr.ps.Z: gsh-ltr-ps
gsh-h:; cd gsh; $(MAKE) h
gsh-ltr-ps:; cd gsh; $(MAKE) ps
# gsh.dvi.Z: gsh.dvi; compress -c $< > $@
# gsh.ltr.ps.Z: gsh.ltr.ps; compress -c $< > $@
# gsh.a4.ps.Z: gsh.a4.ps; compress -c $< > $@
REPLACE= perl -p -e 's,%%HTML_ROOT%%,$(HTML_ROOT),g;' \
-e 's,%%FTP_ROOT%%,$(FTP_ROOT),g;' \
-e 's,%%FTP_INTRO%%,$(FTP_INTRO),g;' \
-e 's,%%FTP_KERN%%,$(FTP_KERN),g;' \
-e 's,%%FTP_GSH%%,$(FTP_GSH),g;' \
-e 's,%%FAQ%%,$(FAQ),g;' \
-e 's,%%FAQLOG%%,$(FAQLOG),g;' \
-e 's,%%FAQ_TEXT%%,$(FAQ_TEXT),g;' \
-e 's,%%FAQLOG_TEXT%%,$(FAQLOG_TEXT),g;' \
-e 's,%%OLD_HTML%%,$(OLD_HTML),g;' \
-e 's,%%GIFDIR%%,$(GIFDIR),g;'
$(HTMLD)/index.html: index.html tail.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat index.html tail.html | $(REPLACE) > $@
$(HTMLD)/faqindex.html: faqindex.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat head.html $< tail.html | $(REPLACE) \
-e 's,%%TITLE%%,GNO Frequently Asked Questions (Index),;' > $@
$(HTMLD)/faqindex.html: head.html tail.html
$(HTMLD)/refs.html: refs.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat head.html $< tail.html | $(REPLACE) \
-e 's,%%TITLE%%,GNO Reference Manuals,;' > $@
$(HTMLD)/refs.html: head.html tail.html
$(HTMLD)/manindex.html: manindex.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat head.html $< tail.html | $(REPLACE) \
-e 's,%%TITLE%%,GNO Manual Pages Index,;' > $@
$(HTMLD)/manindex.html: head.html tail.html
$(HTMLD)/related.html: related.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat head.html $< tail.html | $(REPLACE) \
-e 's,%%TITLE%%,GNO-Related Web Pages,;' > $@
$(HTMLD)/related.html: head.html tail.html
$(HTMLD)/bugs.html: bugs.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat head.html $< tail.html | $(REPLACE) \
-e 's,%%TITLE%%,GNO Bug Reports,;' > $@
$(HTMLD)/bugs.html: head.html tail.html
$(HTMLD)/oldrefs.html: oldrefs.html
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
cat head.html $< tail.html | $(REPLACE) \
-e 's,%%TITLE%%,Old GNO Documentation,;' > $@
$(HTMLD)/oldrefs.html: head.html tail.html
$(HTMLD)/unaval.html: head.html unaval.html tail.html
@echo "making $@"; \
cat head.html unaval.html tail.html | $(REPLACE) \
-e 's,%%TITLE%%,Unpublished Document,;' > $@
cleanhtml:
@echo "cleaning guano from html files"; \
perl -pi \
-e 's/NOWRAP//g;' \
-e '(/<!--\s*cleantable-start\s*-->/) && ($$cts=1);' \
-e '(/<!--\s*cleantable-end\s*-->/) && ($$cts=0);' \
-e '($$cts == 1) && (s/(<BR>|<HR>)//g);' \
$(HTMLD)/*.html
# -e '($$cts == 1) && (s/^\s*<BR><HR>\s*$$//);'
# This target creates the html versions of all the current man pages,
# plus the chapter index pages. Unfortunately, this target rebuilds
# _all_ of it's files, not just those that are out of date.
man: mansetup
@GNOROOT=../.. MANHTML=$(MANHTML) NAME="$(NAME)" \
ADDR="$(ADDRESS)" MKSO="$(MKSO)" HTMLROOT="$(HTML_ROOT)" \
./mkhtmlman
mansetup: newer
setup:
@/bin/true; \
[ -d $(UPLOADDIR) ] || mkdir -p $(UPLOADDIR)
clean:
-rm -rf *~ $(TEX_GARBAGE) $(BIB_GARBAGE) $(DVIPS_GARBAGE) $(UPLOADDIR)
cd gsh; $(MAKE) $@
clobber: clean
-rm -rf $(MANUAL_GARBAGE) $(HTMLD) $(PSD) $(DVID) newer
cd gsh; $(MAKE) $@
#
# default rules
#
$(HTMLD)/%.html: %.tex
@true; \
[ -d $(HTMLD) ] || mkdir $(HTMLD); \
$(TEX2HTML) \
-prefix "$*". -no_auto_link \
-address $(CONTACT1)"`$(GETDATE) <$<`"$(CONTACT2)"`$(GETVERS) <$<`" \
-up_title \
"`perl -n -e '(m,<title>(.*)</title>,) && printf("%s\n",$$1);'\
< $(HTMLD)/refs.html `" \
$(TEX2HTML_FLAGS) $<
%.ltr.ps: %.dvi
$(DVIPS) -tletter $(DVIPS_FLAGS) -o $@ $<
%.a4.ps: %.dvi
$(DVIPS) -ta4 $(DVIPS_FLAGS) -o $@ $<
%.dvi: %.tex
@for i in 1 2 3; do \
echo "****** latex pass $$i"; \
$(LATEX) $(LATEX_FLAGS) $<; \
if [ "$*" = intro ]; then \
echo "****** running bibtex"; \
bibtex $*; \
fi; \
$(MAKEINDEX) $*; \
done; \
echo "****** latex passes done"