# -*- Mode: makefile; -*- # arch-tag: Primary sgml-common top-level Makefile # Common Makefile for SGML documents # # Copyright (C) 2002, 2003 John Goerzen # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # The following variables should be set: # MASTERBASE -- basename of master file -- example: my-guide # BASICDEPS -- various dependencies of the master file. For instance, # this might include files included in the SGML. It could also be empty. # TOPNODE -- Basename of top id for HTML link. MASTER := $(MASTERBASE).sgml FIGUREDIRS := $(wildcard figures/*) DOINDEX ?= yes ###################################################################### # Index generation ###################################################################### ifeq ($(DOINDEX), yes) INDEXSGMLFILE := index/index.sgml INDEXDATAFILE := index/HTML.index $(INDEXSGMLFILE): $(INDEXDATAFILE) @echo " *** Generating SGML index from index list" collateindex.pl -i ch.index -g -o index/index.sgml index/HTML.index $(INDEXDATAFILE): $(MASTER) $(BASICDEPS) # jade -t sgml -d docbook.dsl -V html-index $(MASTER) # jade -t sgml -V html-index $(MASTER) @echo " *** Generating index list from document" -rm -r index mkdir index collateindex.pl -i ch.index -N -o index/index.sgml #mkdir html-temp #docbook2html --output html-temp -V html-index $(MASTER) docbook-2-html -O -V -O html-index $(HTMLARGS) $(MASTER) mv $(MASTERBASE)-html/HTML.index index/ rm -r $(MASTERBASE)-html endif # DOINDEX ###################################################################### # Text generation ###################################################################### $(MASTERBASE).txt: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE) @echo " *** Generating text output" docbook2txt $(MASTER) ###################################################################### # PostScript generation ###################################################################### $(MASTERBASE).ps: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE) $(EPSFILES) @echo " *** Generating PostScript output" # This works too: docbook2ps -V paper-size=Letter $(MASTER) docbook-2-ps -q -O -V -O paper-size=Letter $(PSARGS) $(MASTER) ###################################################################### # Figure generation ###################################################################### %_1.epi: %.ps $(get-epi) %_2.epi: %.ps $(get-epi) %_3.epi: %.ps $(get-epi) %_4.epi: %.ps $(get-epi) %_5.epi: %.ps $(get-epi) %_6.epi: %.ps $(get-epi) %_7.epi: %.ps $(get-epi) %_8.epi: %.ps $(get-epi) %_9.epi: %.ps $(get-epi) %_10.epi: %.ps $(get-epi) %_11.epi: %.ps $(get-epi) %_12.epi: %.ps $(get-epi) %_1_l.epi: %.ps $(get-epil) %_2_l.epi: %.ps $(get-epil) %_3_l.epi: %.ps $(get-epil) %_4_l.epi: %.ps $(get-epil) %_5_l.epi: %.ps $(get-epil) %_6_l.epi: %.ps $(get-epil) %_7_l.epi: %.ps $(get-epil) %_8_l.epi: %.ps $(get-epil) %_9_l.epi: %.ps $(get-epil) %_10_l.epi: %.ps $(get-epil) %_11_l.epi: %.ps $(get-epil) %_12_l.epi: %.ps $(get-epil) %.png: %_l.epi @echo " *** Generating PNG image for $<" gs -q -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r90 -dBATCH -dNOPAUSE \ -dSAFER -sOutputFile=$@ -sDEVICE=png16m $< -c showpage %.ps: %.pdf pdftops $< ###################################################################### # HTML generation ###################################################################### define copy-figures-worker mkdir html/figures for DIRECTORY in $(FIGUREDIRS); do mkdir html/$$DIRECTORY; cp -v $$DIRECTORY/*.png html/$$DIRECTORY/; done endef define copy-figures $(if $(FIGUREDIRS),$(copy-figures-worker)) endef html/index.html: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE) $(PNGFILES) @echo " *** Generating HTML output" -rm -r html mkdir html #docbook2html --output html $(MASTER) docbook-2-html $(HTMLARGS) $(MASTER) mv $(MASTERBASE)-html/* html/ rmdir $(MASTERBASE)-html $(copy-figures) # tidy -m html/*.html ln -s $(TOPNODE).html html/index.html -cp -v /usr/share/gtk-doc/data/*.png html/ ###################################################################### # Cleaning ###################################################################### clean: -rm -f `find . -name "*~"` `find . -name "*.png"` `find . -name "*.epi"` -rm -r html-temp html index $(MASTERBASE).txt -rm *.aux *.log *.dvi *.tex *.jtex *.ps *.html *.log *.out jadetex.cfg -rm *.ps html/*.html figures/topology/*.epi figures/topology/*.png -rm *.log *.pdb -rm `find . -name ".ps"` `find . -name "*.epi"` *.pdf -rm `find . -name "*.png"` ###################################################################### # Utility functions ###################################################################### GETPAGE=$(shell echo $(1) | sed -e "s/^.*_\([0-9]*\).epi/\\1/g") define get-epi @echo " *** Generating EPI image for $<" psselect -q $(call GETPAGE,$@) $< temp.ps psresize -w 6.375in -h 8.25in temp.ps temp2.ps ../sgml-common/ps2epsi temp2.ps $@ rm temp.ps temp2.ps endef GETPAGEL=$(shell echo $(1) | sed -e "s/^.*_\([0-9]*\)_l.epi/\\1/g") define get-epil @echo " *** Generating large EPI image for $<" psselect -q $(call GETPAGEL,$@) $< temp.ps psresize -w 8.5in -h 11in temp.ps temp2.ps ../sgml-common/ps2epsi temp2.ps $@ rm temp.ps temp2.ps endef pdf: $(MASTERBASE).pdf $(MASTERBASE).pdf: $(MASTERBASE).ps ps2pdf14 $(MASTERBASE).ps plucker: $(MASTERBASE).pdb $(MASTERBASE).pdb: html plucker-build --bpp=4 --compression=zlib --doc-name="$(MASTERBASE)" \ -H file:`pwd`/html/index.html -M 5 \ --maxheight=320 --maxwidth=310 \ --staybelow=file:`pwd`/html --title="$(MASTERBASE)" -p . \ -f $(MASTERBASE) ########################################################################### # These are obsolete but should still work. ########################################################################### $(MASTERBASE).dvi: $(MASTERBASE).tex @echo " *** Generating DVI file." jadetex unix-guide.tex jadetex unix-guide.tex jadetex unix-guide.tex $(MASTERBASE).tex: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE) @echo " *** Generating TeX files." docbook2tex -V paper-size=Letter $(MASTER) # jade -t tex -V tex-backend -d \ # /usr/share/sgml/docbook/stylesheet/dsssl/modular/print/docbook.dsl \ # $(MASTER)