1 #################################################################
2 # Makefile for Samba Documentation
4 # James Moore <jmoore@php.net>
5 # Gerald Carter <jerry@samba.org>
6 # Jelmer Vernooij <jelmer@samba.org>
7 include Makefile.settings
10 MAIN_DOCS
= $(patsubst %/index.xml
,%,$(wildcard */index.xml
))
11 MANPAGES3
= $(wildcard $(MANPAGEDIR3
)/*.?.xml
)
12 export TEXINPUTS
=xslt
/latex
:.
:
14 # Lists of files to process
15 LATEX_FIGURES
= xslt
/figures
/caution.pdf xslt
/figures
/important.pdf xslt
/figures
/note.pdf xslt
/figures
/tip.pdf xslt
/figures
/warning.pdf
16 MANPAGES_PLUCKER
= $(patsubst $(MANPAGEDIR3
)/%.xml
,$(PLUCKERDIR
)/%.pdb
,$(MANPAGES3
))
18 DATETIME
:= $(shell date
+%Y
%m
%d
%H
%M
%S
)
21 XSLTPROC
+= --profile
--load-trace
--timing
25 Makefile.settings
: configure
26 @echo Makefile.settings not present
, trying to run configure...
29 configure
: configure.ac
30 @echo configure not present
, trying to regenerate it...
35 @echo
"Supported make targets:"
36 @echo
" release - Build the docs needed for a Samba release"
37 @echo
" all - Build all docs that can be build using the utilities found by configure"
38 @echo
" everything - Build all of the above"
39 @echo
" pdf,tex,dvi,ps,manpages3,txt,pearson,fo,htmlhelp - Build specific output format"
40 @echo
" html - Build multi-file HTML versions"
41 @echo
" html-single - Build single-file HTML versions"
42 @echo
" htmlman3 - Build HTML version of manpages"
43 @echo
" undocumented - Output list of undocumented smb.conf options"
44 @echo
" samples - Extract examples"
46 $(DOCBOOKDIR
)/Samba3-ByExample.xml
: $(filter-out Samba3-ByExample
/index.xml
,$(wildcard Samba3-ByExample
/*.xml
))
47 $(DOCBOOKDIR
)/Samba3-HOWTO.xml
: $(filter-out Samba3-HOWTO
/index.xml
,$(wildcard Samba3-HOWTO
/*.xml
)) Samba3-HOWTO-attributions.xml
48 Samba3-HOWTO
/manpages.xml
: $(MANPAGEDIR3
)/smb.conf
.5.xml
49 $(DOCBOOKDIR
)/Samba3-Developers-Guide.xml
: $(filter-out Samba3-Developers-Guide
/index.xml
,$(wildcard Samba3-Developers-Guide
/*.xml
)) Samba3-Developers-Guide-attributions.xml
50 $(DOCBOOKDIR
)/Samba4-HOWTO.xml
: $(filter-out Samba4-HOWTO
/index.xml
,$(wildcard Samba4-HOWTO
/*.xml
)) Samba4-HOWTO-attributions.xml
54 everything
: manpages3 pdf html-single html htmlman3 txt ps fo htmlhelp pearson
55 release
: manpages3 htmlman3 html pdf
57 @echo
"Cleaning up..."
58 rm -rf
$(OUTPUTDIR
)/* $(DOCBOOKDIR
)
59 rm -f
$(patsubst %.dia
,%.png
,$(foreach DOC
,$(MAIN_DOCS
),$($(DOC
)-images-latex-dia
))) \
60 $(patsubst %.dia
,%.pdf
,$(foreach DOC
,$(MAIN_DOCS
),$($(DOC
)-images-latex-dia
))) \
61 $(patsubst %.dia
,%.eps
,$(foreach DOC
,$(MAIN_DOCS
),$($(DOC
)-images-latex-dia
)))
62 rm -f
*.xml
*.d
*.tpt
*.
tex *.loc
*.toc
*.lof
*.glo
*.idx
*.aux
64 rm -f
*-images-latex-
* latexfigures
65 rm -f xslt
/figures
/*pdf
66 rm -f
$(SMBDOTCONFDOC
)/parameters.
*.xml
67 rm -f
$(addsuffix .
*,$(MAIN_DOCS
))
69 # Output format targets
70 pdf
: $(patsubst %,$(PDFDIR
)/%.pdf
,$(MAIN_DOCS
))
71 dvi: $(patsubst %,$(DVIDIR
)/%.
dvi,$(MAIN_DOCS
))
72 ps
: $(patsubst %,$(PSDIR
)/%.ps
,$(MAIN_DOCS
))
73 txt
: $(patsubst %,$(TXTDIR
)/%.txt
,$(MAIN_DOCS
))
74 txt-chunks
: $(addsuffix -txt-chunks
,$(MAIN_DOCS
))
75 fo
: $(patsubst %,$(FODIR
)/%.fo
,$(MAIN_DOCS
))
76 fo-pdf
: $(patsubst %,$(FOPDFDIR
)/%.pdf
,$(MAIN_DOCS
))
77 tex: $(addsuffix .
tex,$(MAIN_DOCS
))
78 texi
: $(patsubst %,$(TEXINFODIR
)/%.texi
,$(MAIN_DOCS
))
79 texiinfo
: $(patsubst %,$(TEXINFODIR
)/%.
info,$(MAIN_DOCS
))
80 manpages3
: $(patsubst $(MANPAGEDIR3
)/%.xml
,$(OUTPUTDIR
)/manpages-3
/%,$(MANPAGES3
))
81 pearson
: $(PEARSONDIR
)/Samba3-HOWTO.xml
82 pearson-verify
: $(PEARSONDIR
)/Samba3-HOWTO.report.html
83 plucker
: $(patsubst %,$(PLUCKERDIR
)/%.pdb
,$(MAIN_DOCS
))
84 htmlman3
: $(patsubst $(MANPAGEDIR3
)/%.xml
,$(HTMLDIR
)/manpages-3
/%.html
,$(MANPAGES3
)) $(HTMLDIR
)/manpages-3
/index.html
85 html-single
: $(patsubst %,$(HTMLDIR
)/%.html
,$(MAIN_DOCS
))
86 html
: $(patsubst %,$(HTMLDIR
)/%/index.html
,$(MAIN_DOCS
)) $(HTMLDIR
)/index.html
87 htmlhelp
: $(addprefix $(HTMLHELPDIR
)/,$(MAIN_DOCS
))
88 validate
: $(addsuffix -validate
,$(MAIN_DOCS
))
90 # Intermediate docbook docs
92 $(DOCBOOKDIR
)/%.xml
: %/index.xml xslt
/expand-sambadoc.xsl
93 @echo
"Converting Samba-specific tags for $*..."
95 $(XSLTPROC
) --stringparam latex.imagebasedir
"$*/" --stringparam noreference
1 --xinclude
--output
$@ xslt
/expand-sambadoc.xsl
$<
97 $(DOCBOOKDIR
)/manpages-3
/%.xml
: $(MANPAGEDIR3
)/%.xml xslt
/expand-sambadoc.xsl
99 $(XSLTPROC
) --xinclude
--stringparam noreference
1 --output
$@ xslt
/expand-sambadoc.xsl
$<
101 $(DOCBOOKDIR
)/manpages-3
/index.xml
: $(MANPAGES3
) xslt
/manpage-summary.xsl
103 echo
"<article><variablelist>" > $@
104 $(XSLTPROC
) xslt
/manpage-summary.xsl
$(MANPAGES3
) >> $@
105 @echo
"</variablelist></article>" >> $@
109 $(HTMLDIR
)/index.html
: htmldocs.html
113 $(HTMLDIR
)/%/index.html
: $(DOCBOOKDIR
)/%.xml
$(HTMLDIR
)/%/samba.css xslt
/html-chunk.xsl
%-images-html-chunks
115 $(XSLTPROC
) --stringparam base.
dir "$(HTMLDIR)/$*/" xslt
/html-chunk.xsl
$<
117 # Single large HTML files
118 $(OUTPUTDIR
)/%/samba.css
: xslt
/html
/samba.css
122 $(patsubst %,$(HTMLDIR
)/%.html
,$(MAIN_DOCS
)): $(HTMLDIR
)/%.html
: %-images-html-single
124 $(HTMLDIR
)/%.html
: $(DOCBOOKDIR
)/%.xml
$(HTMLDIR
)/samba.css xslt
/html.xsl
125 $(XSLTPROC
) --output
$@ xslt
/html.xsl
$<
129 @echo
"Generating attributions file $@ from $*/"
130 @cp
-f templates
/attributions.xml
$@
131 $(XSLTPROC
) --xinclude
-o
$@ xslt
/generate-attributions.xsl
$*/index.xml
134 $(TXTDIR
)/%.txt
: $(HTMLDIR
)/%.html
136 $(HTML2TEXT
) -nobs
-style pretty
-o
$@
$<
139 %.
tex: %/index.xml xslt
/latex.xsl
140 @echo
"Generating $@..."
142 $(XSLTPROC
) $(DB2LATEX_ARGS
) --stringparam latex.imagebasedir
"$*/" --xinclude
--output
$@ xslt
/latex.xsl
$<
144 latexfigures
: $(LATEX_FIGURES
)
146 $(PDFDIR
)/%.pdf
: %.pdf
150 %.idx
: %.
tex latexfigures
157 %.d
: $(DOCBOOKDIR
)/%.xml xslt
/generate-dependencies.xsl
158 @echo
"Generating dependency file for $*"
161 --stringparam txtbasedir
"$(TXTDIR)/$*/" \
162 --stringparam target
"$*" \
163 -o
$@ xslt
/generate-dependencies.xsl
$<
164 @echo
"$*-images-latex-dia = \$$(wildcard \$$(addsuffix .dia, \$$($*-images-latex)))" >> $@
165 @echo
"$*-images-latex-eps: \$$(addsuffix .eps, \$$($*-images-latex))" >> $@
166 @echo
"$*-images-latex-pdf: \$$(patsubst %.dia, %.pdf, \$$($*-images-latex-dia))" >> $@
167 @echo
"$*-images-latex-png: \$$(filter-out \$$(patsubst %.dia,%.png,\$$($*-images-latex-dia)), \$$(addsuffix .png, \$$($*-images-latex)))" >> $@
170 @echo
"\$$(HTMLDIR)/%: $*/%" >> $@
171 @echo
" @mkdir -p \$$(@D)" >> $@
172 @echo
" @cp \$$< \$$@" >> $@
174 @echo
"\$$(HTMLDIR)/$*/%: $*/%" >> $@
175 @echo
" @mkdir -p \$$(@D)" >> $@
176 @echo
" @cp \$$< \$$@" >> $@
178 @echo
"\$$(HTMLHELPDIR)/$*/%: $*/%" >> $@
179 @echo
" @mkdir -p \$$(@D)" >> $@
180 @echo
" @cp \$$< \$$@" >> $@
182 @echo
"$*-images-html-single: \$$(addprefix \$$(HTMLDIR)/, \$$($*-images-html))" >> $@
183 @echo
"$*-images-html-chunks: \$$(addprefix \$$(HTMLDIR)/$*/, \$$($*-images-html))" >> $@
184 @echo
"$*-images-htmlhelp: \$$(addprefix \$$(HTMLHELPDIR)/$*/, \$$($*-images-html))" >> $@
187 ifneq ($(MAKECMDGOALS
),clobber)
188 -include $(addsuffix .d
,$(MAIN_DOCS
))
193 %.pdf
: %.
tex %.ind latexfigures
%-images-latex-png
%-images-latex-pdf
195 $(THUMBPDF
) --quiet
$*.pdf
199 $(DVIDIR
)/%.
dvi: %.
dvi
203 %.
dvi: %.
tex %.idx
%-images-latex-eps
207 $(DIA
) -t eps-builtin
-e
$@
$<
216 $(PNGTOPNM
) $< |
$(PNMTOPS
) > $@
219 $(PSDIR
)/%.ps
: $(DVIDIR
)/%.
dvi
224 $(FODIR
)/%.fo
: $(DOCBOOKDIR
)/%.xml
226 $(XSLTPROC
) --output
$@ xslt
/fo.xsl
$<
229 $(FOPDFDIR
)/%.pdf
: $(FODIR
)/%.fo
231 JAVA_OPTS
=-Xmx250m
$(FOP
) -q
-d
$< -pdf
$@
233 $(HTMLHELPDIR
)/%: $(DOCBOOKDIR
)/%.xml
%-images-htmlhelp
234 $(XSLTPROC
) --stringparam htmlhelp.chm
$*.chm \
235 --stringparam manifest.in.base.
dir "$@/" \
236 --stringparam base.
dir "$@/" \
237 http
://docbook.sourceforge.net
/release
/xsl
/current
/htmlhelp
/htmlhelp.xsl
$<
240 $(PLUCKERDIR
)/%.pdb
: $(HTMLDIR
)/%.html
242 $(PLUCKERBUILD
) -v
-V
2 --stayonhost
--zlib-compression
-f
$* -p
$(PLUCKERDIR
) file
:$<
245 $(TEXINFODIR
)/%.texi
: $(DOCBOOKDIR
)/%.xml
247 cd
$(@D
) && $(DB2TEXI
) $(shell pwd
)/$<
249 $(TEXINFODIR
)/%.
info: $(TEXINFODIR
)/%.texi
250 $(MAKEINFO
) --no-validate
--force -o
$@
"$<"
253 $(MANPAGEDIR3
)/smb.conf
.5.xml
: $(SMBDOTCONFDOC
)/parameters.
all.xml
$(SMBDOTCONFDOC
)/parameters.service.xml
$(SMBDOTCONFDOC
)/parameters.global.xml
255 $(SMBDOTCONFDOC
)/parameters.
all.xml
: $(wildcard $(SMBDOTCONFDOC
)/*/*.xml
) $(SMBDOTCONFDOC
)/generate-file-list.sh
256 $(SMBDOTCONFDOC
)/generate-file-list.sh
$(SMBDOTCONFDOC
) > $@
258 $(SMBDOTCONFDOC
)/parameters.global.xml
: $(SMBDOTCONFDOC
)/parameters.
all.xml
$(SMBDOTCONFDOC
)/generate-context.xsl
259 @echo
"Generating list of global smb.conf options"
260 $(XSLTPROC
) --xinclude
--param smb.context
"'G'" --output
$(SMBDOTCONFDOC
)/parameters.global.xml
$(SMBDOTCONFDOC
)/generate-context.xsl
$<
262 $(SMBDOTCONFDOC
)/parameters.service.xml
: $(SMBDOTCONFDOC
)/parameters.
all.xml
$(SMBDOTCONFDOC
)/generate-context.xsl
263 @echo
"Generating list of share-mode smb.conf options"
264 $(XSLTPROC
) --xinclude
--param smb.context
"'S'" --output
$(SMBDOTCONFDOC
)/parameters.service.xml
$(SMBDOTCONFDOC
)/generate-context.xsl
$<
266 $(OUTPUTDIR
)/%: $(DOCBOOKDIR
)/%.xml xslt
/man.xsl
268 $(XSLTPROC
) --output
$@ xslt
/man.xsl
$<
270 # Individual smb.conf parameters
271 smb.conf-chunks
: $(patsubst $(SMBDOTCONFDOC
)/%.xml
,$(HTMLDIR
)/smb.conf
/%.html
,$(wildcard $(SMBDOTCONFDOC
)/*/*.xml
))
273 $(HTMLDIR
)/smb.conf
/%.html
: $(SMBDOTCONFDOC
)/%.xml
275 $(XSLTPROC
) --output
$@ xslt
/smb.conf-html.xsl
$<
277 # Pearson compatible XML
278 $(PEARSONDIR
)/%.xml
: %/index.xml xslt
/pearson.xsl
280 $(XSLTPROC
) --xinclude
--output
$@ xslt
/sambadoc2pearson.xsl
$<
282 $(PEARSONDIR
)/%.report.html
: $(PEARSONDIR
)/%.xml
284 -$(XMLLINT
) --valid
--noout
$< 2> $@
286 # Validation verification
287 %-validate
: %/index.xml
288 cd
$(<D
) && $(XMLLINT
) --xinclude
--noent
--postvalid
--noout
$(<F
)
290 # Find undocumented parameters
291 undocumented
: $(SMBDOTCONFDOC
)/parameters.
all.xml scripts
/find_missing_doc.pl scripts
/find_missing_manpages.pl
292 $(PERL
) scripts
/find_missing_doc.pl
$(SRCDIR
)
293 $(PERL
) scripts
/find_missing_manpages.pl
$(SRCDIR
)
295 samples
: $(DOCBOOKDIR
)/Samba3-HOWTO.xml xslt
/extract-examples.xsl scripts
/indent-smb.conf.pl
296 @mkdir
-p
$(EXAMPLESDIR
)
297 $(XSLTPROC
) --xinclude xslt
/extract-examples.xsl
$< > /dev
/null
2> examples
/README
298 for I in examples
/*.conf
; do
{ .
/scripts
/indent-smb.conf.pl
< $$I > $$I.tmp
; mv
$$I.tmp
$$I; } done
302 @mkdir
-p
$(ARCHIVEDIR
)
303 cp
$(PDFDIR
)/Samba3-HOWTO.pdf
$(ARCHIVEDIR
)/TOSHARG-
$(DATETIME
).pdf
304 cp
$(PDFDIR
)/Samba3-ByExample.pdf
$(ARCHIVEDIR
)/S3bE-
$(DATETIME
).pdf
307 xslt
/html.xsl
: xslt
/html-common.xsl
308 xslt
/html-chunk.xsl
: xslt
/html-common.xsl
310 xslt
/expand-sambadoc.xsl
:
311 xslt
/generate-attributions.xsl
:
315 distclean clobber: clean
316 rm Makefile.settings config.status config.log configure
317 rm -rf autom4te.cache
320 # Always keep intermediate files if we can
322 .PHONY
: clean clobber archive release everything
all $(TARGETS
) latexfigures