X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=Makefile;h=c3f5a8249dbc92b46a85aa4dfc40d532eadc3e62;hb=5381651c352723b79a2c71528f5fd0670d826725;hp=eb377d410e894194bc9c28672b10cf6abe3e227b;hpb=de0041e1a2fd9dcf9313587acfc46a520a01f291;p=developers-reference.git diff --git a/Makefile b/Makefile index eb377d4..c3f5a82 100644 --- a/Makefile +++ b/Makefile @@ -1,93 +1,110 @@ # Makefile, used for the DDP manuals.sgml area MANUAL := $(notdir $(shell pwd)) -PUBLISHDIR := ../../../public_html/manuals.html +PUBLISHDIR := /org/www.debian.org/www/doc/manuals SOURCES := $(wildcard *.sgml) +LANGS := fr TARGETS := $(foreach fmt,html txt pdf,developers-reference.$(fmt)) \ - $(filter-out developers-reference.ja.pdf, \ - $(foreach langext,.ja .fr, \ - $(foreach fmt,html txt pdf,developers-reference$(langext).$(fmt)))) + $(foreach langext,$(LANGS), \ + $(foreach fmt,html txt pdf,developers-reference.$(langext).$(fmt))) # programs for creating output DEBIANDOC2HTML := debiandoc2html -c DEBIANDOC2TEXT := debiandoc2text DEBIANDOC2LATEX := debiandoc2latex +DEBIANDOC2PS := debiandoc2latexps +DEBIANDOC2PDF := debiandoc2latexpdf + +htmllink := echo "" > dynamic.ent +nohtmllink := echo "" > dynamic.ent make_directory := install -d -m 755 install_file := install -m 644 -p MAX_TEX_RECURSION := 5 -.PHONY: all -all: $(TARGETS) +.PHONY: all dropold +all: $(TARGETS) dropold + +dropold: + -rm -rf developers-reference.ja.html + .PHONY: validate validate: $(addsuffix .validate,$(SOURCES)) # hmmm, this rule may need to be revised/tested +.PHONY: publish publish: all [ -d $(PUBLISHDIR) ] || exit 1 rm -f $(PUBLISHDIR)/$(MANUAL)/*.html $(make_directory) $(PUBLISHDIR)/$(MANUAL) - $(install_file) developers-reference*.html/*.html \ + $(install_file) developers-reference*.html/*.html developers-reference*pdf \ $(PUBLISHDIR)/$(MANUAL) + ln -sf index.en.html $(PUBLISHDIR)/$(MANUAL)/index.html + ln -sf developers-reference.pdf $(PUBLISHDIR)/$(MANUAL)/developers-reference.en.pdf developers-reference.html: developers-reference.sgml - $(DEBIANDOC2HTML) -l C $< + $(htmllink) + $(DEBIANDOC2HTML) -l en $< + +developers-reference.html/*: developers-reference.html developers-reference.%.html: developers-reference.%.sgml + $(htmllink) $(DEBIANDOC2HTML) -l $* $< developers-reference.txt: developers-reference.sgml - $(DEBIANDOC2TEXT) -l C -O $< > $@ + $(nohtmllink) + $(DEBIANDOC2TEXT) -l en -O $< > $@ developers-reference.%.txt: developers-reference.%.sgml + $(nohtmllink) $(DEBIANDOC2TEXT) -l $* -O $< > $@ developers-reference.tex: developers-reference.sgml - $(DEBIANDOC2LATEX) -l C -O $< > $@ + $(nohtmllink) + $(DEBIANDOC2LATEX) -l en -O $< > $@ developers-reference.%.tex: developers-reference.%.sgml + $(nohtmllink) $(DEBIANDOC2LATEX) -l $* -O $< > $@ -%.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 -# 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 expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION) >/dev/null;\ - then \ - echo "remaking $@ (take $(MAKELEVEL))" ;\ - rm -f $@ ;\ - $(MAKE) $@ ;\ - else \ - echo "E: $@ needs remaking, but we have reached max. level, $(MAX_TEX_RECURSION)" ;\ - fi \ - fi - rm -f prior.aux pprior.aux +developers-reference.ps: developers-reference.sgml + $(nohtmllink) + $(DEBIANDOC2PS) -l en $< + +developers-reference.%.ps: developers-reference.%.sgml + $(nohtmllink) + $(DEBIANDOC2PS) -l $* $< + +developers-reference.pdf: developers-reference.sgml + $(nohtmllink) + $(DEBIANDOC2PDF) -l en $< + +developers-reference.%.pdf: developers-reference.%.sgml + $(nohtmllink) + $(DEBIANDOC2PDF) -l $* $< version.ent: debian/changelog ./debian/rules $@ -%.validate : % +%.validate : % version.ent nsgmls -wall -gues $< touch $@ USERMAP := ../../ddp/CVSROOT/users .PHONY: prepare -prepare: +prepare: ChangeLog + cvs ci -m "update for next release" ChangeLog + +.PHONY: ChangeLog +ChangeLog: @[ -f CVS/Root -a -f $(USERMAP) ] || \ - ( echo "silly rabbit, prepare is for Adam" 1>&2; exit 1 ) + ( echo "usermap file '$(USERMAP)' not found" 1>&2; exit 1 ) cvs2cl -r --usermap $(USERMAP) - cvs ci -m "update for next release" ChangeLog .PHONY: clean clean: @@ -97,7 +114,8 @@ clean: developers-reference*.sasp* developers-reference*.tex \ developers-reference*.aux developers-reference*.toc \ developers-reference*.idx developers-reference*.log \ - developers-reference*.out developers-reference*.dvi + developers-reference*.out developers-reference*.dvi \ + developers-reference*.tpt rm -f version.ent rm -f `find . -name "*~" -o -name "*.bak"` rm -f *.validate @@ -110,3 +128,6 @@ distclean: clean developers-reference$(SRCEXT).sgml: version.ent common.ent html: $(MANUAL).html + +# if rule bomb out, delete the target +.DELETE_ON_ERROR: