/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Martin Pool
  • Date: 2006-10-29 06:53:11 UTC
  • mto: This revision was merged to the branch mainline in revision 2114.
  • Revision ID: mbp@sourcefrog.net-20061029065311-c0db791096b06831
Better progress bars during tests

This now shows by default something like::

  [41/3989, 10 skipped in 0s] test_bundle.V08BundleTester.test_binary_bundle

The whole test name is generally visible, as are the number skipped or 
failed so far; if there are skips, failures or errors they are printed
out above the progress bar. 

Code for displaying test results in different ways was separated out
into cleaner subclasses, and the selftest builtin was cleaned up.

This introduces a new and (simpler) setup for progress bars through the UI
object.  They don't nest, under the assumption that we can really only convey
one level at a time.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
2
 
#
3
 
# This program is free software; you can redistribute it and/or modify
4
 
# it under the terms of the GNU General Public License as published by
5
 
# the Free Software Foundation; either version 2 of the License, or
6
 
# (at your option) any later version.
7
 
#
8
 
# This program is distributed in the hope that it will be useful,
9
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
# GNU General Public License for more details.
12
 
#
13
 
# You should have received a copy of the GNU General Public License
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
16
 
 
17
 
# A relatively simple Makefile to assist in building parts of bzr. Mostly for
18
 
# building documentation, etc.
19
 
 
20
 
 
21
 
### Core Stuff ###
22
 
 
23
 
PYTHON=python
24
 
PYTHON24=python24
25
 
PYTHON25=python25
26
 
PYTHON26=python26
27
 
BZR_TARGET=release
28
 
PLUGIN_TARGET=plugin-release
29
 
PYTHON_BUILDFLAGS=
30
 
 
31
 
.PHONY: all clean extensions pyflakes api-docs check-nodocs check
32
 
 
33
 
all: extensions
34
 
 
35
 
extensions:
36
 
        @echo "building extension modules."
37
 
        $(PYTHON) setup.py build_ext -i $(PYTHON_BUILDFLAGS)
38
 
 
39
 
check: docs check-nodocs
40
 
 
41
 
check-nodocs: extensions
42
 
        # Generate a stream for PQM to watch.
43
 
        $(PYTHON) -Werror -O ./bzr selftest --subunit $(tests) | tee selftest.log
44
 
        # Check that there were no errors reported.
45
 
        subunit-stats < selftest.log
 
1
all:
 
2
 
 
3
check:
 
4
        python -Werror ./bzr selftest -v $(tests)
 
5
        @echo "Running all tests with no locale."
 
6
        LC_CTYPE= LANG=C LC_ALL= ./bzr selftest -v $(tests)
 
7
 
 
8
check-msgeditor:
 
9
        ./bzr --no-plugins selftest -v msgeditor
46
10
 
47
11
# Run Python style checker (apt-get install pyflakes)
48
 
#
49
 
# Note that at present this gives many false warnings, because it doesn't
50
 
# know about identifiers loaded through lazy_import.
51
12
pyflakes:
52
13
        pyflakes bzrlib
53
14
 
57
18
        pyflakes bzrlib | grep -v ' imported but unused'
58
19
 
59
20
clean:
60
 
        $(PYTHON) setup.py clean
61
 
        -find . -name "*.pyc" -o -name "*.pyo" -o -name "*.so" | xargs rm -f
62
 
 
63
 
# Build API documentation
64
 
docfiles = bzr bzrlib
65
 
api-docs:
66
 
        mkdir -p api/html
67
 
        PYTHONPATH=$(PWD) $(PYTHON) tools/bzr_epydoc --html -o api/html --docformat 'restructuredtext en' $(docfiles)
68
 
check-api-docs:
69
 
        PYTHONPATH=$(PWD) $(PYTHON) tools/bzr_epydoc --check --docformat 'restructuredtext en' $(docfiles)
70
 
 
71
 
# build tags for emacs and vim
72
 
TAGS:
73
 
        ctags -R -e bzrlib
74
 
 
75
 
tags:
76
 
        ctags -R bzrlib
77
 
 
78
 
# these are treated as phony so they'll always be rebuilt - it's pretty quick
79
 
.PHONY: TAGS tags
80
 
 
81
 
 
82
 
### Documentation ###
83
 
 
84
 
# Default to plain documentation for maximum backwards compatibility.
85
 
# (Post 2.0, the defaults will most likely be Sphinx-style instead.)
86
 
 
87
 
docs: docs-plain
88
 
 
89
 
clean-docs: clean-plain
90
 
 
91
 
html-docs: html-plain
92
 
 
93
 
 
94
 
### Man-page Documentation ###
95
 
 
96
 
MAN_DEPENDENCIES = bzrlib/builtins.py \
97
 
        $(wildcard bzrlib/*.py) \
98
 
        $(wildcard bzrlib/*/*.py) \
99
 
        tools/generate_docs.py \
100
 
        $(wildcard $(addsuffix /*.txt, bzrlib/help_topics/en)) 
101
 
 
102
 
MAN_PAGES = man1/bzr.1
103
 
man1/bzr.1: $(MAN_DEPENDENCIES)
104
 
        $(PYTHON) tools/generate_docs.py -o $@ man
105
 
 
106
 
 
107
 
### Sphinx-style Documentation ###
108
 
 
109
 
# Build the documentation. To keep the dependencies down to a minimum
110
 
# for distro packagers, we only build the html documentation by default.
111
 
# Sphinx 0.6 or later is preferred for the best rendering, though
112
 
# Sphinx 0.4 or later should work. See http://sphinx.pocoo.org/index.html
113
 
# for installation instructions.
114
 
docs-sphinx: html-sphinx
115
 
 
116
 
# Clean out generated documentation
117
 
clean-sphinx:
118
 
        cd doc/en && make clean
119
 
        cd doc/es && make clean
120
 
        cd doc/ja && make clean
121
 
        cd doc/ru && make clean
122
 
        cd doc/developers && make clean
123
 
 
124
 
SPHINX_DEPENDENCIES = \
125
 
        doc/en/release-notes/index.txt \
126
 
        doc/en/user-reference/index.txt \
127
 
        doc/es/Makefile \
128
 
        doc/es/make.bat \
129
 
        doc/ja/Makefile \
130
 
        doc/ja/make.bat \
131
 
        doc/ru/Makefile \
132
 
        doc/ru/make.bat \
133
 
        doc/developers/Makefile \
134
 
        doc/developers/make.bat
135
 
 
136
 
doc/en/user-reference/index.txt: $(MAN_DEPENDENCIES)
137
 
        $(PYTHON) tools/generate_docs.py -o $@ rstx
138
 
 
139
 
doc/en/release-notes/index.txt: NEWS tools/generate_release_notes.py
140
 
        $(PYTHON) tools/generate_release_notes.py NEWS $@
141
 
 
142
 
doc/%/Makefile: doc/en/Makefile
143
 
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
144
 
 
145
 
doc/%/make.bat: doc/en/make.bat
146
 
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
147
 
 
148
 
# Build the html docs using Sphinx.
149
 
html-sphinx: $(SPHINX_DEPENDENCIES)
150
 
        cd doc/en && make html
151
 
        cd doc/es && make html
152
 
        cd doc/ru && make html
153
 
        cd doc/ja && make html
154
 
        cd doc/developers && make html
155
 
 
156
 
# Build the PDF docs using Sphinx. This requires numerous LaTeX
157
 
# packages. See http://sphinx.pocoo.org/builders.html for details.
158
 
# Note: We don't currently build PDFs for the Russian docs because
159
 
# they require additional packages to be installed (to handle
160
 
# Russian hyphenation rules, etc.)
161
 
pdf-sphinx: $(SPHINX_DEPENDENCIES)
162
 
        cd doc/en && make latex
163
 
        cd doc/es && make latex
164
 
        cd doc/ja && make latex
165
 
        cd doc/developers && make latex
166
 
        cd doc/en/_build/latex && make all-pdf
167
 
        cd doc/es/_build/latex && make all-pdf
168
 
        cd doc/developers/_build/latex && make all-pdf
169
 
 
170
 
# Build the CHM (Windows Help) docs using Sphinx.
171
 
# Note: HtmlHelp Workshop needs to be used on the generated hhp files
172
 
# to generate the final chm files.
173
 
chm-sphinx: $(SPHINX_DEPENDENCIES)
174
 
        cd doc/en && make htmlhelp
175
 
        cd doc/es && make htmlhelp
176
 
        cd doc/ru && make htmlhelp
177
 
        cd doc/ja && make htmlhelp
178
 
        cd doc/developers && make htmlhelp
179
 
 
180
 
 
181
 
### Documentation Website ###
182
 
 
183
 
# Where to build the website
184
 
DOC_WEBSITE_BUILD = build_doc_website
185
 
 
186
 
# Build and package docs into a website, complete with downloads.
187
 
doc-website: html-sphinx pdf-sphinx
188
 
        $(PYTHON) tools/package_docs.py doc/en $(DOC_WEBSITE_BUILD)
189
 
        $(PYTHON) tools/package_docs.py doc/es $(DOC_WEBSITE_BUILD)
190
 
        $(PYTHON) tools/package_docs.py doc/ru $(DOC_WEBSITE_BUILD)
191
 
        $(PYTHON) tools/package_docs.py doc/ja $(DOC_WEBSITE_BUILD)
192
 
        $(PYTHON) tools/package_docs.py doc/developers $(DOC_WEBSITE_BUILD)
193
 
 
194
 
 
195
 
### Plain Documentation ###
196
 
 
197
 
# While Sphinx is the preferred tool for building documentation, we still
198
 
# support our "plain" html documentation so that Sphinx is not a hard
199
 
# dependency for packagers on older platforms.
200
 
 
201
 
rst2html = $(PYTHON) tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning
 
21
        ./setup.py clean
 
22
        -find . -name "*.pyc" -o -name "*.pyo" | xargs rm -f
 
23
        rm -rf test????.tmp
 
24
 
 
25
.PHONY: all
 
26
 
 
27
 
 
28
# build emacs cross-reference
 
29
tag_files=./bzr ./bzrlib/*py ./bzrlib/selftest/*.py
 
30
TAGS: $(tag_files)
 
31
        ctags-exuberant -e $(tag_files)
 
32
 
 
33
 
 
34
# Produce HTML docs to upload on Canonical server
 
35
HTMLDIR := html_docs
 
36
 
 
37
html-docs: docs
 
38
        python tools/win32/ostools.py copytodir $(htm_files) doc/default.css $(HTMLDIR)
 
39
 
202
40
 
203
41
# translate txt docs to html
204
 
derived_txt_files = \
205
 
        doc/en/release-notes/NEWS.txt
206
 
txt_all = \
207
 
        doc/en/tutorials/tutorial.txt \
208
 
        doc/en/tutorials/using_bazaar_with_launchpad.txt \
209
 
        doc/en/tutorials/centralized_workflow.txt \
210
 
        $(wildcard doc/es/tutorials/*.txt) \
211
 
                $(wildcard doc/ru/tutorials/*.txt) \
212
 
        doc/ja/tutorials/tutorial.txt \
213
 
        doc/ja/tutorials/using_bazaar_with_launchpad.txt \
214
 
        doc/ja/tutorials/centralized_workflow.txt \
215
 
        $(wildcard doc/*/mini-tutorial/index.txt) \
216
 
        $(wildcard doc/*/user-guide/index-plain.txt) \
217
 
        doc/en/admin-guide/index-plain.txt \
218
 
        $(wildcard doc/es/guia-usario/*.txt) \
219
 
        $(derived_txt_files) \
220
 
        doc/en/upgrade-guide/index.txt \
221
 
        doc/index.txt \
222
 
        $(wildcard doc/index.*.txt)
223
 
txt_nohtml = \
224
 
        doc/en/user-guide/index.txt \
225
 
        doc/es/user-guide/index.txt \
226
 
        doc/ja/user-guide/index.txt \
227
 
        doc/ru/user-guide/index.txt \
228
 
        doc/en/admin-guide/index.txt
229
 
txt_files = $(filter-out $(txt_nohtml), $(txt_all))
230
 
htm_files = $(patsubst %.txt, %.html, $(txt_files)) 
231
 
 
232
 
non_txt_files = \
233
 
       doc/default.css \
234
 
       $(wildcard doc/*/bzr-en-quick-reference.svg) \
235
 
       $(wildcard doc/*/bzr-en-quick-reference.png) \
236
 
       $(wildcard doc/*/bzr-en-quick-reference.pdf) \
237
 
       $(wildcard doc/*/bzr-es-quick-reference.svg) \
238
 
       $(wildcard doc/*/bzr-es-quick-reference.png) \
239
 
       $(wildcard doc/*/bzr-es-quick-reference.pdf) \
240
 
       $(wildcard doc/*/bzr-ru-quick-reference.svg) \
241
 
       $(wildcard doc/*/bzr-ru-quick-reference.png) \
242
 
       $(wildcard doc/*/bzr-ru-quick-reference.pdf) \
243
 
       $(wildcard doc/*/user-guide/images/*.png)
244
 
 
245
 
# doc/developers/*.txt files that should *not* be individually
246
 
# converted to HTML
247
 
dev_txt_nohtml = \
248
 
        doc/developers/add.txt \
249
 
        doc/developers/annotate.txt \
250
 
        doc/developers/bundle-creation.txt \
251
 
        doc/developers/commit.txt \
252
 
        doc/developers/diff.txt \
253
 
        doc/developers/directory-fingerprints.txt \
254
 
        doc/developers/gc.txt \
255
 
        doc/developers/implementation-notes.txt \
256
 
        doc/developers/incremental-push-pull.txt \
257
 
        doc/developers/index.txt \
258
 
        doc/developers/initial-push-pull.txt \
259
 
        doc/developers/merge-scaling.txt \
260
 
        doc/developers/miscellaneous-notes.txt \
261
 
        doc/developers/missing.txt \
262
 
        doc/developers/performance-roadmap-rationale.txt \
263
 
        doc/developers/performance-use-case-analysis.txt \
264
 
        doc/developers/planned-change-integration.txt \
265
 
        doc/developers/planned-performance-changes.txt \
266
 
        doc/developers/plans.txt \
267
 
        doc/developers/process.txt \
268
 
        doc/developers/revert.txt \
269
 
        doc/developers/specifications.txt \
270
 
        doc/developers/status.txt \
271
 
        doc/developers/uncommit.txt
272
 
 
273
 
dev_txt_all = $(wildcard $(addsuffix /*.txt, doc/developers))
274
 
dev_txt_files = $(filter-out $(dev_txt_nohtml), $(dev_txt_all))
275
 
dev_htm_files = $(patsubst %.txt, %.html, $(dev_txt_files)) 
276
 
 
277
 
doc/en/user-guide/index-plain.html: $(wildcard $(addsuffix /*.txt, doc/en/user-guide)) 
278
 
        $(rst2html) --stylesheet=../../default.css $(dir $@)index-plain.txt $@
279
 
 
280
 
#doc/es/user-guide/index.html: $(wildcard $(addsuffix /*.txt, doc/es/user-guide)) 
281
 
#       $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@
282
 
#
283
 
#doc/ru/user-guide/index.html: $(wildcard $(addsuffix /*.txt, doc/ru/user-guide)) 
284
 
#       $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@
285
 
#
286
 
doc/en/admin-guide/index-plain.html: $(wildcard $(addsuffix /*.txt, doc/en/admin-guide)) 
287
 
        $(rst2html) --stylesheet=../../default.css $(dir $@)index-plain.txt $@
288
 
 
289
 
doc/developers/%.html: doc/developers/%.txt
290
 
        $(rst2html) --stylesheet=../default.css $< $@
291
 
 
292
 
doc/index.html: doc/index.txt
293
 
        $(rst2html) --stylesheet=default.css $< $@
294
 
 
295
 
doc/index.%.html: doc/index.%.txt
296
 
        $(rst2html) --stylesheet=default.css $< $@
297
 
 
298
 
%.html: %.txt
299
 
        $(rst2html) --stylesheet=../../default.css $< $@
300
 
 
301
 
doc/en/release-notes/NEWS.txt: NEWS
302
 
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
303
 
 
304
 
upgrade_guide_dependencies =  $(wildcard $(addsuffix /*.txt, doc/en/upgrade-guide)) 
305
 
 
306
 
doc/en/upgrade-guide/index.html: $(upgrade_guide_dependencies)
307
 
        $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@
308
 
 
309
 
derived_web_docs = $(htm_files) $(dev_htm_files) 
310
 
WEB_DOCS = $(derived_web_docs) $(non_txt_files)
311
 
ALL_DOCS = $(derived_web_docs) $(MAN_PAGES)
312
 
 
313
 
# the main target to build all the docs
314
 
docs-plain: $(ALL_DOCS)
315
 
 
316
 
# produce a tree containing just the final docs, ready for uploading to the web
317
 
HTMLDIR = html_docs
318
 
html-plain: docs-plain
319
 
        $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) $(HTMLDIR)
 
42
doc_dir := doc 
 
43
txt_files := $(wildcard $(addsuffix /*.txt, $(doc_dir)))
 
44
htm_files := $(patsubst %.txt, %.htm, $(txt_files)) doc/bzr_man.htm
 
45
 
 
46
%.htm: %.txt
 
47
        python tools/rst2html.py --link-stylesheet --stylesheet=default.css $*.txt $*.htm
 
48
 
 
49
doc/bzr_man.txt: bzrlib/builtins.py \
 
50
                 bzrlib/bundle/commands.py \
 
51
                 bzrlib/conflicts.py \
 
52
                 bzrlib/sign_my_commits.py \
 
53
                 generate_docs.py \
 
54
                 tools/doc_generate/__init__.py \
 
55
                 tools/doc_generate/autodoc_rstx.py
 
56
        python generate_docs.py -o doc/bzr_man.txt rstx
 
57
 
 
58
docs: $(htm_files)
 
59
 
 
60
copy-docs: docs
 
61
        python tools/win32/ostools.py copytodir $(htm_files) doc/default.css NEWS README  win32_bzr.exe/doc
320
62
 
321
63
# clean produced docs
322
 
clean-plain:
323
 
        $(PYTHON) tools/win32/ostools.py remove $(ALL_DOCS) \
324
 
            $(HTMLDIR) $(derived_txt_files)
325
 
 
326
 
 
327
 
### Miscellaneous Documentation Targets ###
328
 
 
329
 
# build a png of our performance task list
330
 
# this is no longer built by default; you can build it if you want to look at it
331
 
doc/developers/performance.png: doc/developers/performance.dot
332
 
        @echo Generating $@
333
 
        @dot -Tpng $< -o$@ || echo "Dot not installed; skipping generation of $@"
334
 
 
335
 
 
336
 
### Windows Support ###
337
 
 
338
 
# make all the installers completely from scratch, using zc.buildout
339
 
# to fetch the dependencies
340
 
# These are files that need to be copied into the build location to boostrap
341
 
# the build process.
342
 
# Note that the path is relative to tools/win32
343
 
BUILDOUT_FILES = buildout.cfg \
344
 
        buildout-templates/bin/build-installer.bat.in \
345
 
        ostools.py bootstrap.py
346
 
 
347
 
installer-all:
348
 
        @echo Make all the installers from scratch
349
 
        @# Build everything in a separate directory, to avoid cluttering the WT
350
 
        $(PYTHON) tools/win32/ostools.py makedir build-win32
351
 
        @# cd to tools/win32 so that the relative paths are copied correctly
352
 
        cd tools/win32 && $(PYTHON) ostools.py copytree $(BUILDOUT_FILES) ../../build-win32
353
 
        @# There seems to be a bug in gf.release.bzr, It doesn't correctly update
354
 
        @# existing release directories, so delete them manually before building
355
 
        @# It means things may be rebuilt that don't need to be, but at least
356
 
        @# it will be correct when they do.
357
 
        cd build-win32 && $(PYTHON) ostools.py remove release */release
358
 
        cd build-win32 && $(PYTHON) bootstrap.py
359
 
        cd build-win32 && bin/buildout
360
 
        cd build-win32 && bin/build-installer.bat $(BZR_TARGET) $(PLUGIN_TARGET)
361
 
 
362
 
 
363
 
clean-installer-all:
364
 
        $(PYTHON) tools/win32/ostools.py remove build-win32
 
64
clean-docs:
 
65
        python tools/win32/ostools.py remove doc/bzr_man.txt $(htm_files) $(HTMLDIR)
 
66
 
365
67
 
366
68
# make bzr.exe for win32 with py2exe
367
69
exe:
368
70
        @echo *** Make bzr.exe
369
 
        $(PYTHON) tools/win32/ostools.py remove bzrlib/*.pyd
370
 
        $(PYTHON) setup.py build_ext -i -f $(PYTHON_BUILDFLAGS)
371
 
        $(PYTHON) setup.py py2exe > py2exe.log
372
 
        $(PYTHON) tools/win32/ostools.py copytodir tools/win32/start_bzr.bat win32_bzr.exe
373
 
        $(PYTHON) tools/win32/ostools.py copytodir tools/win32/bazaar.url win32_bzr.exe
 
71
        python setup.py py2exe > py2exe.log
 
72
        python tools/win32/ostools.py copytodir tools/win32/start_bzr.bat win32_bzr.exe
 
73
        python tools/win32/ostools.py copytodir tools/win32/bazaar.url win32_bzr.exe
374
74
 
375
75
# win32 installer for bzr.exe
376
76
installer: exe copy-docs
377
 
        @echo *** Make Windows installer
378
 
        $(PYTHON) tools/win32/run_script.py cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
 
77
        @echo *** Make windows installer
 
78
        cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
379
79
        iscc /Q tools/win32/bzr.iss
380
80
 
381
 
# win32 Python's distutils-based installer
382
 
# require to have Python interpreter installed on win32
383
 
py-inst-24: docs
384
 
        $(PYTHON24) setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
385
 
 
386
 
py-inst-25: docs
387
 
        $(PYTHON25) setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
388
 
 
389
 
py-inst-26: docs
390
 
        $(PYTHON26) setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
391
 
 
392
 
python-installer: py-inst-24 py-inst-25 py-inst-26
393
 
 
394
 
 
395
 
copy-docs: docs
396
 
        $(PYTHON) tools/win32/ostools.py copytodir README win32_bzr.exe/doc
397
 
        $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) win32_bzr.exe
 
81
# win32 python's distutils-based installer
 
82
# require to have python interpreter installed on win32
 
83
python-installer: docs
 
84
        python setup.py bdist_wininst --title="Bazaar" --install-script="bzr-win32-bdist-postinstall.py"
 
85
 
398
86
 
399
87
# clean on win32 all installer-related files and directories
400
 
clean-win32: clean-docs
401
 
        $(PYTHON) tools/win32/ostools.py remove build
402
 
        $(PYTHON) tools/win32/ostools.py remove win32_bzr.exe
403
 
        $(PYTHON) tools/win32/ostools.py remove py2exe.log
404
 
        $(PYTHON) tools/win32/ostools.py remove tools/win32/bzr.iss
405
 
        $(PYTHON) tools/win32/ostools.py remove bzr-setup*.exe
406
 
        $(PYTHON) tools/win32/ostools.py remove bzr-*win32.exe
407
 
        $(PYTHON) tools/win32/ostools.py remove dist
408
 
 
409
 
 
410
 
### Packaging Targets ###
411
 
 
412
 
.PHONY: dist check-dist-tarball
413
 
 
414
 
# build a distribution source tarball
415
 
#
416
 
# this method of copying the pyrex generated files is a bit ugly; it would be
417
 
# nicer to generate it from distutils.
418
 
dist: 
419
 
        version=`./bzr version --short` && \
420
 
        echo Building distribution of bzr $$version && \
421
 
        expbasedir=`mktemp -t -d tmp_bzr_dist.XXXXXXXXXX` && \
422
 
        expdir=$$expbasedir/bzr-$$version && \
423
 
        tarball=$$PWD/../bzr-$$version.tar.gz && \
424
 
        $(MAKE) clean && \
425
 
        $(MAKE) && \
426
 
        bzr export $$expdir && \
427
 
        cp bzrlib/*.c bzrlib/*.h $$expdir/bzrlib/. && \
428
 
        tar cfz $$tarball -C $$expbasedir bzr-$$version && \
429
 
        gpg --detach-sign $$tarball && \
430
 
        rm -rf $$expbasedir
431
 
 
432
 
# run all tests in a previously built tarball
433
 
check-dist-tarball:
434
 
        tmpdir=`mktemp -t -d tmp_bzr_check_dist.XXXXXXXXXX` && \
435
 
        version=`./bzr version --short` && \
436
 
        tarball=$$PWD/../bzr-$$version.tar.gz && \
437
 
        tar Cxz $$tmpdir -f $$tarball && \
438
 
        $(MAKE) -C $$tmpdir/bzr-$$version check && \
439
 
        rm -rf $$tmpdir
 
88
clean-win32:
 
89
        python tools/win32/ostools.py remove build
 
90
        python tools/win32/ostools.py remove win32_bzr.exe
 
91
        python tools/win32/ostools.py remove py2exe.log
 
92
        python tools/win32/ostools.py remove doc/*.htm
 
93
        python tools/win32/ostools.py remove doc/bzr_man.txt
 
94
        python tools/win32/ostools.py remove tools/win32/bzr.iss
 
95
        python tools/win32/ostools.py remove bzr-setup*.exe
 
96
        python tools/win32/ostools.py remove dist