~bzr-pqm/bzr/bzr.dev

2413.4.1 by John Arbash Meinel
Cherrypick just the epydoc builder changes.
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 pyflakes api-docs
21
22
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
23
all:
1102 by Martin Pool
- merge test refactoring from robertc
24
25
check:
2080.2.2 by John Arbash Meinel
Teach the pqm to treat warnings as errors
26
	python -Werror ./bzr selftest -v $(tests)
1526.1.1 by Robert Collins
Run the test suite with no locale as well as the default locale. Also add a test for build_tree_shape to selftest.
27
	@echo "Running all tests with no locale."
1704.1.1 by Robert Collins
'bzr selftest' now shows a progress bar with the number of tests, and
28
	LC_CTYPE= LANG=C LC_ALL= ./bzr selftest -v $(tests)
2090.2.4 by Martin Pool
Make check should run under python -O too
29
	python -O -Werror ./bzr selftest -v $(tests)
1102 by Martin Pool
- merge test refactoring from robertc
30
1185.33.72 by Martin Pool
Fix commit message template for non-ascii files, and add test for handling of
31
check-msgeditor:
32
	./bzr --no-plugins selftest -v msgeditor
33
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
34
# Run Python style checker (apt-get install pyflakes)
35
pyflakes:
36
	pyflakes bzrlib
37
38
pyflakes-nounused:
39
	# There are many of these warnings at the moment and they're not a
40
	# high priority to fix
41
	pyflakes bzrlib | grep -v ' imported but unused'
42
43
clean:
2366.2.1 by Matthew Fuller
(trivial) Use 'python setup.py' instead of './setup.py'.
44
	python setup.py clean
1185.62.18 by John Arbash Meinel
From Jari Alto: Makefile fixes (clean target error suppression)
45
	-find . -name "*.pyc" -o -name "*.pyo" | xargs rm -f
1427 by Robert Collins
clean up test dirs on make clean
46
	rm -rf test????.tmp
1185.1.21 by Robert Collins
add a clean target
47
2413.4.1 by John Arbash Meinel
Cherrypick just the epydoc builder changes.
48
docfiles = bzr bzrlib
49
api-docs:
50
	mkdir -p api/html
51
	PYTHONPATH=$(PWD) python tools/bzr_epydoc --html -o api/html --docformat 'restructuredtext en' $(docfiles)
52
53
check-api-docs:
54
	PYTHONPATH=$(PWD) python tools/bzr_epydoc --check --docformat 'restructuredtext en' $(docfiles)
1158 by Martin Pool
- make target to build emacs TAGS file
55
56
57
# build emacs cross-reference
58
tag_files=./bzr ./bzrlib/*py ./bzrlib/selftest/*.py
59
TAGS: $(tag_files)
60
	ctags-exuberant -e $(tag_files)
1536.1.1 by Martin Pool
Move in tutorial text from wiki.
61
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
62
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
63
# Produce HTML docs to upload on Canonical server
64
HTMLDIR := html_docs
2054.2.14 by Aaron Bentley
Add 'pretty-docs' target to makefile
65
PRETTYDIR := pretty_docs
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
66
1711.2.129 by John Arbash Meinel
change htmldocs => html-docs, to be consistent with other -docs functions
67
html-docs: docs
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
68
	python tools/win32/ostools.py copytodir $(htm_files) doc/default.css $(HTMLDIR)
69
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
70
71
# translate txt docs to html
72
doc_dir := doc 
2054.2.14 by Aaron Bentley
Add 'pretty-docs' target to makefile
73
txt_files := $(wildcard $(addsuffix /*.txt, $(doc_dir))) doc/bzr_man.txt
74
htm_files := $(patsubst %.txt, %.htm, $(txt_files)) 
75
2054.2.16 by Aaron Bentley
More updates from review comments
76
pretty-html-docs: pretty_files
2054.2.14 by Aaron Bentley
Add 'pretty-docs' target to makefile
77
78
pretty_docs:
79
	python -c "import os; os.mkdir('$(PRETTYDIR)')"
80
81
pretty_files: $(patsubst doc/%.txt, $(PRETTYDIR)/%.htm, $(txt_files))
82
2405.2.1 by Andrew Bennetts
Build HACKING.htm from 'make docs'.
83
doc/HACKING.htm: HACKING
84
	python tools/rst2html.py --link-stylesheet --stylesheet=default.css HACKING doc/HACKING.htm
85
86
doc/%.htm: doc/%.txt 
2054.2.14 by Aaron Bentley
Add 'pretty-docs' target to makefile
87
	python tools/rst2html.py --link-stylesheet --stylesheet=default.css doc/$*.txt doc/$*.htm
88
89
$(PRETTYDIR)/%.htm: pretty_docs doc/%.txt
90
	python tools/rst2prettyhtml.py doc/bazaar-vcs.org.kid doc/$*.txt \
91
	$(PRETTYDIR)/$*.htm
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
92
2425.1.1 by Robert Collins
``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
93
MAN_DEPENDENCIES = bzrlib/builtins.py \
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
94
		 bzrlib/bundle/commands.py \
95
		 bzrlib/conflicts.py \
96
		 bzrlib/sign_my_commits.py \
97
		 generate_docs.py \
98
		 tools/doc_generate/__init__.py \
99
		 tools/doc_generate/autodoc_rstx.py
2425.1.1 by Robert Collins
``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
100
101
doc/bzr_man.txt: $(MAN_DEPENDENCIES)
102
	python generate_docs.py -o $@ rstx
103
104
MAN_PAGES = man1/bzr.1
105
man1/bzr.1: $(MAN_DEPENDENCIES)
106
	python generate_docs.py -o $@ man
107
108
docs: $(htm_files) $(MAN_PAGES) doc/HACKING.htm
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
109
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
110
copy-docs: docs
1861.2.18 by Alexander Belchenko
Makefile: cross-platform actions for building installer
111
	python tools/win32/ostools.py copytodir $(htm_files) doc/default.css NEWS README  win32_bzr.exe/doc
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
112
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
113
# clean produced docs
114
clean-docs:
2425.1.1 by Robert Collins
``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
115
	python tools/win32/ostools.py remove $(htm_files) \
116
	$(HTMLDIR) $(PRETTYDIR) doc/bzr_man.txt $(MAN_PAGES)
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
117
118
119
# make bzr.exe for win32 with py2exe
120
exe:
121
	@echo *** Make bzr.exe
122
	python setup.py py2exe > py2exe.log
123
	python tools/win32/ostools.py copytodir tools/win32/start_bzr.bat win32_bzr.exe
124
	python tools/win32/ostools.py copytodir tools/win32/bazaar.url win32_bzr.exe
125
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
126
# win32 installer for bzr.exe
1982.2.1 by Alexander Belchenko
small but important fix for 'make installer' dependencies
127
installer: exe copy-docs
1861.2.18 by Alexander Belchenko
Makefile: cross-platform actions for building installer
128
	@echo *** Make windows installer
129
	cog.py -d -o tools/win32/bzr.iss tools/win32/bzr.iss.cog
130
	iscc /Q tools/win32/bzr.iss
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
131
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
132
# win32 python's distutils-based installer
133
# require to have python interpreter installed on win32
1860.1.3 by Alexander Belchenko
python-installer:
134
python-installer: docs
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
135
	python setup.py bdist_wininst --install-script="bzr-win32-bdist-postinstall.py" -d .
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
136
137
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
138
# clean on win32 all installer-related files and directories
1928.2.1 by Alexander Belchenko
New target to produce html docs to upload on server
139
clean-win32:
1861.2.18 by Alexander Belchenko
Makefile: cross-platform actions for building installer
140
	python tools/win32/ostools.py remove build
141
	python tools/win32/ostools.py remove win32_bzr.exe
142
	python tools/win32/ostools.py remove py2exe.log
143
	python tools/win32/ostools.py remove doc/*.htm
144
	python tools/win32/ostools.py remove doc/bzr_man.txt
145
	python tools/win32/ostools.py remove tools/win32/bzr.iss
146
	python tools/win32/ostools.py remove bzr-setup*.exe
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
147
	python tools/win32/ostools.py remove bzr-*win32.exe
1861.2.18 by Alexander Belchenko
Makefile: cross-platform actions for building installer
148
	python tools/win32/ostools.py remove dist