oskit/oskit-20020317/doc/GNUmakerules

210 lines
6.3 KiB
Plaintext
Executable File

#
# Copyright (c) 1997-2001 University of Utah and the Flux Group.
# All rights reserved.
#
# This file is part of the Flux OSKit. The OSKit is free software, also known
# as "open source;" you can redistribute it and/or modify it under the terms
# of the GNU General Public License (GPL), version 2, as published by the Free
# Software Foundation (FSF). To explore alternate licensing terms, contact
# the University of Utah at csl-dist@cs.utah.edu or +1-801-585-3271.
#
# The OSKit is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GPL for more details. You should have
# received a copy of the GPL along with the OSKit; see the file COPYING. If
# not, write to the FSF, 59 Temple Place #330, Boston, MA 02111-1307, USA.
#
### XXX --- Building sys.bib (Utah only)
###
### We want to use the Flux sys.bib file but we don't want to
### distribute it. Rather than just editing sys.bib by hand,
### we generate it automatically using aux2bib which extracts
### just the bits we need out of the Flux sys.bib into a local
### copy of sys.bib. The command to do this is in yoru build tree:
###
### BIBINPUTS=/n/fast/usr/lsrc/flux/doc: \
### BSTINPUTS=/home/reid/local/bibtools: \
### /home/reid/local/bin/aux2bib -c oskit.aux
###
### and then copy it into your source tree:
###
### cp references.bib ../../oskit/doc/sys.bib
###
### XXX --- Notable notes about the WWW version:
###
### + `make oskit-www.html' builds the WWW version of the document. This is
### *not* done by `make all'.
###
### + To install the WWW version somewhere, do: cp *.html *.css *.gif dest-dir
###
# Tell LaTeX to look in the source directory for input files.
TEXINPUTS = .:$(OSKIT_SRCDIR)/doc::
export TEXINPUTS
# Tell LaTeX to look in the source directory for a `texmf.cnf'.
TEXMFCNF = $(OSKIT_SRCDIR)/doc::
export TEXMFCNF
# Tell BibTeX to look in the source directory for a `sys.bib'.
BIBINPUTS=$(OSKIT_SRCDIR)/doc:
export BIBINPUTS
# Tell `tex4ht' to look in the source directory for a `tex4ht.env'.
TEX4HTENV=$(OSKIT_SRCDIR)/doc/tex4ht.env
export TEX4HTENV
vpath %.fig $(OSKIT_SRCDIR)/doc
vpath %.tex $(OSKIT_SRCDIR)/doc
# The set of document ``root files''.
ROOT_TEXFILES = oskit.tex oskit-www.tex
# TEXFILES: the set of non-root LaTeX files.
TEXFILES := $(wildcard $(OSKIT_SRCDIR)/doc/*.tex)
TEXFILES := $(filter-out $(ROOT_TEXFILES),$(TEXFILES))
FIGFILES := $(wildcard $(OSKIT_SRCDIR)/doc/*.fig)
EPSFILES := $(patsubst $(OSKIT_SRCDIR)/doc/%.fig,%.eps,$(FIGFILES))
.SUFFIXES: .fig .eps
# all: oskit.ps oskit-www.html
all: oskit.ps
install: all
###############################################################################
###
### Rules for the DVI/PS version of the document.
###
# Will need to iterate by hand.
oskit.dvi: oskit.ind
latex oskit || (rm -f oskit.dvi && echo Nuked oskit.dvi && false)
# these next two are because latex produces a newer .idx file
# this prevents additional `make' from always redoing everything
touch oskit.ind
touch oskit.dvi
# brute-force a fixed-point. Might need a third go.
oskit.ind: oskit.idx
makeindex oskit.idx
latex oskit.tex
bibtex oskit
makeindex oskit.idx
latex oskit.tex
oskit.idx: oskit.tex $(TEXFILES) $(EPSFILES)
latex oskit
oskit.txt: oskit.dvi
dvi2tty -w130 oskit >oskit.txt
## 'perl-reform' is the reform.pl, an example from the Perl book.
## It's in this directory now, copied from Pat's ~/bin.
txt-right: oskit.dvi
rm -f oskit.txt
dvi2tty -w132 oskit.dvi | perl -pe 's/-\s*\n$$//' | perl-reform > oskit.txt
# Generic rule to make the standalone versions of various chapters
sa-%.dvi: %.tex sa-%.tex
latex sa-$*.tex
latex sa-$*.tex
sa-%.tex: defs.tex
echo '\documentclass{article}' >$(@F)
echo '\input{conf}' >>$(@F)
echo '\input{defs}' >>$(@F)
echo '\begin{document}' >>$(@F)
echo '\maketitle' >>$(@F)
echo '\input{$*}' >>$(@F)
echo '\end{document}' >>$(@F)
# Explicit dependencies for imported PostScript figures
# Note: .dvi files, not the .ps files, depend on .eps figures since
# the latex psfig package tries to read the bounding box info from
# the .eps file
sa-dev.dvi: fdev-org.eps fdev-user-mode.eps
sa-com.dvi: com-interface.eps
sa-fs.dvi: fs-hier.eps
sa-libdev.dvi: fdev-hw-tree.eps
sa-env.dvi: pure-model.eps
sa-pd.dvi: pd-bw.eps
# So can force iteration to a fixed point.
dvi redo retex: FRC
makeindex oskit.idx
latex oskit
###############################################################################
###
### Rules for the WWW version of the document.
###
oskit-www.html: oskit-www.dvi
tex4ht $(basename $@)
t4ht $(basename $@)
# XXX --- The `fgrep' trick doesn't really work. TeX4ht doesn't always say
# ``rerun'' when a second run is required to get its files in order.
#
oskit-www.dvi: oskit-www.tex $(TEXFILES) $(EPSFILES)
latex $<
bibtex $(basename $@)
# Instead of:
# makeindex $(basename $@)
# TeX4ht tells one to do the next two commands:
tex '\def\filename{{$(basename $@)}{ind}{idx}{in}{out}} \input idxmake.4ht'
makeindex -o $(@:.dvi=.out) $(@:.dvi=.in)
# Note that the above `makeindex' doesn't produce a working index. We could
# skip the above run, *except* that we need to run `latex' twice after making
# any index, so that the index will appear in the TOC. So either we run
# `makeindex' early, or we run `latex' twice after the *next* invocation of
# `makeindex'. `makeindex' is faster than `latex'.
latex $<
tex '\def\filename{{$(basename $@)}{ind}{idx}{in}{out}} \input idxmake.4ht'
makeindex -o $(@:.dvi=.out) $(@:.dvi=.in)
latex $<
#oskit-www.dvi: oskit-www.tex $(TEXFILES) $(EPSFILES)
# latex $<
# if fgrep -q -i -e 'rerun to get' $(@:.dvi=.log) ; then \
# makeindex $(basename $<) ; \
# latex $< ; \
# fi; true
# if fgrep -q -i -e 'rerun to get' $(@:.dvi=.log) ; then \
# makeindex $(basename $<) ; \
# latex $< ; \
# fi; true
###############################################################################
%.eps: %.fig
fig2dev -L ps $? $@
%.ps: %.dvi
dvips -Z $(basename $<) -o $@
%.2up.ps: %.ps
-psnup -n 2 -r $< > $@
###############################################################################
dist: oskit.ps oskit.2up.ps oskit.txt distclean
clean: FRC
rm -f \
*.ps *.dvi *.aux *.idx *.ind *.ilg *.log *.toc *.txt *.eps \
*.bbl *.blg sa-* \
*.css *.html *.gif *.4ct *.4tc *.idv *.in *.lg *.out *.tmp \
*.xref
distclean: FRC
rm -f oskit.log oskit.ilg
depend:
FRC: