~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Robert Collins
  • Date: 2007-08-08 02:57:22 UTC
  • mto: This revision was merged to the branch mainline in revision 2687.
  • Revision ID: robertc@robertcollins.net-20070808025722-26wvnolkzmnse7s1
* The ``bzrlib.pack`` interface has changed to use tuples of bytestrings
  rather than just bytestrings, making it easier to represent multiple
  element names. As this interface was not used by any internal facilities
  since it was introduced in 0.18 no API compatibility is being preserved.
  The serialised form of these packs is identical with 0.18 when a single
  element tuple is in use. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2005, 2006, 2007 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
.PHONY: all clean extensions pyflakes api-docs
 
21
 
 
22
all: extensions
 
23
 
 
24
extensions:
 
25
        @echo "building extension modules."
 
26
        python setup.py build_ext -i
 
27
 
 
28
check: docs extensions
 
29
        python -Werror ./bzr selftest -v $(tests)
 
30
        @echo "Running all tests with no locale."
 
31
        LC_CTYPE= LANG=C LC_ALL= ./bzr selftest -v $(tests)
 
32
        python -O -Werror ./bzr selftest -v $(tests)
 
33
 
 
34
check-msgeditor:
 
35
        ./bzr --no-plugins selftest -v msgeditor
 
36
 
 
37
# Run Python style checker (apt-get install pyflakes)
 
38
pyflakes:
 
39
        pyflakes bzrlib
 
40
 
 
41
pyflakes-nounused:
 
42
        # There are many of these warnings at the moment and they're not a
 
43
        # high priority to fix
 
44
        pyflakes bzrlib | grep -v ' imported but unused'
 
45
 
 
46
clean:
 
47
        python setup.py clean
 
48
        -find . -name "*.pyc" -o -name "*.pyo" | xargs rm -f
 
49
        rm -rf test????.tmp
 
50
 
 
51
docfiles = bzr bzrlib
 
52
api-docs:
 
53
        mkdir -p api/html
 
54
        PYTHONPATH=$(PWD) python tools/bzr_epydoc --html -o api/html --docformat 'restructuredtext en' $(docfiles)
 
55
 
 
56
check-api-docs:
 
57
        PYTHONPATH=$(PWD) python tools/bzr_epydoc --check --docformat 'restructuredtext en' $(docfiles)
 
58
 
 
59
 
 
60
# build emacs cross-reference
 
61
tag_files=./bzr ./bzrlib/*py ./bzrlib/selftest/*.py
 
62
TAGS: $(tag_files)
 
63
        ctags-exuberant -e $(tag_files)
 
64
 
 
65
 
 
66
# Produce HTML docs to upload on Canonical server
 
67
HTMLDIR := html_docs
 
68
PRETTYDIR := pretty_docs
 
69
 
 
70
html-docs: docs
 
71
        python tools/win32/ostools.py copytodir $(htm_files) doc/default.css $(HTMLDIR)
 
72
 
 
73
 
 
74
# translate txt docs to html
 
75
doc_dir := doc 
 
76
txt_files := $(wildcard $(addsuffix /*.txt, $(doc_dir))) doc/bzr_man.txt
 
77
htm_files := $(patsubst %.txt, %.html, $(txt_files)) 
 
78
dev_txt_files := $(wildcard $(addsuffix /*.txt, doc/developers))
 
79
dev_htm_files := $(patsubst %.txt, %.html, $(dev_txt_files)) 
 
80
 
 
81
pretty-html-docs: pretty_files
 
82
 
 
83
pretty_docs:
 
84
        python -c "import os; os.mkdir('$(PRETTYDIR)')"
 
85
 
 
86
pretty_files: $(patsubst doc/%.txt, $(PRETTYDIR)/%.html, $(txt_files))
 
87
 
 
88
doc/developers/%.html: doc/developers/%.txt
 
89
        python tools/rst2html.py --link-stylesheet --stylesheet=../default.css --footnote-references=superscript $< $@
 
90
 
 
91
%.html: %.txt
 
92
        python tools/rst2html.py --link-stylesheet --stylesheet=default.css --footnote-references=superscript $< $@
 
93
 
 
94
$(PRETTYDIR)/%.html: pretty_docs doc/%.txt
 
95
        python tools/rst2prettyhtml.py doc/bazaar-vcs.org.kid doc/$*.txt \
 
96
        $(PRETTYDIR)/$*.html
 
97
 
 
98
MAN_DEPENDENCIES = bzrlib/builtins.py \
 
99
                 bzrlib/bundle/commands.py \
 
100
                 bzrlib/conflicts.py \
 
101
                 bzrlib/sign_my_commits.py \
 
102
                 generate_docs.py \
 
103
                 tools/doc_generate/__init__.py \
 
104
                 tools/doc_generate/autodoc_rstx.py
 
105
 
 
106
doc/bzr_man.txt: $(MAN_DEPENDENCIES)
 
107
        python generate_docs.py -o $@ rstx
 
108
 
 
109
MAN_PAGES = man1/bzr.1
 
110
man1/bzr.1: $(MAN_DEPENDENCIES)
 
111
        python generate_docs.py -o $@ man
 
112
 
 
113
ALL_DOCS = $(htm_files) $(MAN_PAGES) $(dev_htm_files) doc/developers/performance.png
 
114
docs: $(ALL_DOCS)
 
115
 
 
116
copy-docs: docs
 
117
        python tools/win32/ostools.py copytodir $(htm_files) \
 
118
                doc/default.css NEWS README \
 
119
                win32_bzr.exe/doc
 
120
        python tools/win32/ostools.py copytodir $(dev_htm_files) \
 
121
                win32_bzr.exe/doc/developers
 
122
 
 
123
# clean produced docs
 
124
clean-docs:
 
125
        python tools/win32/ostools.py remove $(ALL_DOCS) \
 
126
        $(HTMLDIR) $(PRETTYDIR) doc/bzr_man.txt doc/developers/performance.png
 
127
 
 
128
 
 
129
# build a png of our performance task list
 
130
doc/developers/performance.png: doc/developers/performance.dot
 
131
        @echo Generating $@
 
132
        @dot -Tpng $< -o$@ || echo "Dot not installed; skipping generation of $@"
 
133
 
 
134
 
 
135
# make bzr.exe for win32 with py2exe
 
136
exe:
 
137
        @echo *** Make bzr.exe
 
138
        python setup.py build_ext -i -f
 
139
        python setup.py py2exe > py2exe.log
 
140
        python tools/win32/ostools.py copytodir tools/win32/start_bzr.bat win32_bzr.exe
 
141
        python tools/win32/ostools.py copytodir tools/win32/bazaar.url win32_bzr.exe
 
142
 
 
143
# win32 installer for bzr.exe
 
144
installer: exe copy-docs
 
145
        @echo *** Make windows installer
 
146
        cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
 
147
        iscc /Q tools/win32/bzr.iss
 
148
 
 
149
# win32 python's distutils-based installer
 
150
# require to have python interpreter installed on win32
 
151
python-installer: docs
 
152
        python24 setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
 
153
        python25 setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
 
154
 
 
155
 
 
156
# clean on win32 all installer-related files and directories
 
157
clean-win32: clean-docs
 
158
        python tools/win32/ostools.py remove build
 
159
        python tools/win32/ostools.py remove win32_bzr.exe
 
160
        python tools/win32/ostools.py remove py2exe.log
 
161
        python tools/win32/ostools.py remove doc/bzr_man.txt
 
162
        python tools/win32/ostools.py remove tools/win32/bzr.iss
 
163
        python tools/win32/ostools.py remove bzr-setup*.exe
 
164
        python tools/win32/ostools.py remove bzr-*win32.exe
 
165
        python tools/win32/ostools.py remove dist