chiark / gitweb /
Team-Maintainence documentation; #410159
[developers-reference.git] / Makefile
index d1619b6e75298b8accba04b655bbec255ccb377f..c3f5a8249dbc92b46a85aa4dfc40d532eadc3e62 100644 (file)
--- a/Makefile
+++ b/Makefile
 # Makefile, used for the DDP manuals.sgml area
 
 MANUAL         := $(notdir $(shell pwd))
-PUBLISHDIR := /org/www.debian.org/www/doc/manuals
+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 "<!entity % htmltext \"INCLUDE\">" > dynamic.ent
+nohtmllink     := echo "<!entity % htmltext \"IGNORE\">" > 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 $*.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 $*.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))"               ;\
-                  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:
@@ -99,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
@@ -112,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: