fixing release target --jerry
[Samba/bjacke.git] / docs / Makefile.in
blobf041a8c2495f975b5bf23d9f7b040bb9f8201cdc
1 #################################################################
2 # Makefile.in for Samba Documentation
3 # Authors:
4 # James Moore <jmoore@php.net>
5 # Gerald Carter <jerry@samba.org>
6 # Jelmer Vernooij <jelmer@samba.org>
8 # Programs
9 WGET = @WGET@
10 XSLTPROC = @XSLTPROC@
11 XMLLINT = @XMLLINT@
12 DVIPS = @DVIPS@
13 PNGTOPNM = @PNGTOPNM@
14 EPSTOPNM = @EPSTOPNM@
15 PNMTOPNG = @PNMTOPNG@
16 PNMTOPS = @PNMTOPS@
17 HTML2TEXT = @HTML2TEXT@
18 PLUCKERBUILD = @PLUCKERBUILD@
19 THUMBPDF = @THUMBPDF@
20 PDFLATEX = TEXINPUTS=xslt/latex:.: @PDFLATEX@ --file-line-error-style
21 LATEX = TEXINPUTS=xslt/latex:.: @LATEX@ --file-line-error-style
22 RM = @RM@
23 ifndef DEBUG_LATEX
24 PDFLATEX += --interaction nonstopmode
25 LATEX += --interaction nonstopmode
26 endif
28 # Paths
29 OUTPUTDIR = output
30 ARCHIVEDIR = $(OUTPUTDIR)/archive
31 SRCDIR = @SAMBASOURCEDIR@
32 MANDIR = $(OUTPUTDIR)/manpages
33 EPSTOPDF = @EPSTOPDF@
34 MANPAGEDIR = manpages
35 MAKEINDEX = @MAKEINDEX@
36 EXAMPLESDIR = examples
37 SMBDOTCONFDOC = smbdotconf
38 DOCBOOKDIR = tmp
39 PSDIR = $(OUTPUTDIR)
40 PDFDIR = $(OUTPUTDIR)
41 DVIDIR = $(OUTPUTDIR)
42 FODIR = $(OUTPUTDIR)
43 HTMLHELPDIR = $(OUTPUTDIR)/htmlhelp
44 VALIDATEDIR = $(OUTPUTDIR)/validate
45 PEARSONDIR = $(OUTPUTDIR)/pearson
46 TXTDIR = $(OUTPUTDIR)/textdocs
47 HTMLDIR=$(OUTPUTDIR)/htmldocs
48 PLUCKERDIR=$(OUTPUTDIR)/plucker
50 # Docs to build
51 MAIN_DOCS = $(patsubst %/index.xml,$(DOCBOOKDIR)/%.xml,$(wildcard */index.xml))
52 MANPAGES = $(wildcard $(MANPAGEDIR)/*.?.xml)
54 # Lists of files to process
55 LATEX_FIGURES = xslt/figures/caution.pdf xslt/figures/important.pdf xslt/figures/note.pdf xslt/figures/tip.pdf xslt/figures/warning.pdf
56 MANPAGES_PLUCKER = $(patsubst $(MANPAGEDIR)/%.xml,$(PLUCKERDIR)/%.pdb,$(MANPAGES_SOURCES))
58 Samba_HOWTO_Collection_IMAGES_PNG = $(wildcard Samba-HOWTO-Collection/imagefiles/*.png)
59 Samba_Guide_IMAGES_PNG = $(wildcard Samba-Guide/images/*.png)
61 Samba_HOWTO_Collection_IMAGEDIR = Samba-HOWTO-Collection/imagefiles
62 Samba_Guide_IMAGEDIR = Samba-Guide/images
64 Samba_HOWTO_Collection_IMAGES_EPS = $(patsubst %.png,%.eps,$(Samba_HOWTO_Collection_IMAGES_PNG))
65 Samba_Guide_IMAGES_EPS = $(patsubst %.png,%.eps,$(Samba_Guide_IMAGES_PNG))
67 help:
68 @echo "Supported make targets:"
69 @echo " release - Build the docs needed for a Samba release"
70 @echo " all - Build all docs that can be build using the utilities found by configure"
71 @echo " everything - Build all of the above"
72 @echo " pdf,tex,dvi,ps,manpages,txt,pearson,fo,htmlhelp - Build specific output format"
73 @echo " html - Build multi-file HTML version of HOWTO Collection, Guide and Dev-Guide"
74 @echo " html-single - Build single-file HTML version of HOWTO Collection, Guide and Dev-Guide"
75 @echo " htmlman - Build HTML version of manpages"
76 @echo " undocumented - Output list of undocumented smb.conf options"
77 @echo " samples - Extract examples"
78 @echo " files - Extract other files"
80 Samba-Guide/index.xml: $(subst Samba-Guide/index.xml,,$(wildcard Samba-Guide/*.xml))
81 Samba-HOWTO-Collection/index.xml: $(subst Samba-HOWTO-Collection/index.xml,,$(wildcard Samba-HOWTO-Collection/*.xml)) Samba-HOWTO-Collection-attributions.xml
82 Samba-Developers-Guide/index.xml: $(subst Samba-Developers-Guide/index.xml,,$(wildcard Samba-Developers-Guide/*.xml)) Samba-Developers-Guide-attributions.xml
84 # Pseudo targets
85 all: @TARGETS@
86 everything: manpages pdf html-single html htmlman txt ps fo htmlhelp pearson verify
87 release: manpages htmlman html pdf
89 # Output format targets
90 pdf: $(patsubst $(DOCBOOKDIR)/%.xml,$(PDFDIR)/%.pdf,$(MAIN_DOCS))
91 dvi: $(patsubst $(DOCBOOKDIR)/%.xml,$(DVIDIR)/%.dvi,$(MAIN_DOCS))
92 ps: $(patsubst $(DOCBOOKDIR)/%.xml,$(PSDIR)/%.ps,$(MAIN_DOCS))
93 txt: $(patsubst $(DOCBOOKDIR)/%.xml,$(TXTDIR)/%.txt,$(MAIN_DOCS))
94 fo: $(patsubst $(DOCBOOKDIR)/%.xml,$(FODIR)/%.fo,$(MAIN_DOCS))
95 tex: $(patsubst $(DOCBOOKDIR)/%.xml,%.tex,$(MAIN_DOCS))
96 manpages: $(patsubst $(MANPAGEDIR)/%.xml,$(MANDIR)/%,$(MANPAGES))
97 pearson: $(PEARSONDIR)/Samba-HOWTO-Collection.xml
98 pearson-verify: $(PEARSONDIR)/Samba-HOWTO-Collection.report.html
99 plucker: $(patsubst $(DOCBOOKDIR)/%.xml,$(PLUCKERDIR)/%.pdb,$(MAIN_DOCS))
100 htmlman: $(patsubst $(MANPAGEDIR)/%.xml,$(HTMLDIR)/%.html,$(MANPAGES)) $(HTMLDIR)/manpages.html
101 html-single: $(patsubst $(DOCBOOKDIR)/%.xml,$(HTMLDIR)/%.html,$(MAIN_DOCS))
102 html: $(patsubst $(DOCBOOKDIR)/%.xml,$(HTMLDIR)/%/index.html,$(MAIN_DOCS)) $(HTMLDIR)/index.html
103 htmlhelp: $(patsubst $(DOCBOOKDIR)/%.xml,$(HTMLHELPDIR)/%,$(MAIN_DOCS))
105 # Intermediate docbook docs
107 $(DOCBOOKDIR)/%.xml: %/index.xml xslt/expand-sambadoc.xsl
108 mkdir -p $(@D)
109 $(XSLTPROC) --stringparam noreference 1 --stringparam imagedir "$($(subst -,_,$*)_IMAGEDIR)/" --xinclude --output $@ xslt/expand-sambadoc.xsl $<
111 $(DOCBOOKDIR)/%.xml: $(MANPAGEDIR)/%.xml xslt/expand-sambadoc.xsl
112 mkdir -p $(@D)
113 $(XSLTPROC) --stringparam noreference 1 --output $@ xslt/expand-sambadoc.xsl $<
115 $(DOCBOOKDIR)/manpages.xml: $(MANPAGES_SOURCES) xslt/manpage-summary.xsl
116 mkdir -p $(@D)
117 echo "<article><variablelist>" > $@
118 for I in $(MANPAGES_SOURCES); do $(XSLTPROC) xslt/manpage-summary.xsl $$I >> $@; done
119 echo "</variablelist></article>" >> $@
121 # HTML docs
123 $(HTMLDIR)/index.html: htmldocs.html
124 mkdir -p $(@D)
125 cp $< $@
127 $(HTMLDIR)/%/index.html: $(DOCBOOKDIR)/%.xml $(HTMLDIR)/%/samba.css xslt/html-chunk.xsl
128 mkdir -p $(@D)
129 $(XSLTPROC) --stringparam base.dir "$(HTMLDIR)/$*/" xslt/html-chunk.xsl $<
130 -mkdir $(HTMLDIR)/$*/images
132 # Single large HTML files
133 $(OUTPUTDIR)/%/samba.css: xslt/html/samba.css
134 mkdir -p $(@D)
135 cp $< $@
137 $(HTMLDIR)/%.html: $(DOCBOOKDIR)/%.xml $(HTMLDIR)/samba.css $(patsubst %.png,$(HTMLDIR)/images/%.png,$(%_IMAGES_PNG)) xslt/html.xsl
138 mkdir -p $(@D)
139 $(XSLTPROC) --output $@ xslt/html.xsl $<
141 %-attributions.xml:
142 echo "<para/>" > $@
143 $(XSLTPROC) --xinclude xslt/generate-attributions.xsl $*/index.xml > $@
145 clean:
146 rm -rf $(OUTPUTDIR)/* $(DOCBOOKDIR)
147 rm -f *.xml
148 rm -f xslt/figures/*pdf
149 rm -f $(SMBDOTCONFDOC)/parameters.*.xml
150 rm -f $(patsubst $(DOCBOOKDIR)/%.xml,%.*,$(MAIN_DOCS))
152 # Text files
153 $(TXTDIR)/%.txt: $(HTMLDIR)/%.html
154 mkdir -p $(@D)
155 $(HTML2TEXT) -nobs -style pretty -o $@ $<
157 # Tex files
158 %.tex: $(DOCBOOKDIR)/%.xml xslt/latex.xsl
159 mkdir -p $(@D)
160 $(XSLTPROC) --output $@ xslt/latex.xsl $<
162 gpl.tex:
163 $(WGET) http://www.gnu.org/licenses/gpl.tex
165 latexfigures: $(LATEX_FIGURES)
167 $(PDFDIR)/%.pdf: %.pdf
168 mkdir -p $(@D)
169 cp $< $@
171 # Adobe PDF files
172 %.pdf: %.tex latexfigures gpl.tex $(%_IMAGES_PNG)
173 -$(PDFLATEX) $<
174 -$(PDFLATEX) $<
175 $(MAKEINDEX) $*
176 $(THUMBPDF) $*.pdf
177 -$(PDFLATEX) $<
179 # DVI files
180 $(DVIDIR)/%.dvi: %.dvi
181 mkdir -p $(@D)
182 cp $< $@
184 %.dvi: %.tex %.idx gpl.tex $(%_IMAGES_EPS)
185 -$(LATEX) $<
186 -$(LATEX) $<
187 $(MAKEINDEX) $*
188 -$(LATEX) $<
190 %.eps: %.png
191 $(PNGTOPNM) $< | $(PNMTOPS) > $@
193 # PostScript files
194 $(PSDIR)/%.ps: $(DVIDIR)/%.dvi
195 mkdir -p $(@D)
196 $(DVIPS) -o $@ $<
198 xslt/figures/%.pdf: xslt/figures/%.eps
199 $(EPSTOPDF) $<
201 # Fo
202 $(FODIR)/%.fo: $(DOCBOOKDIR)/%.xml
203 mkdir -p $(@D)
204 $(XSLTPROC) --output $@ http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl $<
206 # HTML Help
207 $(HTMLHELPDIR)/%/images/%.png: $(%_IMAGEDIR)/%.png
208 mkdir -p $(@D)
209 cp $< $@
211 $(HTMLHELPDIR)/%: $(DOCBOOKDIR)/%.xml #$(patsubst $(%_IMAGEDIR)/%.png,$(HTMLHELPDIR)/%/images/%.png,$(%_IMAGEDIR)/*.png)
212 -mkdir $@
213 $(XSLTPROC) --stringparam htmlhelp.chm $*.chm --stringparam manifest.in.base.dir "$@/" --stringparam base.dir "$@/" http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl $<
215 # Plucker docs
216 $(PLUCKERDIR)/%.pdb: $(HTMLDIR)/%.html $(PLUCKERDIR)
217 mkdir -p $(@D)
218 $(PLUCKERBUILD) -v -M1 --stayonhost --noimages --zlib-compression -H file:$< -f $* -p $(PLUCKERDIR)
220 # Manpages
221 $(MANPAGEDIR)/smb.conf.5.xml: $(SMBDOTCONFDOC)/parameters.all.xml $(SMBDOTCONFDOC)/parameters.service.xml $(SMBDOTCONFDOC)/parameters.global.xml
223 $(SMBDOTCONFDOC)/parameters.all.xml: $(shell find $(SMBDOTCONFDOC) -type f -name '*.xml' -mindepth 2 | sort -t/ -k3 | xargs) $(SMBDOTCONFDOC)/generate-file-list.sh
224 $(SMBDOTCONFDOC)/generate-file-list.sh $(SMBDOTCONFDOC) > $@
226 $(SMBDOTCONFDOC)/parameters.global.xml: $(SMBDOTCONFDOC)/parameters.all.xml $(SMBDOTCONFDOC)/generate-context.xsl
227 $(XSLTPROC) --xinclude --param smb.context "'G'" --output $(SMBDOTCONFDOC)/parameters.global.xml $(SMBDOTCONFDOC)/generate-context.xsl $<
229 $(SMBDOTCONFDOC)/parameters.service.xml: $(SMBDOTCONFDOC)/parameters.all.xml $(SMBDOTCONFDOC)/generate-context.xsl
230 $(XSLTPROC) --xinclude --param smb.context "'S'" --output $(SMBDOTCONFDOC)/parameters.service.xml $(SMBDOTCONFDOC)/generate-context.xsl $<
232 $(MANDIR)/%: $(DOCBOOKDIR)/%.xml xslt/man.xsl
233 mkdir -p $(@D)
234 $(XSLTPROC) --output $@ xslt/man.xsl $<
236 # Pearson compatible XML
238 $(PEARSONDIR)/%.xml: $(DOCBOOKDIR)/%.xml xslt/pearson.xsl
239 mkdir -p $(@D)
240 $(XSLTPROC) --xinclude --output $@ xslt/pearson.xsl $<
242 $(PEARSONDIR)/%.report.html: $(PEARSONDIR)/%.xml
243 mkdir -p $(@D)
244 $(XMLLINT) --valid --noout --htmlout $< 2> $@
246 # Validation verification
248 $(VALIDATEDIR)/%.report.html: $(DOCBOOKDIR)/%.xml
249 mkdir -p $(@D)
250 $(XMLLINT) --valid --noout --htmlout $< 2> $@
252 verify: $(VALIDATEDIR)/Samba-HOWTO-Collection.report.html $(VALIDATEDIR)/Samba-Developers-Guide.report.html $(VALIDATEDIR)/Samba-Guide.report.html
254 # Find undocumented parameters
256 undocumented: $(SMBDOTCONFDOC)/parameters.all.xml scripts/find_missing_doc.pl scripts/find_missing_manpages.pl
257 @$(PERL) scripts/find_missing_doc.pl $(SRCDIR)
258 @$(PERL) scripts/find_missing_manpages.pl $(SRCDIR)
260 # Examples and the like
262 files: $(HOWTODIR)/index.xml xslt/extract-smbfiles.xsl
263 $(XSLTPROC) xslt/extract-smbfiles.xsl $< > /dev/null
265 samples: $(DOCBOOKDIR)/Samba-HOWTO-Collection.xml xslt/extract-examples.xsl scripts/indent-smb.conf.pl
266 mkdir -p $(EXAMPLESDIR)
267 $(XSLTPROC) --xinclude xslt/extract-examples.xsl $< > /dev/null 2> examples/README
268 for I in examples/*.conf; do { ./scripts/indent-smb.conf.pl < $$I > $$I.tmp; mv $$I.tmp $$I; } done
270 # Archiving
271 archive: guide howto
272 mkdir -p $(ARCHIVEDIR)
273 cp $(PDFDIR)/Samba-HOWTO-Collection.pdf $(ARCHIVEDIR)/TOSHARG-`date +%Y%m%d`.pdf
274 cp $(PDFDIR)/Samba-Guide.pdf $(ARCHIVEDIR)/S3bE-`date +%Y%m%d`.pdf
276 # XSL scripts
277 xslt/html.xsl: xslt/html-common.xsl settings.xsl
278 xslt/html-chunk.xsl: xslt/html-common.xsl settings.xsl
279 xslt/latex.xsl: settings.xsl
280 xslt/expand-sambadoc.xsl: settings.xsl
281 xslt/generate-attributions.xsl:
282 xslt/man.xsl:
283 xslt/pearson.xsl:
285 .SECONDARY: