~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: John Arbash Meinel
  • Date: 2008-09-05 02:29:34 UTC
  • mto: (3697.7.4 1.7)
  • mto: This revision was merged to the branch mainline in revision 3748.
  • Revision ID: john@arbash-meinel.com-20080905022934-s8692mbwpkdwi106
Cleanups to the algorithm documentation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
# A relatively simple Makefile to assist in building parts of bzr. Mostly for
18
18
# building documentation, etc.
21
21
### Core Stuff ###
22
22
 
23
23
PYTHON=python
24
 
PYTHON24=python24
25
 
PYTHON25=python25
26
 
PYTHON26=python26
27
 
BZR_TARGET=release
28
 
PLUGIN_TARGET=plugin-release
29
24
PYTHON_BUILDFLAGS=
30
25
 
31
 
.PHONY: all clean extensions pyflakes api-docs check-nodocs check
 
26
.PHONY: all clean extensions pyflakes api-docs
32
27
 
33
28
all: extensions
34
29
 
36
31
        @echo "building extension modules."
37
32
        $(PYTHON) setup.py build_ext -i $(PYTHON_BUILDFLAGS)
38
33
 
39
 
check: docs check-nodocs
40
 
 
41
 
check-nodocs: extensions
 
34
check: docs extensions
42
35
        $(PYTHON) -Werror -O ./bzr selftest -1v $(tests)
43
36
        @echo "Running all tests with no locale."
44
37
        LC_CTYPE= LANG=C LC_ALL= ./bzr selftest -1v $(tests) 2>&1 | sed -e 's/^/[ascii] /'
89
82
# translate txt docs to html
90
83
derived_txt_files := \
91
84
        doc/en/user-reference/bzr_man.txt \
 
85
        doc/en/developer-guide/HACKING.txt \
92
86
        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) \
 
87
txt_files := $(wildcard doc/en/tutorials/*.txt) \
100
88
        $(derived_txt_files) \
101
 
        doc/en/developer-guide/HACKING.txt \
102
 
        doc/en/upgrade-guide/index.txt \
 
89
        doc/en/user-guide/index.txt \
 
90
        doc/en/mini-tutorial/index.txt \
103
91
        $(wildcard doc/es/guia-usario/*.txt) \
104
92
        doc/es/mini-tutorial/index.txt \
105
93
        doc/index.txt \
106
 
        $(wildcard doc/index.*.txt)
 
94
        doc/index.es.txt
107
95
non_txt_files := \
108
96
       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)
 
97
       doc/en/quick-reference/quick-start-summary.svg \
 
98
       doc/en/quick-reference/quick-start-summary.png \
 
99
       doc/en/quick-reference/quick-start-summary.pdf \
 
100
       $(wildcard doc/en/user-guide/images/*.png) \
 
101
       doc/es/referencia-rapida/referencia-rapida.svg \
 
102
       doc/es/referencia-rapida/referencia-rapida.png \
 
103
       doc/es/referencia-rapida/referencia-rapida.pdf \
 
104
       $(wildcard doc/es/guia-usuario/images/*.png)
113
105
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))
 
106
dev_txt_files := $(wildcard $(addsuffix /*.txt, doc/developers))
139
107
dev_htm_files := $(patsubst %.txt, %.html, $(dev_txt_files)) 
140
108
 
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
 
109
doc/en/user-guide/index.html: $(wildcard $(addsuffix /*.txt, doc/en/user-guide)) 
 
110
        $(rst2html) --stylesheet=../../default.css doc/en/user-guide/index.txt $@
164
111
 
165
112
doc/developers/%.html: doc/developers/%.txt
166
113
        $(rst2html) --stylesheet=../default.css $< $@
168
115
doc/index.html: doc/index.txt
169
116
        $(rst2html) --stylesheet=default.css $< $@
170
117
 
171
 
doc/index.%.html: doc/index.%.txt
172
 
        $(rst2html) --stylesheet=default.css $< $@
173
 
 
174
118
%.html: %.txt
175
119
        $(rst2html) --stylesheet=../../default.css $< $@
176
120
 
177
121
MAN_DEPENDENCIES = bzrlib/builtins.py \
178
 
        $(wildcard bzrlib/*.py) \
179
 
        $(wildcard bzrlib/*/*.py) \
180
 
        tools/generate_docs.py \
181
 
        $(wildcard $(addsuffix /*.txt, bzrlib/help_topics/en)) 
 
122
                 bzrlib/bundle/commands.py \
 
123
                 bzrlib/conflicts.py \
 
124
                 bzrlib/help_topics/__init__.py \
 
125
                 bzrlib/sign_my_commits.py \
 
126
                 bzrlib/bugtracker.py \
 
127
                 generate_docs.py \
 
128
                 tools/doc_generate/__init__.py \
 
129
                 tools/doc_generate/autodoc_man.py \
 
130
                 tools/doc_generate/autodoc_rstx.py \
 
131
                 $(wildcard $(addsuffix /*.txt, bzrlib/help_topics/en)) 
182
132
 
183
133
doc/en/user-reference/bzr_man.txt: $(MAN_DEPENDENCIES)
184
 
        $(PYTHON) tools/generate_docs.py -o $@ rstx
 
134
        $(PYTHON) generate_docs.py -o $@ rstx
 
135
 
 
136
doc/en/developer-guide/HACKING.txt: doc/developers/HACKING.txt
 
137
        $(PYTHON) tools/win32/ostools.py copytodir doc/developers/HACKING.txt doc/en/developer-guide
185
138
 
186
139
doc/en/release-notes/NEWS.txt: NEWS
187
140
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
188
141
 
189
142
MAN_PAGES = man1/bzr.1
190
143
man1/bzr.1: $(MAN_DEPENDENCIES)
191
 
        $(PYTHON) tools/generate_docs.py -o $@ man
192
 
 
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 $@
 
144
        $(PYTHON) generate_docs.py -o $@ man
197
145
 
198
146
# build a png of our performance task list
199
 
200
 
# this is no longer built by default; you can build it if you want to look at it
201
147
doc/developers/performance.png: doc/developers/performance.dot
202
148
        @echo Generating $@
203
149
        @dot -Tpng $< -o$@ || echo "Dot not installed; skipping generation of $@"
204
150
 
205
 
derived_web_docs = $(htm_files) $(dev_htm_files) 
 
151
derived_web_docs = $(htm_files) $(dev_htm_files) doc/developers/performance.png
206
152
WEB_DOCS = $(derived_web_docs) $(non_txt_files)
207
153
ALL_DOCS = $(derived_web_docs) $(MAN_PAGES)
208
154
 
214
160
html-docs: docs
215
161
        $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) $(HTMLDIR)
216
162
 
217
 
# Produce PDF documents.  Requires pdfLaTeX, rubber, and Inkscape.
218
 
pdf-docs: $(PDF_DOCS)
219
 
 
220
163
# clean produced docs
221
164
clean-docs:
222
165
        $(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
 
166
        $(HTMLDIR) $(derived_txt_files)
226
167
 
227
168
 
228
169
### Windows Support ###
229
170
 
230
 
# make all the installers completely from scratch, using zc.buildout
231
 
# to fetch the dependencies
232
 
# These are files that need to be copied into the build location to boostrap
233
 
# the build process.
234
 
# Note that the path is relative to tools/win32
235
 
BUILDOUT_FILES := buildout.cfg \
236
 
        buildout-templates/bin/build-installer.bat.in \
237
 
        ostools.py bootstrap.py
238
 
 
239
 
installer-all:
240
 
        @echo Make all the installers from scratch
241
 
        @# Build everything in a separate directory, to avoid cluttering the WT
242
 
        $(PYTHON) tools/win32/ostools.py makedir build-win32
243
 
        @# cd to tools/win32 so that the relative paths are copied correctly
244
 
        cd tools/win32 && $(PYTHON) ostools.py copytree $(BUILDOUT_FILES) ../../build-win32
245
 
        @# There seems to be a bug in gf.release.bzr, It doesn't correctly update
246
 
        @# existing release directories, so delete them manually before building
247
 
        @# It means things may be rebuilt that don't need to be, but at least
248
 
        @# it will be correct when they do.
249
 
        cd build-win32 && $(PYTHON) ostools.py remove release */release
250
 
        cd build-win32 && $(PYTHON) bootstrap.py
251
 
        cd build-win32 && bin/buildout
252
 
        cd build-win32 && bin/build-installer.bat $(BZR_TARGET) $(PLUGIN_TARGET)
253
 
 
254
 
 
255
 
clean-installer-all:
256
 
        $(PYTHON) tools/win32/ostools.py remove build-win32
257
 
 
258
171
# make bzr.exe for win32 with py2exe
259
172
exe:
260
173
        @echo *** Make bzr.exe
261
 
        $(PYTHON) tools/win32/ostools.py remove bzrlib/*.pyd
262
174
        $(PYTHON) setup.py build_ext -i -f $(PYTHON_BUILDFLAGS)
263
175
        $(PYTHON) setup.py py2exe > py2exe.log
264
176
        $(PYTHON) tools/win32/ostools.py copytodir tools/win32/start_bzr.bat win32_bzr.exe
266
178
 
267
179
# win32 installer for bzr.exe
268
180
installer: exe copy-docs
269
 
        @echo *** Make Windows installer
 
181
        @echo *** Make windows installer
270
182
        $(PYTHON) tools/win32/run_script.py cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
271
183
        iscc /Q tools/win32/bzr.iss
272
184
 
273
185
# win32 Python's distutils-based installer
274
186
# require to have Python interpreter installed on win32
275
187
py-inst-24: docs
276
 
        $(PYTHON24) setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
 
188
        python24 setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
277
189
 
278
190
py-inst-25: docs
279
 
        $(PYTHON25) setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
280
 
 
281
 
py-inst-26: docs
282
 
        $(PYTHON26) setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
283
 
 
284
 
python-installer: py-inst-24 py-inst-25 py-inst-26
 
191
        python25 setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
 
192
 
 
193
python-installer: py-inst-24 py-inst-25
285
194
 
286
195
 
287
196
copy-docs: docs
300
209
 
301
210
.PHONY: dist dist-upload-escudero check-dist-tarball
302
211
 
303
 
# build a distribution tarball and zip file.
 
212
# build a distribution tarball.
304
213
#
305
214
# this method of copying the pyrex generated files is a bit ugly; it would be
306
215
# nicer to generate it from distutils.
 
216
#
 
217
# these are a bit ubuntu-specific.
307
218
dist: 
308
219
        version=`./bzr version --short` && \
309
220
        echo Building distribution of bzr $$version && \
310
221
        expbasedir=`mktemp -t -d tmp_bzr_dist.XXXXXXXXXX` && \
311
222
        expdir=$$expbasedir/bzr-$$version && \
312
223
        tarball=$$PWD/../bzr-$$version.tar.gz && \
313
 
        zipball=$$PWD/../bzr-$$version.zip && \
314
224
        $(MAKE) clean && \
315
225
        $(MAKE) && \
316
226
        bzr export $$expdir && \
317
227
        cp bzrlib/*.c $$expdir/bzrlib/. && \
318
228
        tar cfz $$tarball -C $$expbasedir bzr-$$version && \
319
 
        (cd $$expbasedir && zip -r $$zipball bzr-$$version) && \
320
229
        gpg --detach-sign $$tarball && \
321
 
        gpg --detach-sign $$zipball && \
 
230
        echo $$tarball done. && \
322
231
        rm -rf $$expbasedir
323
232
 
324
233
# run all tests in a previously built tarball
336
245
dist-upload-escudero:
337
246
        version=`./bzr version --short` && \
338
247
        tarball=../bzr-$$version.tar.gz && \
339
 
        zipball=../bzr-$$version.zip && \
340
 
        scp $$zipball $$zipball.sig $$tarball $$tarball.sig \
 
248
        scp $$tarball $$tarball.sig \
341
249
            escudero.ubuntu.com:/srv/bazaar.canonical.com/www/releases/src \
342
250
                && \
343
251
        echo verifying over http... && \
344
 
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.zip \
345
 
                | diff -s - $$zipball && \
346
 
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.zip.sig \
347
 
                | diff -s - $$zipball.sig 
348
252
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz \
349
253
                | diff -s - $$tarball && \
350
254
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz.sig \