~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Ian Clatworthy
  • Date: 2009-09-08 01:38:06 UTC
  • mto: (4634.37.2 prepare-2.0)
  • mto: This revision was merged to the branch mainline in revision 4689.
  • Revision ID: ian.clatworthy@canonical.com-20090908013806-17vdeeyklvz8rcpy
Simplify Makefile

Show diffs side-by-side

added added

removed removed

Lines of Context:
79
79
 
80
80
### Documentation ###
81
81
 
82
 
# set PRETTY to get docs that look like the Bazaar web site
83
 
ifdef PRETTY
84
 
rst2html := $(PYTHON) tools/rst2prettyhtml.py doc/bazaar-vcs.org.kid 
85
 
else
86
 
rst2html := $(PYTHON) tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning
87
 
endif
88
 
 
89
 
# translate txt docs to html
90
 
derived_txt_files := \
91
 
        doc/en/user-reference/bzr_man.txt \
92
 
        doc/en/release-notes/NEWS.txt
93
 
txt_files := \
94
 
        doc/en/tutorials/tutorial.txt \
95
 
        doc/en/tutorials/using_bazaar_with_launchpad.txt \
96
 
        doc/en/tutorials/centralized_workflow.txt \
97
 
        $(wildcard doc/ru/tutorials/*.txt) \
98
 
        $(wildcard doc/*/mini-tutorial/index.txt) \
99
 
        $(wildcard doc/*/user-guide/index.txt) \
100
 
        $(derived_txt_files) \
101
 
        doc/en/developer-guide/HACKING.txt \
102
 
        doc/en/upgrade-guide/index.txt \
103
 
        $(wildcard doc/es/guia-usario/*.txt) \
104
 
        doc/es/mini-tutorial/index.txt \
105
 
        doc/index.txt \
106
 
        $(wildcard doc/index.*.txt)
107
 
non_txt_files := \
108
 
       doc/default.css \
109
 
       $(wildcard doc/*/quick-reference/bzr-quick-reference.svg) \
110
 
       $(wildcard doc/*/quick-reference/bzr-quick-reference.png) \
111
 
       $(wildcard doc/*/quick-reference/bzr-quick-reference.pdf) \
112
 
       $(wildcard doc/*/user-guide/images/*.png)
113
 
htm_files := $(patsubst %.txt, %.html, $(txt_files)) 
114
 
 
115
 
# doc/developers/*.txt files that should *not* be individually
116
 
# converted to HTML
117
 
dev_txt_nohtml := \
118
 
        doc/developers/add.txt \
119
 
        doc/developers/annotate.txt \
120
 
        doc/developers/bundle-creation.txt \
121
 
        doc/developers/commit.txt \
122
 
        doc/developers/diff.txt \
123
 
        doc/developers/directory-fingerprints.txt \
124
 
        doc/developers/gc.txt \
125
 
        doc/developers/incremental-push-pull.txt \
126
 
        doc/developers/initial-push-pull.txt \
127
 
        doc/developers/merge-scaling.txt \
128
 
        doc/developers/missing.txt \
129
 
        doc/developers/performance-roadmap-rationale.txt \
130
 
        doc/developers/performance-use-case-analysis.txt \
131
 
        doc/developers/planned-change-integration.txt \
132
 
        doc/developers/planned-performance-changes.txt \
133
 
        doc/developers/revert.txt \
134
 
        doc/developers/status.txt \
135
 
        doc/developers/uncommit.txt
136
 
 
137
 
dev_txt_all := $(wildcard $(addsuffix /*.txt, doc/developers))
138
 
dev_txt_files := $(filter-out $(dev_txt_nohtml), $(dev_txt_all))
139
 
dev_htm_files := $(patsubst %.txt, %.html, $(dev_txt_files)) 
140
 
 
141
 
doc/%/user-guide/index.html: $(wildcard $(addsuffix /*.txt, doc/%/user-guide)) 
142
 
        $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@
143
 
 
144
 
# Set the paper size for PDF files.
145
 
# Options:  'a4' (ISO A4 size), 'letter' (US Letter size)
146
 
PAPERSIZE = a4
147
 
# TODO: Add generation for Russian PDF
148
 
PDF_DOCS := doc/en/user-guide/user-guide.$(PAPERSIZE).pdf
149
 
 
150
 
# Copy and modify the RST sources, and convert SVG images to PDF
151
 
# files for use a images in the LaTeX-generated PDF.
152
 
# Then generate the PDF output from the modified RST sources.
153
 
doc/en/user-guide/user-guide.$(PAPERSIZE).pdf: $(wildcard $(addsuffix /*.txt, doc/en/user-guide))
154
 
        mkdir -p doc/en/user-guide/latex_prepared
155
 
        $(PYTHON) tools/prepare_for_latex.py \
156
 
            --out-dir=doc/en/user-guide/latex_prepared \
157
 
            --in-dir=doc/en/user-guide
158
 
        cd doc/en/user-guide/latex_prepared && \
159
 
            $(PYTHON) ../../../../tools/rst2pdf.py \
160
 
                --documentoptions=10pt,$(PAPERSIZE)paper \
161
 
                --input-encoding=UTF-8:strict --output-encoding=UTF-8:strict \
162
 
                --strict --title="Bazaar User Guide" \
163
 
                index.txt ../user-guide.$(PAPERSIZE).pdf
164
 
 
165
 
doc/developers/%.html: doc/developers/%.txt
166
 
        $(rst2html) --stylesheet=../default.css $< $@
167
 
 
168
 
doc/index.html: doc/index.txt
169
 
        $(rst2html) --stylesheet=default.css $< $@
170
 
 
171
 
doc/index.%.html: doc/index.%.txt
172
 
        $(rst2html) --stylesheet=default.css $< $@
173
 
 
174
 
%.html: %.txt
175
 
        $(rst2html) --stylesheet=../../default.css $< $@
 
82
# Build the documentation in the default set of formats
 
83
docs: html-docs pdf-docs
 
84
 
 
85
# Clean out generated documentation
 
86
clean-docs:
 
87
        cd doc && make clean
 
88
        cd doc/es && make clean
 
89
        cd doc/ru && make clean
 
90
        cd doc/developers && make clean
 
91
 
 
92
DOC_DEPENDENCIES = doc/en/release-notes/NEWS.txt doc/en/user-reference/bzr_man.txt
 
93
 
 
94
# Build the html docs. Requires Sphinx.
 
95
html-docs: $(DOC_DEPENDENCIES)
 
96
        cd doc && make html
 
97
        cd doc/es && make html
 
98
        cd doc/ru && make html
 
99
        cd doc/developers && make html
 
100
 
 
101
# Build the PDF docs. Requires Sphinx and numerous LateX packages.
 
102
# See http://sphinx.pocoo.org/builders.html for details.
 
103
# Note: We don't currently build PDFs for the Russian docs because
 
104
# they require additional packages to be installed (to handle
 
105
# Russian hyphenation rules, etc.)
 
106
pdf-docs: $(DOC_DEPENDENCIES)
 
107
        cd doc && make latex
 
108
        cd doc/es && make latex
 
109
        cd doc/developers && make latex
 
110
        cd doc/_build/latex && make all-pdf
 
111
        cd doc/es/_build/latex && make all-pdf
 
112
        cd doc/developers/_build/latex && make all-pdf
 
113
 
 
114
# Build the CHM (Windows Help) docs. Requires Sphinx and HtmlHelp workshop.
 
115
chm-docs: $(DOC_DEPENDENCIES)
 
116
        cd doc && make htmlhelp
 
117
        cd doc/es && make htmlhelp
 
118
        cd doc/ru && make htmlhelp
 
119
        cd doc/developers && make htmlhelp
176
120
 
177
121
MAN_DEPENDENCIES = bzrlib/builtins.py \
178
122
        $(wildcard bzrlib/*.py) \
190
134
man1/bzr.1: $(MAN_DEPENDENCIES)
191
135
        $(PYTHON) tools/generate_docs.py -o $@ man
192
136
 
193
 
upgrade_guide_dependencies =  $(wildcard $(addsuffix /*.txt, doc/en/upgrade-guide)) 
194
 
 
195
 
doc/en/upgrade-guide/index.html: $(upgrade_guide_dependencies)
196
 
        $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@
197
 
 
198
137
# build a png of our performance task list
199
138
200
139
# this is no longer built by default; you can build it if you want to look at it
202
141
        @echo Generating $@
203
142
        @dot -Tpng $< -o$@ || echo "Dot not installed; skipping generation of $@"
204
143
 
205
 
derived_web_docs = $(htm_files) $(dev_htm_files) 
206
 
WEB_DOCS = $(derived_web_docs) $(non_txt_files)
207
 
ALL_DOCS = $(derived_web_docs) $(MAN_PAGES)
208
 
 
209
 
# the target to build all the old-style docs
210
 
old-docs: $(ALL_DOCS)
211
 
 
212
 
# produce a tree containing just the final docs, ready for uploading to the web
213
 
HTMLDIR := html_docs
214
 
html-docs: docs
215
 
        $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) $(HTMLDIR)
216
 
 
217
 
# Produce PDF documents.  Requires pdfLaTeX, rubber, and Inkscape.
218
 
pdf-docs: $(PDF_DOCS)
219
 
 
220
 
# clean produced docs
221
 
clean-docs:
222
 
        $(PYTHON) tools/win32/ostools.py remove $(ALL_DOCS) \
223
 
            $(HTMLDIR) $(derived_txt_files)
224
 
        rm -f doc/*/user-guide/*.pdf
225
 
        rm -rf doc/*/user-guide/latex_prepared
226
 
        cd doc && make clean
227
 
 
228
 
# The main target to build all the new-style docs. Requires Sphinx.
229
 
docs: doc/en/release-notes/NEWS.txt doc/en/user-reference/bzr_man.txt
230
 
        cd doc && make html
231
 
        cd doc && make latex
232
 
        cd doc/_build/latex && make all-pdf
233
 
        cd doc/developers && make html
234
 
        cd doc/es && make html
235
 
        cd doc/ru && make html
236
 
 
237
144
 
238
145
### Windows Support ###
239
146