X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=developers-reference.git;a=blobdiff_plain;f=Makefile;h=ca40661e7bbcdbaa2838aff94089f76833804561;hp=703959de9d408af6483c945591e93c670cc0abab;hb=00a11ce4441243d9e587e42123f49af55867b740;hpb=7374662ca80fb179fec9aa1a1026994a6b2eb1de diff --git a/Makefile b/Makefile index 703959d..ca40661 100644 --- a/Makefile +++ b/Makefile @@ -3,31 +3,42 @@ MANUAL := $(notdir $(shell pwd)) PUBLISHDIR := ../../../public_html/manuals.html +SOURCES := $(wildcard *.sgml) + TARGETS := $(foreach fmt,html txt pdf,developers-reference.$(fmt)) \ - $(foreach langext,.ja .fr, \ - $(foreach fmt,html txt pdf,developers-reference$(langext).$(fmt))) + $(filter-out developers-reference.ja.pdf, \ + $(foreach langext,.ja .fr, \ + $(foreach fmt,html txt pdf,developers-reference$(langext).$(fmt)))) # programs for creating output -DEBIANDOC2HTML := debiandoc2html -d debiandoc.decl -c -DEBIANDOC2TEXT := debiandoc2text -d debiandoc.decl -DEBIANDOC2LATEX := debiandoc2latex -d debiandoc.decl +DEBIANDOC2HTML := debiandoc2html -c +DEBIANDOC2TEXT := debiandoc2text +DEBIANDOC2LATEX := debiandoc2latex + +make_directory := install -d -m 755 +install_file := install -m 644 -p MAX_TEX_RECURSION := 5 .PHONY: all all: $(TARGETS) +.PHONY: validate +validate: $(addsuffix .validate,$(SOURCES)) + +# hmmm, this rule may need to be revised/tested publish: all [ -d $(PUBLISHDIR) ] || exit 1 rm -f $(PUBLISHDIR)/$(MANUAL)/*.html - install -d -m 755 $(PUBLISHDIR)/$(MANUAL) - install -m 644 --preserve-timestamps $(MANUAL).html/*.html \ + $(make_directory) $(PUBLISHDIR)/$(MANUAL) + $(install_file) developers-reference*.html/*.html \ $(PUBLISHDIR)/$(MANUAL) - developers-reference.html: developers-reference.sgml $(DEBIANDOC2HTML) -l C $< +developers-reference.html/*: developers-reference.html + developers-reference.%.html: developers-reference.%.sgml $(DEBIANDOC2HTML) -l $* $< @@ -46,14 +57,14 @@ developers-reference.%.tex: developers-reference.%.sgml %.pdf: %.tex # note that I have seen bi-stable .aux files, thus we check two levels deep -cp -pf prior.aux pprior.aux 2>/dev/null - -cp -pf $(basename $<).aux prior.aux 2>/dev/null + -cp -pf $*.aux prior.aux 2>/dev/null # fail if we don't have pdflatex correctly installed kpsewhich pdflatex.fmt >/dev/null # due to a bug in debiandoc2latex2e output, this might fail -pdflatex '\nonstopmode\input{$<}' >/dev/null # see $(@:.pdf=.log) for details @set -e ;\ - if ! cmp $(basename $<).aux prior.aux 2>/dev/null && \ - ! cmp $(basename $<).aux pprior.aux 2>/dev/null; then \ + if ! cmp $*.aux prior.aux 2>/dev/null && \ + ! cmp $*.aux pprior.aux 2>/dev/null; then \ if expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION) >/dev/null;\ then \ echo "remaking $@ (take $(MAKELEVEL))" ;\ @@ -65,10 +76,20 @@ developers-reference.%.tex: developers-reference.%.sgml fi rm -f prior.aux pprior.aux +version.ent: debian/changelog + ./debian/rules $@ +%.validate : % + nsgmls -wall -gues $< + touch $@ -version.ent: - ./debian/rules $@ +USERMAP := ../../ddp/CVSROOT/users +.PHONY: prepare +prepare: + @[ -f CVS/Root -a -f $(USERMAP) ] || \ + ( echo "silly rabbit, prepare is for Adam" 1>&2; exit 1 ) + cvs2cl -r --usermap $(USERMAP) + cvs ci -m "update for next release" ChangeLog .PHONY: clean clean: @@ -78,8 +99,16 @@ clean: developers-reference*.sasp* developers-reference*.tex \ developers-reference*.aux developers-reference*.toc \ developers-reference*.idx developers-reference*.log \ - developers-reference*.out + developers-reference*.out developers-reference*.dvi rm -f version.ent - rm -f `find . -name "*~"` + rm -f `find . -name "*~" -o -name "*.bak"` + rm -f *.validate + rm -f *~ *.bak .#* core + +.PHONY: distclean +distclean: clean + rm -f *.rej *.orig + +developers-reference$(SRCEXT).sgml: version.ent common.ent -developers-reference$(SRCEXT).sgml: version.ent common.ent \ No newline at end of file +html: $(MANUAL).html