~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: John Arbash Meinel
  • Date: 2008-08-18 22:34:21 UTC
  • mto: (3606.5.6 1.6)
  • mto: This revision was merged to the branch mainline in revision 3641.
  • Revision ID: john@arbash-meinel.com-20080818223421-todjny24vj4faj4t
Add tests for the fetching behavior.

The proper parameter passed is 'unordered' add an assert for it, and
fix callers that were passing 'unsorted' instead.
Add tests that we make the right get_record_stream call based
on the value of _fetch_uses_deltas.
Fix the fetch request for signatures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
all: 
2
 
 
3
 
check:
4
 
        ./bzr selftest -v $(tests)
 
1
# Copyright (C) 2005, 2006, 2007, 2008 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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
PYTHON_BUILDFLAGS=
 
25
 
 
26
.PHONY: all clean extensions pyflakes api-docs
 
27
 
 
28
all: extensions
 
29
 
 
30
extensions:
 
31
        @echo "building extension modules."
 
32
        $(PYTHON) setup.py build_ext -i $(PYTHON_BUILDFLAGS)
 
33
 
 
34
check: docs extensions
 
35
        $(PYTHON) -Werror -O ./bzr selftest -1v $(tests)
5
36
        @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
10
 
 
11
 
clean: 
12
 
        ./setup.py clean
13
 
        -find . -name "*.pyc" -o -name "*.pyo" | xargs rm -f
14
 
        rm -rf test????.tmp
15
 
 
16
 
.PHONY: all
17
 
 
18
 
 
19
 
# build emacs cross-reference
20
 
tag_files=./bzr ./bzrlib/*py ./bzrlib/selftest/*.py
21
 
TAGS: $(tag_files)
22
 
        ctags-exuberant -e $(tag_files)
23
 
 
24
 
tutorial.html: tutorial.txt
25
 
        rest2html tutorial.txt > tutorial.html
 
37
        LC_CTYPE= LANG=C LC_ALL= ./bzr selftest -1v $(tests) 2>&1 | sed -e 's/^/[ascii] /'
 
38
 
 
39
# Run Python style checker (apt-get install pyflakes)
 
40
#
 
41
# Note that at present this gives many false warnings, because it doesn't
 
42
# know about identifiers loaded through lazy_import.
 
43
pyflakes:
 
44
        pyflakes bzrlib
 
45
 
 
46
pyflakes-nounused:
 
47
        # There are many of these warnings at the moment and they're not a
 
48
        # high priority to fix
 
49
        pyflakes bzrlib | grep -v ' imported but unused'
 
50
 
 
51
clean:
 
52
        $(PYTHON) setup.py clean
 
53
        -find . -name "*.pyc" -o -name "*.pyo" -o -name "*.so" | xargs rm -f
 
54
 
 
55
# Build API documentation
 
56
docfiles = bzr bzrlib
 
57
api-docs:
 
58
        mkdir -p api/html
 
59
        PYTHONPATH=$(PWD) $(PYTHON) tools/bzr_epydoc --html -o api/html --docformat 'restructuredtext en' $(docfiles)
 
60
check-api-docs:
 
61
        PYTHONPATH=$(PWD) $(PYTHON) tools/bzr_epydoc --check --docformat 'restructuredtext en' $(docfiles)
 
62
 
 
63
# build tags for emacs and vim
 
64
TAGS:
 
65
        ctags -R -e bzrlib
 
66
 
 
67
tags:
 
68
        ctags -R bzrlib
 
69
 
 
70
# these are treated as phony so they'll always be rebuilt - it's pretty quick
 
71
.PHONY: TAGS tags
 
72
 
 
73
### Documentation ###
 
74
 
 
75
# set PRETTY to get docs that look like the Bazaar web site
 
76
ifdef PRETTY
 
77
rst2html := $(PYTHON) tools/rst2prettyhtml.py doc/bazaar-vcs.org.kid 
 
78
else
 
79
rst2html := $(PYTHON) tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning
 
80
endif
 
81
 
 
82
# translate txt docs to html
 
83
derived_txt_files := \
 
84
        doc/en/user-reference/bzr_man.txt \
 
85
        doc/en/developer-guide/HACKING.txt \
 
86
        doc/en/release-notes/NEWS.txt
 
87
txt_files := $(wildcard doc/en/tutorials/*.txt) \
 
88
        $(derived_txt_files) \
 
89
        doc/en/user-guide/index.txt \
 
90
        doc/en/mini-tutorial/index.txt \
 
91
        $(wildcard doc/es/guia-usario/*.txt) \
 
92
        doc/es/mini-tutorial/index.txt \
 
93
        doc/index.txt \
 
94
        doc/index.es.txt
 
95
non_txt_files := \
 
96
       doc/default.css \
 
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)
 
105
htm_files := $(patsubst %.txt, %.html, $(txt_files)) 
 
106
dev_txt_files := $(wildcard $(addsuffix /*.txt, doc/developers))
 
107
dev_htm_files := $(patsubst %.txt, %.html, $(dev_txt_files)) 
 
108
 
 
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 $@
 
111
 
 
112
doc/developers/%.html: doc/developers/%.txt
 
113
        $(rst2html) --stylesheet=../default.css $< $@
 
114
 
 
115
doc/index.html: doc/index.txt
 
116
        $(rst2html) --stylesheet=default.css $< $@
 
117
 
 
118
%.html: %.txt
 
119
        $(rst2html) --stylesheet=../../default.css $< $@
 
120
 
 
121
MAN_DEPENDENCIES = bzrlib/builtins.py \
 
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)) 
 
132
 
 
133
doc/en/user-reference/bzr_man.txt: $(MAN_DEPENDENCIES)
 
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
 
138
 
 
139
doc/en/release-notes/NEWS.txt: NEWS
 
140
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
 
141
 
 
142
MAN_PAGES = man1/bzr.1
 
143
man1/bzr.1: $(MAN_DEPENDENCIES)
 
144
        $(PYTHON) generate_docs.py -o $@ man
 
145
 
 
146
# build a png of our performance task list
 
147
doc/developers/performance.png: doc/developers/performance.dot
 
148
        @echo Generating $@
 
149
        @dot -Tpng $< -o$@ || echo "Dot not installed; skipping generation of $@"
 
150
 
 
151
derived_web_docs = $(htm_files) $(dev_htm_files) doc/developers/performance.png
 
152
WEB_DOCS = $(derived_web_docs) $(non_txt_files)
 
153
ALL_DOCS = $(derived_web_docs) $(MAN_PAGES)
 
154
 
 
155
# the main target to build all the docs
 
156
docs: $(ALL_DOCS)
 
157
 
 
158
# produce a tree containing just the final docs, ready for uploading to the web
 
159
HTMLDIR := html_docs
 
160
html-docs: docs
 
161
        $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) $(HTMLDIR)
 
162
 
 
163
# clean produced docs
 
164
clean-docs:
 
165
        $(PYTHON) tools/win32/ostools.py remove $(ALL_DOCS) \
 
166
        $(HTMLDIR) $(derived_txt_files)
 
167
 
 
168
 
 
169
### Windows Support ###
 
170
 
 
171
# make bzr.exe for win32 with py2exe
 
172
exe:
 
173
        @echo *** Make bzr.exe
 
174
        $(PYTHON) setup.py build_ext -i -f $(PYTHON_BUILDFLAGS)
 
175
        $(PYTHON) setup.py py2exe > py2exe.log
 
176
        $(PYTHON) tools/win32/ostools.py copytodir tools/win32/start_bzr.bat win32_bzr.exe
 
177
        $(PYTHON) tools/win32/ostools.py copytodir tools/win32/bazaar.url win32_bzr.exe
 
178
 
 
179
# win32 installer for bzr.exe
 
180
installer: exe copy-docs
 
181
        @echo *** Make windows installer
 
182
        $(PYTHON) tools/win32/run_script.py cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
 
183
        iscc /Q tools/win32/bzr.iss
 
184
 
 
185
# win32 Python's distutils-based installer
 
186
# require to have Python interpreter installed on win32
 
187
py-inst-24: docs
 
188
        python24 setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
 
189
 
 
190
py-inst-25: docs
 
191
        python25 setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
 
192
 
 
193
python-installer: py-inst-24 py-inst-25
 
194
 
 
195
 
 
196
copy-docs: docs
 
197
        $(PYTHON) tools/win32/ostools.py copytodir README win32_bzr.exe/doc
 
198
        $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) win32_bzr.exe
 
199
 
 
200
# clean on win32 all installer-related files and directories
 
201
clean-win32: clean-docs
 
202
        $(PYTHON) tools/win32/ostools.py remove build
 
203
        $(PYTHON) tools/win32/ostools.py remove win32_bzr.exe
 
204
        $(PYTHON) tools/win32/ostools.py remove py2exe.log
 
205
        $(PYTHON) tools/win32/ostools.py remove tools/win32/bzr.iss
 
206
        $(PYTHON) tools/win32/ostools.py remove bzr-setup*.exe
 
207
        $(PYTHON) tools/win32/ostools.py remove bzr-*win32.exe
 
208
        $(PYTHON) tools/win32/ostools.py remove dist
 
209
 
 
210
.PHONY: dist dist-upload-escudero check-dist-tarball
 
211
 
 
212
# build a distribution tarball.
 
213
#
 
214
# this method of copying the pyrex generated files is a bit ugly; it would be
 
215
# nicer to generate it from distutils.
 
216
#
 
217
# these are a bit ubuntu-specific.
 
218
dist: 
 
219
        version=`./bzr version --short` && \
 
220
        echo Building distribution of bzr $$version && \
 
221
        expbasedir=`mktemp -t -d tmp_bzr_dist.XXXXXXXXXX` && \
 
222
        expdir=$$expbasedir/bzr-$$version && \
 
223
        tarball=$$PWD/../bzr-$$version.tar.gz && \
 
224
        $(MAKE) clean && \
 
225
        $(MAKE) && \
 
226
        bzr export $$expdir && \
 
227
        cp bzrlib/*.c $$expdir/bzrlib/. && \
 
228
        tar cfz $$tarball -C $$expbasedir bzr-$$version && \
 
229
        gpg --detach-sign $$tarball && \
 
230
        echo $$tarball done. && \
 
231
        rm -rf $$expbasedir
 
232
 
 
233
# run all tests in a previously built tarball
 
234
check-dist-tarball:
 
235
        tmpdir=`mktemp -t -d tmp_bzr_check_dist.XXXXXXXXXX` && \
 
236
        version=`./bzr version --short` && \
 
237
        tarball=$$PWD/../bzr-$$version.tar.gz && \
 
238
        tar Cxz $$tmpdir -f $$tarball && \
 
239
        $(MAKE) -C $$tmpdir/bzr-$$version check && \
 
240
        rm -rf $$tmpdir
 
241
 
 
242
 
 
243
# upload previously built tarball to the download directory on bazaar-vcs.org,
 
244
# and verify that it can be downloaded ok.
 
245
dist-upload-escudero:
 
246
        version=`./bzr version --short` && \
 
247
        tarball=../bzr-$$version.tar.gz && \
 
248
        scp $$tarball $$tarball.sig \
 
249
            escudero.ubuntu.com:/srv/bazaar.canonical.com/www/releases/src \
 
250
                && \
 
251
        echo verifying over http... && \
 
252
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz \
 
253
                | diff -s - $$tarball && \
 
254
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz.sig \
 
255
                | diff -s - $$tarball.sig