chiark / gitweb /
pdf link
[developers-reference.git] / Makefile
1 # Makefile, used for the DDP manuals.sgml area
2
3 MANUAL          := $(notdir $(shell pwd))
4 PUBLISHDIR      := /org/www.debian.org/www/doc/manuals
5
6 SOURCES         := $(wildcard *.sgml)
7
8 TARGETS         := $(foreach fmt,html txt pdf,developers-reference.$(fmt)) \
9                      $(filter-out developers-reference.ja.pdf, \
10                        $(foreach langext,.fr, \
11                          $(foreach fmt,html txt,developers-reference$(langext).$(fmt))))
12
13 # programs for creating output
14 DEBIANDOC2HTML  := debiandoc2html -c
15 DEBIANDOC2TEXT  := debiandoc2text
16 DEBIANDOC2LATEX := debiandoc2latex
17 DEBIANDOC2PS    := debiandoc2latexps
18 DEBIANDOC2PDF   := debiandoc2latexpdf
19
20 # this hint is for adding a link to the pdf version
21 add_pdf_link    := patch -p0 < add_pdf_link.diff
22 remove_pdf_link := patch -p0 -R < add_pdf_link.diff
23
24 make_directory  := install -d -m 755
25 install_file    := install -m 644 -p
26
27 MAX_TEX_RECURSION := 5
28
29 .PHONY: all dropold
30 all:    $(TARGETS) dropold
31
32 dropold:
33         -rm -rf developers-reference.ja.html
34
35
36 .PHONY: validate
37 validate:       $(addsuffix .validate,$(SOURCES))
38
39 # hmmm, this rule may need to be revised/tested
40 publish:        all
41         [ -d $(PUBLISHDIR) ] || exit 1
42         rm -f $(PUBLISHDIR)/$(MANUAL)/*.html
43         $(make_directory) $(PUBLISHDIR)/$(MANUAL)
44         $(install_file) developers-reference*.html/*.html       \
45            $(PUBLISHDIR)/$(MANUAL)
46
47 developers-reference.html:      developers-reference.sgml
48         $(add_pdf_link)
49         $(DEBIANDOC2HTML) -l en $<
50         $(remove_pdf_link)
51
52 developers-reference.html/*:    developers-reference.html
53
54 developers-reference.%.html:    developers-reference.%.sgml
55         $(DEBIANDOC2HTML) -l $* $<
56
57 developers-reference.txt:       developers-reference.sgml
58         $(DEBIANDOC2TEXT) -l en -O $< > $@
59
60 developers-reference.%.txt:     developers-reference.%.sgml
61         $(DEBIANDOC2TEXT) -l $* -O $< > $@
62
63 developers-reference.tex:       developers-reference.sgml
64         $(DEBIANDOC2LATEX) -l en -O $< > $@
65
66 developers-reference.%.tex:     developers-reference.%.sgml
67         $(DEBIANDOC2LATEX) -l $* -O $< > $@
68
69 developers-reference.ps:        developers-reference.sgml
70         $(DEBIANDOC2PS) -l en $<
71
72 developers-reference.%.ps:      developers-reference.%.sgml
73         $(DEBIANDOC2PS) -l $* $<
74
75 developers-reference.pdf:       developers-reference.sgml
76         $(DEBIANDOC2PDF) -l en $<
77
78 developers-reference.%.pdf:     developers-reference.%.sgml
79         $(DEBIANDOC2PDF) -l $* $<
80
81 version.ent:    debian/changelog
82         ./debian/rules $@
83
84 %.validate : % version.ent
85         nsgmls -wall -gues $<
86         touch $@
87
88 USERMAP := ../../ddp/CVSROOT/users
89 .PHONY: prepare
90 prepare:        ChangeLog
91         cvs ci -m "update for next release" ChangeLog
92
93 .PHONY: ChangeLog
94 ChangeLog:
95         @[ -f CVS/Root -a -f $(USERMAP) ] || \
96                 ( echo "usermap file '$(USERMAP)' not found" 1>&2; exit 1 )
97         cvs2cl -r --usermap $(USERMAP)
98
99 .PHONY: clean
100 clean:
101         rm -rf developers-reference*.html
102         rm -f developers-reference*.txt developers-reference*.pdf \
103               developers-reference*.ps developers-reference*.lout* lout.li \
104               developers-reference*.sasp* developers-reference*.tex \
105               developers-reference*.aux developers-reference*.toc \
106               developers-reference*.idx developers-reference*.log \
107               developers-reference*.out developers-reference*.dvi \
108               developers-reference*.tpt
109         rm -f version.ent
110         rm -f `find . -name "*~" -o -name "*.bak"`
111         rm -f *.validate
112         rm -f *~ *.bak .#* core
113
114 .PHONY: distclean
115 distclean: clean
116         rm -f *.rej *.orig
117
118 developers-reference$(SRCEXT).sgml: version.ent common.ent
119
120 html: $(MANUAL).html
121
122 # if rule bomb out, delete the target
123 .DELETE_ON_ERROR: