~launchpad-pqm/launchpad/devel

1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
1
# This file modified from Zope3/Makefile
2
# Licensed under the ZPL, (c) Zope Corporation and contributors.
3
12190.1.1 by Jonathan Lange
Always use Python 2.6
4
PYTHON=python2.6
8234.1.2 by Gary Poster
checkpoint: this initial buildout variant has several parts working, including run, start, stop, and harness.
5
WD:=$(shell pwd)
6
PY=$(WD)/bin/py
7
PYTHONPATH:=$(WD)/lib:$(WD)/lib/mailman:${PYTHONPATH}
7675.288.1 by Michael Hudson
this seems to help testing against bzr.dev
8
BUILDOUT_CFG=buildout.cfg
4385.1.12 by Stuart Bishop
Remove unmaintainable profiled_ rules, switching to a variable that can be overridden on the command line
9
VERBOSITY=-vv
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
10
4385.1.12 by Stuart Bishop
Remove unmaintainable profiled_ rules, switching to a variable that can be overridden on the command line
11
TESTFLAGS=-p $(VERBOSITY)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
12
TESTOPTS=
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
13
8942.1.1 by Francis J. Lacoste
Silenced bootstrap.py and buildout.py.
14
SHHH=utilities/shhh.py
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
15
HERE:=$(shell pwd)
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
16
11483.4.1 by Jelmer Vernooij
Only assign LPCONFIG if it is not yet set.
17
LPCONFIG?=development
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
18
7675.507.27 by Edwin Grubbs
Prevent "make sprite_css" from running unnecessarily.
19
ICING=lib/canonical/launchpad/icing
20
LP_BUILT_JS_ROOT=${ICING}/build
9887.2.1 by Gary Poster
Makefile for making Python 2.5 a smoother transition
21
LAZR_BUILT_JS_ROOT=lazr-js/build
22
12581.1.4 by Gavin Panella
Also build lazr.js according to JS_BUILD.
23
ifeq ($(LPCONFIG), development)
12581.1.6 by Gavin Panella
Use a raw build by default.
24
JS_BUILD := raw
12581.1.4 by Gavin Panella
Also build lazr.js according to JS_BUILD.
25
else
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
26
JS_BUILD := min
12581.1.4 by Gavin Panella
Also build lazr.js according to JS_BUILD.
27
endif
28
12581.1.6 by Gavin Panella
Use a raw build by default.
29
JS_YUI := $(shell utilities/yui-deps.py $(JS_BUILD:raw=))
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
30
JS_LAZR := $(LAZR_BUILT_JS_ROOT)/lazr.js
12581.1.5 by Gavin Panella
Rename JS_LEGACY to JS_OTHER; it's not clear that it is legacy code.
31
JS_OTHER := $(wildcard lib/canonical/launchpad/javascript/*/*.js)
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
32
JS_LP := $(shell find lib/lp/*/javascript ! -path '*/tests/*' -name '*.js')
12581.1.5 by Gavin Panella
Rename JS_LEGACY to JS_OTHER; it's not clear that it is legacy code.
33
JS_ALL := $(JS_YUI) $(JS_LAZR) $(JS_OTHER) $(JS_LP)
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
34
JS_OUT := $(LP_BUILT_JS_ROOT)/launchpad.js
35
5447.1.2 by Tom Haddon
Constant for shutdown and correct path locations
36
MINS_TO_SHUTDOWN=15
37
6206.1.1 by Tim Penhey
Update development location changes.
38
CODEHOSTING_ROOT=/var/tmp/bazaar.launchpad.dev
39
7430.1.3 by Gavin Panella
Post-review changes, and a few others.
40
BZR_VERSION_INFO = bzr-version-info.py
41
10420.4.1 by Leonard Richardson
Initial implementation.
42
APIDOC_DIR = lib/canonical/launchpad/apidoc
11744.1.1 by Benji York
revert check-in-wadl merge
43
WADL_TEMPLATE = $(APIDOC_DIR).tmp/wadl-$(LPCONFIG)-%(version)s.xml
10420.4.1 by Leonard Richardson
Initial implementation.
44
API_INDEX = $(APIDOC_DIR)/index.html
6770.2.10 by Francis J. Lacoste
Hook documentation generation in Makefile.
45
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
46
# Do not add bin/buildout to this list.
47
# It is impossible to get buildout to tell us all the files it would
48
# build, since each egg's setup.py doesn't tell us that information.
11944.1.1 by Martin Pool
Further updates to parallel Make:
49
#
50
# NB: It's important BUILDOUT_BIN only mentions things genuinely produced by
51
# buildout.
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
52
BUILDOUT_BIN = \
7675.573.2 by Edwin Grubbs
Fixed bin/py rule.
53
    $(PY) bin/apiindex bin/combine-css bin/fl-build-report \
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
54
    bin/fl-credential-ctl bin/fl-install-demo bin/fl-monitor-ctl \
55
    bin/fl-record bin/fl-run-bench bin/fl-run-test bin/googletestservice \
56
    bin/i18ncompile bin/i18nextract bin/i18nmergeall bin/i18nstats \
57
    bin/harness bin/iharness bin/ipy bin/jsbuild bin/jslint bin/jssize \
58
    bin/jstest bin/killservice bin/kill-test-services bin/lint.sh \
7675.573.2 by Edwin Grubbs
Fixed bin/py rule.
59
    bin/lp-windmill bin/retest bin/run bin/sprite-util \
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
60
    bin/start_librarian bin/stxdocs bin/tags bin/test bin/tracereport \
61
    bin/twistd bin/update-download-cache bin/windmill
62
11926.6.2 by Jeroen Vermeulen
Review change, and lint.
63
BUILDOUT_TEMPLATES = buildout-templates/_pythonpath.py.in
64
63.1.71 by Robert Collins
do not make check by default "make" invocation
65
# DO NOT ALTER : this should just build by default
66
default: inplace
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
67
11968.1.2 by Tim Penhey
Reordering rules.
68
schema: build
3024.1.1 by Christian Reis
You can't make schema without make building, so make it mandatory. Patch by Matt Zimmerman <mdz@canonical.com>
69
	$(MAKE) -C database/schema
7430.1.1 by Gavin Panella
Clean up the Makefile, including splittig the API doc task into three.
70
	$(RM) -r /var/tmp/fatsam
1716.1.42 by Christian Reis
merged and unconflicted
71
1716.5.35 by kiko
Add for convenience a newsampledata proxy target to the main Makefile.
72
newsampledata:
73
	$(MAKE) -C database/schema newsampledata
74
11944.1.1 by Martin Pool
Further updates to parallel Make:
75
hosted_branches: $(PY)
8234.1.2 by Gary Poster
checkpoint: this initial buildout variant has several parts working, including run, start, stop, and harness.
76
	$(PY) ./utilities/make-dummy-hosted-branches
77
11944.1.1 by Martin Pool
Further updates to parallel Make:
78
$(API_INDEX): $(BZR_VERSION_INFO) $(PY)
11957.1.2 by Graham Binns
Minor tweak.
79
	rm -rf $(APIDOC_DIR) $(APIDOC_DIR).tmp
11744.1.1 by Benji York
revert check-in-wadl merge
80
	mkdir -p $(APIDOC_DIR).tmp
11604.1.1 by Benji York
extract just the refactorings from my (now abandoned) check-in-wadl branch and
81
	LPCONFIG=$(LPCONFIG) $(PY) ./utilities/create-lp-wadl-and-apidoc.py --force "$(WADL_TEMPLATE)"
11744.1.1 by Benji York
revert check-in-wadl merge
82
	mv $(APIDOC_DIR).tmp $(APIDOC_DIR)
7430.1.1 by Gavin Panella
Clean up the Makefile, including splittig the API doc task into three.
83
10466.8.2 by Leonard Richardson
Minor cleanup.
84
apidoc: compile $(API_INDEX)
85
12314.2.3 by Jonathan Lange
Add a top-level make target.
86
# Used to generate HTML developer documentation for Launchpad.
87
doc:
88
	$(MAKE) -C doc/ html
89
10870.1.1 by Maris Fogels
Added a new target for running the test suite in an ec2 image. Removed the WindmillLayer from that target. Fixed up the Makefile API a bit.
90
# Run by PQM.
8665.1.5 by Francis J. Lacoste
Add check_config target.
91
check_config: build
92
	bin/test -m canonical.config.tests -vvt test_config
93
10635.4.2 by Maris Fogels
Added a simple script and makefile check to ensure that the current database schema is up-to-date before we try and fire up the application server.
94
check_schema: build
95
	${PY} utilities/check-db-revision.py
96
8780.1.1 by Julian Edwards
Make clean a dependency of check in the top-level Makefile
97
# Clean before running the test suite, since the build might fail depending
98
# what source changes happened. (e.g. apidoc depends on interfaces)
99
check: clean build
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
100
	# Run all tests. test_on_merge.py takes care of setting up the
8234.1.6 by Gary Poster
fold bin/py into compile
101
	# database.
10870.1.1 by Maris Fogels
Added a new target for running the test suite in an ec2 image. Removed the WindmillLayer from that target. Fixed up the Makefile API a bit.
102
	${PY} -t ./test_on_merge.py $(VERBOSITY) $(TESTOPTS)
103
8791.1.2 by Maris Fogels
Added a Makefile target for running all of the Windmill test suites.
104
jscheck: build
105
	# Run all JavaScript integration tests.  The test runner takes care of
106
	# setting up the test environment.
107
	@echo
108
	@echo "Running the JavaScript integration test suite"
109
	@echo
10870.1.1 by Maris Fogels
Added a new target for running the test suite in an ec2 image. Removed the WindmillLayer from that target. Fixed up the Makefile API a bit.
110
	bin/test $(VERBOSITY) $(TESTOPTS) --layer=WindmillLayer
9230.3.1 by Bjorn Tillenius
Run only the new-style Windmill tests in 'make check'. Add another make target (jscheck_functest) to run the old tests.
111
112
jscheck_functest: build
113
    # Run the old functest Windmill integration tests.  The test runner
114
    # takes care of setting up the test environment.
115
	@echo
116
	@echo "Running Windmill funtest integration test suite"
117
	@echo
9012.1.10 by Maris Fogels
Made the jscheck target use bin/jstest
118
	bin/jstest
8791.1.2 by Maris Fogels
Added a Makefile target for running all of the Windmill test suites.
119
8514.1.1 by Barry Warsaw
By default, disable the entire MailmanLayer tests. Most of these tests are
120
check_mailman: build
121
	# Run all tests, including the Mailman integration
122
	# tests. test_on_merge.py takes care of setting up the database.
10870.1.1 by Maris Fogels
Added a new target for running the test suite in an ec2 image. Removed the WindmillLayer from that target. Fixed up the Makefile API a bit.
123
	${PY} -t ./test_on_merge.py $(VERBOSITY) $(TESTOPTS) \
124
		--layer=MailmanLayer
8514.1.1 by Barry Warsaw
By default, disable the entire MailmanLayer tests. Most of these tests are
125
11944.1.1 by Martin Pool
Further updates to parallel Make:
126
lint: ${PY}
8567.1.1 by Gary Poster
fix lint
127
	@bash ./bin/lint.sh
2513 by Canonical.com Patch Queue Manager
[trivial] Implement make lintmerge.
128
11944.1.1 by Martin Pool
Further updates to parallel Make:
129
lint-verbose: ${PY}
8567.1.1 by Gary Poster
fix lint
130
	@bash ./bin/lint.sh -v
4935.3.3 by Curtis Hovey
Updated a few files to illustrate how lint works.
131
12408.1.7 by Jonathan Lange
More stuff that we can just autogenerate
132
logs:
133
	mkdir logs
134
11944.1.1 by Martin Pool
Further updates to parallel Make:
135
xxxreport: $(PY)
9641.1.13 by Gary Poster
try a work-around for Hardy Heron dislike of scripts as executables in shebang lines. Also revert to using a shell script for bin/py rather than a Python script.
136
	${PY} -t ./utilities/xxxreport.py -f csv -o xxx-report.csv ./
6912.5.12 by Curtis Hovey
Revised Makefile rules for xxxreport.
137
11944.1.1 by Martin Pool
Further updates to parallel Make:
138
check-configs: $(PY)
8234.1.2 by Gary Poster
checkpoint: this initial buildout variant has several parts working, including run, start, stop, and harness.
139
	${PY} utilities/check-configs.py
4895.2.2 by Barry Warsaw
SteveA suggests checking config files in two ways:
140
1746 by Canonical.com Patch Queue Manager
[r=jamesh] Simple database restoration script and sampledata fixes
141
pagetests: build
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
142
	env PYTHONPATH=$(PYTHONPATH) bin/test test_pages
3044.1.15 by James Troup
Fix 'suspicious' line in Makefile to quiet emacs
143
12408.1.7 by Jonathan Lange
More stuff that we can just autogenerate
144
inplace: build logs clean_logs
11968.1.1 by Tim Penhey
Make the codehosting directory and the rewrite file when making 'build'. This avoids the problem when apache makes the rewrite file and you can't remove it without sudo.
145
	mkdir -p $(CODEHOSTING_ROOT)/mirrors
11968.1.2 by Tim Penhey
Reordering rules.
146
	mkdir -p $(CODEHOSTING_ROOT)/config
147
	mkdir -p /var/tmp/bzrsync
11968.1.1 by Tim Penhey
Make the codehosting directory and the rewrite file when making 'build'. This avoids the problem when apache makes the rewrite file and you can't remove it without sudo.
148
	touch $(CODEHOSTING_ROOT)/rewrite.log
149
	chmod 777 $(CODEHOSTING_ROOT)/rewrite.log
11968.1.2 by Tim Penhey
Reordering rules.
150
	touch $(CODEHOSTING_ROOT)/config/launchpad-lookup.txt
151
152
build: compile apidoc jsbuild css_combine
7675.438.2 by Guilherme Salgado
Combine all the css files we need in a single combo.css, which is now the only one included in our base template
153
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
154
css_combine: sprite_css bin/combine-css
7675.438.2 by Guilherme Salgado
Combine all the css files we need in a single combo.css, which is now the only one included in our base template
155
	${SHHH} bin/combine-css
9570.14.1 by Bjorn Tillenius
Use lazr-js as an egg.
156
12622.4.1 by Curtis Hovey
Extracted sprite css to sprite.css.
157
sprite_css: ${LP_BUILT_JS_ROOT}/sprite.css
7675.507.27 by Edwin Grubbs
Prevent "make sprite_css" from running unnecessarily.
158
12622.4.1 by Curtis Hovey
Extracted sprite css to sprite.css.
159
${LP_BUILT_JS_ROOT}/sprite.css: bin/sprite-util ${ICING}/sprite.css.in ${ICING}/icon-sprites.positioning
7675.507.20 by Edwin Grubbs
Generating css correctly.
160
	${SHHH} bin/sprite-util create-css
161
7675.507.23 by Edwin Grubbs
Completely working.
162
sprite_image:
163
	${SHHH} bin/sprite-util create-image
164
11944.1.2 by Martin Pool
Don't need to see this message about jsbuild printed every time
165
# We absolutely do not want to include the lazr.testing module and
166
# its jsTestDriver test harness modifications in the lazr.js and
167
# launchpad.js roll-up files.  They fiddle with built-in functions!
168
# See Bug 482340.
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
169
jsbuild_lazr: bin/jsbuild
12581.1.4 by Gavin Panella
Also build lazr.js according to JS_BUILD.
170
	${SHHH} bin/jsbuild \
171
	    --builddir $(LAZR_BUILT_JS_ROOT) \
172
	    --exclude testing/ --filetype $(JS_BUILD) \
173
	    --copy-yui-to $(LAZR_BUILT_JS_ROOT)/yui
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
174
175
$(JS_YUI) $(JS_LAZR): jsbuild_lazr
176
177
$(JS_OUT): $(JS_ALL)
178
ifeq ($(JS_BUILD), min)
179
	cat $^ | $(PY) -m jsmin > $@
180
else
181
	cat $^ > $@
182
endif
183
184
jsbuild: $(JS_OUT)
6920.1.7 by Leonard Richardson
Fixed the makefile to run apidoc when building.
185
8329.1.7 by Gary Poster
convert layout to have eggs and download-cache on top; and add make target for eggs folder, for deployment.
186
eggs:
8357.5.18 by Gary Poster
fix buildout issues
187
	# Usually this is linked via link-external-sourcecode, but in
8329.1.7 by Gary Poster
convert layout to have eggs and download-cache on top; and add make target for eggs folder, for deployment.
188
	# deployment we create this ourselves.
189
	mkdir eggs
190
10137.1.1 by Bjorn Tillenius
Automatically call utilities/link-external-sourcecode if LP_SOURCEDEPS_PATH is set.
191
# LP_SOURCEDEPS_PATH should point to the sourcecode directory, but we
192
# want the parent directory where the download-cache and eggs directory
193
# are. We re-use the variable that is using for the rocketfuel-get script.
8329.1.7 by Gary Poster
convert layout to have eggs and download-cache on top; and add make target for eggs folder, for deployment.
194
download-cache:
10137.1.1 by Bjorn Tillenius
Automatically call utilities/link-external-sourcecode if LP_SOURCEDEPS_PATH is set.
195
ifdef LP_SOURCEDEPS_PATH
196
	utilities/link-external-sourcecode $(LP_SOURCEDEPS_PATH)/..
197
else
8495.1.1 by Gary Poster
add comment and correct error message IRT buildout changes
198
	@echo "Missing ./download-cache."
8357.5.18 by Gary Poster
fix buildout issues
199
	@echo "Developers: please run utilities/link-external-sourcecode."
8502.1.1 by Gary Poster
try to rip out any building of download-cache, even on pqm
200
	@exit 1
10137.1.1 by Bjorn Tillenius
Automatically call utilities/link-external-sourcecode if LP_SOURCEDEPS_PATH is set.
201
endif
8329.1.7 by Gary Poster
convert layout to have eggs and download-cache on top; and add make target for eggs folder, for deployment.
202
11944.1.1 by Martin Pool
Further updates to parallel Make:
203
buildonce_eggs: $(PY)
10016.1.1 by Gary Poster
make target for building eggs once
204
	find eggs -name '*.pyc' -exec rm {} \;
205
8329.1.7 by Gary Poster
convert layout to have eggs and download-cache on top; and add make target for eggs folder, for deployment.
206
# The download-cache dependency comes *before* eggs so that developers get the
11926.6.2 by Jeroen Vermeulen
Review change, and lint.
207
# warning before the eggs directory is made.  The target for the eggs
208
# directory is only there for deployment convenience.
11474.1.3 by Gary Poster
fix Makefile change and add comment
209
# Note that the buildout version must be maintained here and in versions.cfg
210
# to make sure that the build does not go over the network.
11944.1.1 by Martin Pool
Further updates to parallel Make:
211
#
212
# buildout won't touch files that would have the same contents, but for Make's
213
# sake we need them to get fresh timestamps, so we touch them after building.
8329.1.7 by Gary Poster
convert layout to have eggs and download-cache on top; and add make target for eggs folder, for deployment.
214
bin/buildout: download-cache eggs
9097.1.1 by Gary Poster
squelch PYTHONPATH from our scripts. That was a bad idea; will revert in zc.buildout
215
	$(SHHH) PYTHONPATH= $(PYTHON) bootstrap.py\
10303.1.10 by Gary Poster
update to newer version of buildout branch
216
		--setup-source=ez_setup.py \
11474.1.3 by Gary Poster
fix Makefile change and add comment
217
		--download-base=download-cache/dist --eggs=eggs \
11474.1.1 by Gary Poster
upgrade to newer versions of libraries
218
		--version=1.5.1
11944.1.1 by Martin Pool
Further updates to parallel Make:
219
	touch --no-create $@
8329.1.2 by Gary Poster
specify zope.interface version; make bootstrap and buildout only called when necessary from make file; make change to rocketfuel config file unnecessary, so rocketfuel-setup does not need to be called; make twistd calls include sys.path in PYTHONPATH.
220
10916.1.2 by Gary Poster
add comments per review
221
# This target is used by LOSAs to prepare a build to be pushed out to
222
# destination machines.  We only want eggs: they are the expensive bits,
223
# and the other bits might run into problems like bug 575037.  This
224
# target runs buildout, and then removes everything created except for
225
# the eggs.
11944.1.1 by Martin Pool
Further updates to parallel Make:
226
build_eggs: $(BUILDOUT_BIN)
10916.1.1 by Gary Poster
Make a new build target to allow LOSAs to pre-build eggs without pre-building scripts.
227
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
228
# This builds bin/py and all the other bin files except bin/buildout.
10469.1.1 by Edwin Grubbs
Not really working yet.
229
# Remove the target before calling buildout to ensure that buildout
230
# updates the timestamp.
11944.1.1 by Martin Pool
Further updates to parallel Make:
231
buildout_bin: $(BUILDOUT_BIN)
232
233
# buildout won't touch files that would have the same contents, but for Make's
234
# sake we need them to get fresh timestamps, so we touch them after building.
235
#
236
# If we listed every target on the left-hand side, a parallel make would try
237
# multiple copies of this rule to build them all.  Instead, we nominally build
238
# just $(PY), and everything else is implicitly updated by that.
239
$(PY): bin/buildout versions.cfg $(BUILDOUT_CFG) setup.py \
11926.6.2 by Jeroen Vermeulen
Review change, and lint.
240
		$(BUILDOUT_TEMPLATES)
9097.1.1 by Gary Poster
squelch PYTHONPATH from our scripts. That was a bad idea; will revert in zc.buildout
241
	$(SHHH) PYTHONPATH= ./bin/buildout \
242
                configuration:instance_name=${LPCONFIG} -c $(BUILDOUT_CFG)
11944.1.1 by Martin Pool
Further updates to parallel Make:
243
	touch $@
244
245
$(subst $(PY),,$(BUILDOUT_BIN)): $(PY)
8329.1.2 by Gary Poster
specify zope.interface version; make bootstrap and buildout only called when necessary from make file; make change to rocketfuel config file unnecessary, so rocketfuel-setup does not need to be called; make twistd calls include sys.path in PYTHONPATH.
246
7675.811.1 by Gary Poster
"make compile" now compiles templates, dixing bug 632218
247
# bin/compile_templates is responsible for building all chameleon templates,
248
# of which there is currently one, but of which many more are coming.
11944.1.1 by Martin Pool
Further updates to parallel Make:
249
compile: $(PY) $(BZR_VERSION_INFO)
11128.10.10 by Michael Hudson
create vostok-archive dir in make compile
250
	mkdir -p /var/tmp/vostok-archive
1831 by Canonical.com Patch Queue Manager
New config machinery, database helpers and oddsnsods required for staging
251
	${SHHH} $(MAKE) -C sourcecode build PYTHON=${PYTHON} \
10637.3.3 by Guilherme Salgado
Get rid of PYTHON_VERSION from all Makefiles and use a customized pygettextpo which uses the default system python instead of what's defined in PYTHON_VERSION
252
	    LPCONFIG=${LPCONFIG}
9641.1.13 by Gary Poster
try a work-around for Hardy Heron dislike of scripts as executables in shebang lines. Also revert to using a shell script for bin/py rather than a Python script.
253
	${SHHH} LPCONFIG=${LPCONFIG} ${PY} -t buildmailman.py
7675.811.1 by Gary Poster
"make compile" now compiles templates, dixing bug 632218
254
	bin/compile_templates
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
255
256
test_build: build
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
257
	bin/test $(TESTFLAGS) $(TESTOPTS)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
258
259
test_inplace: inplace
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
260
	bin/test $(TESTFLAGS) $(TESTOPTS)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
261
262
ftest_build: build
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
263
	bin/test -f $(TESTFLAGS) $(TESTOPTS)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
264
265
ftest_inplace: inplace
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
266
	bin/test -f $(TESTFLAGS) $(TESTOPTS)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
267
7675.624.31 by Tim Penhey
Make the makefile use the correct name for the merge proposal job script.
268
merge-proposal-jobs:
7675.624.12 by Tim Penhey
Rename mpcreationjobs -> merge-proposal-email-jobs.
269
	# Handle merge proposal email jobs.
7675.624.38 by Tim Penhey
Make the merge-proposal-job script run verbosely.
270
	$(PY) cronscripts/merge-proposal-jobs.py -v
9750.3.1 by Aaron Bentley
Add mpcreationsjobs to sync_branches make target
271
10635.4.2 by Maris Fogels
Added a simple script and makefile check to ensure that the current database schema is up-to-date before we try and fire up the application server.
272
run: check_schema inplace stop
9232.2.3 by Stuart Bishop
Start up a local memcached in the development environment. Config items for memcache client.
273
	bin/run -r librarian,google-webservice,memcached -i $(LPCONFIG)
4004.3.14 by jml at canonical
'make run' only runs webserver & librarian. 'make run_all' runs everything.
274
12408.1.5 by Jonathan Lange
Delete 'run.gdb'. We can just make it as we need it.
275
run.gdb:
276
	echo 'run' > run.gdb
277
278
start-gdb: check_schema inplace stop support_files run.gdb
8690.4.2 by Francis J. Lacoste
Add a -i command line argument that sets the instance name.
279
	nohup gdb -x run.gdb --args bin/run -i $(LPCONFIG) \
8665.1.3 by Francis J. Lacoste
Automatically set the ZConfig configuration file.
280
		-r librarian,google-webservice
6781.1.1 by Herb McNew
Applied the patch that kiko provided and that was tested on staging. Allows us to run an app server instance under gdb.
281
		> ${LPCONFIG}-nohup.out 2>&1 &
282
11474.5.13 by Tim Penhey
Update the tests to the expected behaviour when resolving names that don't directly represent a branch unique name. Now the resolver doesn't care as much, and passes the concern over to the codehosting path resolver.
283
run_all: check_schema inplace stop
11149.12.83 by John Arbash Meinel
Review feedback from Michael Hudson.
284
	bin/run -r librarian,sftp,forker,mailman,codebrowse,google-webservice,memcached \
10067.1.1 by Michael Hudson
make make run_all work again
285
	    -i $(LPCONFIG)
7528.1.6 by Michael Hudson
document new config schema values
286
7551.3.10 by Michael Hudson
the real world meets the makefile
287
run_codebrowse: build
9590.1.135 by Michael Hudson
add files from launchpad-loggerhead tree to launchpad tree
288
	BZR_PLUGIN_PATH=bzrplugins $(PY) scripts/start-loggerhead.py -f
7528.1.1 by Michael Hudson
add makefile targets and symlinks for running loggerhead in the launchpad tree
289
7551.3.10 by Michael Hudson
the real world meets the makefile
290
start_codebrowse: build
9590.1.135 by Michael Hudson
add files from launchpad-loggerhead tree to launchpad tree
291
	BZR_PLUGIN_PATH=$(shell pwd)/bzrplugins $(PY) scripts/start-loggerhead.py
7528.1.1 by Michael Hudson
add makefile targets and symlinks for running loggerhead in the launchpad tree
292
293
stop_codebrowse:
9590.1.135 by Michael Hudson
add files from launchpad-loggerhead tree to launchpad tree
294
	$(PY) scripts/stop-loggerhead.py
7528.1.1 by Michael Hudson
add makefile targets and symlinks for running loggerhead in the launchpad tree
295
11474.5.13 by Tim Penhey
Update the tests to the expected behaviour when resolving names that don't directly represent a branch unique name. Now the resolver doesn't care as much, and passes the concern over to the codehosting path resolver.
296
run_codehosting: check_schema inplace stop
11149.12.32 by John Arbash Meinel
I think I have the endpoints connected up.
297
	bin/run -r librarian,sftp,forker,codebrowse -i $(LPCONFIG)
10289.1.2 by Paul Hummer
Added a run_codehosting make target that just runs the codehosting essentials
298
7675.717.1 by Tom Haddon
For the librarian startup, we only need to compile, not to build
299
start_librarian: compile
8971.2.1 by Stuart Bishop
Add Librarian startup script
300
	bin/start_librarian
301
302
stop_librarian:
303
	bin/killservice librarian
304
7182.3.1 by Gary Poster
sketch to fix bugs 245368 and 268446.
305
pull_branches: support_files
9580.4.1 by Henning Eggers
Fix the bug.
306
	$(PY) cronscripts/supermirror-pull.py
4706.2.8 by Jonathan Lange
Add 'pull', 'scan' and 'rewritemap' targets to Makefile.
307
7735.2.2 by Michael Hudson
bye bye more stuff
308
scan_branches:
4706.2.11 by Jonathan Lange
Add comments and a sync_branches target that does a pull and scan.
309
	# Scan branches from the filesystem into the database.
7675.458.10 by Paul Hummer
Added changed the Makefile rule to use the new script.
310
	$(PY) cronscripts/scan_branches.py
4706.2.8 by Jonathan Lange
Add 'pull', 'scan' and 'rewritemap' targets to Makefile.
311
7675.624.31 by Tim Penhey
Make the makefile use the correct name for the merge proposal job script.
312
sync_branches: pull_branches scan_branches merge-proposal-jobs
4706.2.11 by Jonathan Lange
Add comments and a sync_branches target that does a pull and scan.
313
7430.1.3 by Gavin Panella
Post-review changes, and a few others.
314
$(BZR_VERSION_INFO):
7176.4.1 by Tom Haddon
Only create/recreate the bzr_version_info file if it's changed/needed
315
	scripts/update-bzr-version-info.sh
809 by Canonical.com Patch Queue Manager
Nuke some arch-tags
316
10466.8.8 by Leonard Richardson
Removed reference to DEVEL_WADL_FILE.
317
support_files: $(API_INDEX) $(BZR_VERSION_INFO)
7182.3.1 by Gary Poster
sketch to fix bugs 245368 and 268446.
318
8777.3.2 by Tom Haddon
Clean up make stop and make start by having them use the initscript-stop and initscript-start targets so we're not duplicating. Also clean up the comments for those as appropriate
319
# Intended for use on developer machines
320
start: inplace stop support_files initscript-start
321
1884 by Canonical.com Patch Queue Manager
[trivial] run-as-daemon targets
322
# Run as a daemon - hack using nohup until we move back to using zdaemon
7182.3.1 by Gary Poster
sketch to fix bugs 245368 and 268446.
323
# properly. We also should really wait until services are running before
1937 by Canonical.com Patch Queue Manager
[r=jamesh] Common PID file handing module
324
# exiting, as running 'make stop' too soon after running 'make start'
8777.3.2 by Tom Haddon
Clean up make stop and make start by having them use the initscript-stop and initscript-start targets so we're not duplicating. Also clean up the comments for those as appropriate
325
# will not work as expected. For use on production servers, where
326
# we know we don't need the extra steps in a full "make start"
327
# because of how the code is deployed/built.
7182.3.1 by Gary Poster
sketch to fix bugs 245368 and 268446.
328
initscript-start:
8690.4.2 by Francis J. Lacoste
Add a -i command line argument that sets the instance name.
329
	nohup bin/run -i $(LPCONFIG) > ${LPCONFIG}-nohup.out 2>&1 &
7143.1.1 by Tom Haddon
Add stripped down version of 'make start' as 'make initscript-start' for use on production servers where dependencies used in 'make start' aren't needed
330
8777.3.2 by Tom Haddon
Clean up make stop and make start by having them use the initscript-stop and initscript-start targets so we're not duplicating. Also clean up the comments for those as appropriate
331
# Intended for use on developer machines
332
stop: build initscript-stop
333
1937 by Canonical.com Patch Queue Manager
[r=jamesh] Common PID file handing module
334
# Kill launchpad last - other services will probably shutdown with it,
8777.3.2 by Tom Haddon
Clean up make stop and make start by having them use the initscript-stop and initscript-start targets so we're not duplicating. Also clean up the comments for those as appropriate
335
# so killing them after is a race condition. For use on production
9012.1.10 by Maris Fogels
Made the jscheck target use bin/jstest
336
# servers, where we know we don't need the extra steps in a full
8777.3.2 by Tom Haddon
Clean up make stop and make start by having them use the initscript-stop and initscript-start targets so we're not duplicating. Also clean up the comments for those as appropriate
337
# "make stop" because of how the code is deployed/built.
8777.3.1 by Tom Haddon
Create an initscript-stop target for use on production servers
338
initscript-stop:
10693.1.1 by William Grant
Remove all of buildd-sequencer, except the config keys (due to bug #557271).
339
	bin/killservice librarian launchpad mailman
8777.3.1 by Tom Haddon
Create an initscript-stop target for use on production servers
340
5447.1.1 by Tom Haddon
Adding shutdown option to makefile
341
shutdown: scheduleoutage stop
7430.1.1 by Gavin Panella
Clean up the Makefile, including splittig the API doc task into three.
342
	$(RM) +maintenancetime.txt
5447.1.1 by Tom Haddon
Adding shutdown option to makefile
343
344
scheduleoutage:
5447.1.2 by Tom Haddon
Constant for shutdown and correct path locations
345
	echo Scheduling outage in ${MINS_TO_SHUTDOWN} mins
346
	date --iso-8601=minutes -u -d +${MINS_TO_SHUTDOWN}mins > +maintenancetime.txt
347
	echo Sleeping ${MINS_TO_SHUTDOWN} mins
348
	sleep ${MINS_TO_SHUTDOWN}m
5447.1.1 by Tom Haddon
Adding shutdown option to makefile
349
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
350
harness: bin/harness
8234.1.2 by Gary Poster
checkpoint: this initial buildout variant has several parts working, including run, start, stop, and harness.
351
	bin/harness
1716.5.37 by kiko
Add harness Makefile convenience shortcut
352
7675.573.1 by Edwin Grubbs
Run buildout if sprite-util does not exist.
353
iharness: bin/iharness
8234.1.2 by Gary Poster
checkpoint: this initial buildout variant has several parts working, including run, start, stop, and harness.
354
	bin/iharness
3673.1.10 by David Allouche
add iharness target to ./Makefile, that runs ipython instead of plain python
355
1716.5.42 by kiko
Add a rebuildfti Makefile target, and make newsampledata use it
356
rebuildfti:
357
	@echo Rebuilding FTI indexes on launchpad_dev database
8234.1.2 by Gary Poster
checkpoint: this initial buildout variant has several parts working, including run, start, stop, and harness.
358
	$(PY) database/schema/fti.py -d launchpad_dev --force
1716.5.42 by kiko
Add a rebuildfti Makefile target, and make newsampledata use it
359
9887.2.1 by Gary Poster
Makefile for making Python 2.5 a smoother transition
360
clean_js:
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
361
	$(RM) $(JS_OUT)
9887.2.1 by Gary Poster
Makefile for making Python 2.5 a smoother transition
362
	$(RM) -r $(LAZR_BUILT_JS_ROOT)
363
10916.1.1 by Gary Poster
Make a new build target to allow LOSAs to pre-build eggs without pre-building scripts.
364
clean_buildout:
365
	$(RM) -r bin
366
	$(RM) -r parts
367
	$(RM) -r develop-eggs
368
	$(RM) .installed.cfg
369
	$(RM) -r build
370
	$(RM) _pythonpath.py
371
12408.1.6 by Jonathan Lange
Factor out some of the log cleaning
372
clean_logs:
373
	$(RM) logs/thread*.request
374
375
clean: clean_js clean_buildout clean_logs
7430.1.1 by Gavin Panella
Clean up the Makefile, including splittig the API doc task into three.
376
	$(MAKE) -C sourcecode/pygettextpo clean
9887.2.1 by Gary Poster
Makefile for making Python 2.5 a smoother transition
377
	# XXX gary 2009-11-16 bug 483782
378
	# The pygettextpo Makefile should have this next line in it for its make
379
	# clean, and then we should remove this line.
380
	$(RM) sourcecode/pygpgme/gpgme/*.so
9141.1.1 by Francis J. Lacoste
Only run make clean for Mailman if the Makefile has been created.
381
	if test -f sourcecode/mailman/Makefile; then \
382
		$(MAKE) -C sourcecode/mailman clean; \
383
	fi
9098.3.1 by Francis J. Lacoste
Don't clean eggs in make clean. Properly clean mailman.
384
	find . -path ./eggs -prune -false -o \
385
		-type f \( -name '*.o' -o -name '*.so' -o -name '*.la' -o \
7675.811.1 by Gary Poster
"make compile" now compiles templates, dixing bug 632218
386
	    -name '*.lo' -o -name '*.py[co]' -o -name '*.dll' -o \
387
	    -name '*.pt.py' \) \
7430.1.1 by Gavin Panella
Clean up the Makefile, including splittig the API doc task into three.
388
	    -print0 | xargs -r0 $(RM)
8294.7.14 by Francis J. Lacoste
Clean a lot of junk directories in /var/tmp that can cause trouble.
389
	$(RM) -r lib/mailman
12581.1.3 by Gavin Panella
Get most javascript building according to JS_BUILD.
390
	$(RM) -rf $(LP_BUILT_JS_ROOT)/*
12019.2.1 by Tim Penhey
Fix the Makefile for LOSA building again.
391
	$(RM) -rf $(CODEHOSTING_ROOT)
11744.1.1 by Benji York
revert check-in-wadl merge
392
	$(RM) -rf $(APIDOC_DIR)
393
	$(RM) -rf $(APIDOC_DIR).tmp
7430.1.3 by Gavin Panella
Post-review changes, and a few others.
394
	$(RM) $(BZR_VERSION_INFO)
10713.1.1 by Gary Poster
use new version of z3c.recipe.filetemplate and zc.buildout fork to use relative paths.
395
	$(RM) +config-overrides.zcml
8294.7.14 by Francis J. Lacoste
Clean a lot of junk directories in /var/tmp that can cause trouble.
396
	$(RM) -rf \
397
			  /var/tmp/builddmaster \
398
			  /var/tmp/bzrsync \
399
			  /var/tmp/codehosting.test \
400
			  /var/tmp/codeimport \
11737.4.2 by Robert Collins
fatsam.appserver isn't used anywhere.
401
			  /var/tmp/fatsam.test \
8294.7.14 by Francis J. Lacoste
Clean a lot of junk directories in /var/tmp that can cause trouble.
402
			  /var/tmp/lperr \
403
			  /var/tmp/lperr.test \
404
			  /var/tmp/mailman \
405
			  /var/tmp/mailman-xmlrpc.test \
406
			  /var/tmp/ppa \
407
			  /var/tmp/ppa.test \
12398.1.13 by Jonathan Lange
Rename zeca config section and use a different path by default.
408
			  /var/tmp/testkeyserver
10546.1.2 by Michael Hudson
run tests in ec2 with /var/tmp/launchpad_mailqueue read-only
409
	# /var/tmp/launchpad_mailqueue is created read-only on ec2test
410
	# instances.
10546.1.3 by Michael Hudson
learn more shell, hudson!
411
	if [ -w /var/tmp/launchpad_mailqueue ]; then $(RM) -rf /var/tmp/launchpad_mailqueue; fi
10546.1.2 by Michael Hudson
run tests in ec2 with /var/tmp/launchpad_mailqueue read-only
412
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
413
414
realclean: clean
7430.1.1 by Gavin Panella
Clean up the Makefile, including splittig the API doc task into three.
415
	$(RM) TAGS tags
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
416
417
zcmldocs:
7430.1.3 by Gavin Panella
Post-review changes, and a few others.
418
	mkdir -p doc/zcml/namespaces.zope.org
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
419
	bin/stxdocs \
7430.1.3 by Gavin Panella
Post-review changes, and a few others.
420
	    -f sourcecode/zope/src/zope/app/zcmlfiles/meta.zcml \
421
	    -o doc/zcml/namespaces.zope.org
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
422
2237 by Canonical.com Patch Queue Manager
[trivial] Libraraian upstream tweaks, which demonstrate the the feature is broken (?)
423
potemplates: launchpad.pot
424
425
# Generate launchpad.pot by extracting message ids from the source
426
launchpad.pot:
8234.1.4 by Gary Poster
test works, nominally; and bin/py is a bit more functional. problems with import warnings are more serious because they cause tests to fail.
427
	bin/i18nextract.py
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
428
9948.1.1 by Maris Fogels
Make the apache process restart after installing the new configuration and modules, to prevent the new modules from segfaulting because of bugs.
429
# Called by the rocketfuel-setup script. You probably don't want to run this
430
# on its own.
5543.3.2 by Tim Penhey
Alterations to the way codebrowse is started, and updating rocketfuel-setup
431
install: reload-apache
432
6991.1.1 by Guilherme Salgado
Serve *.launchpad.dev through https
433
copy-certificates:
7029.3.3 by Henning Eggers
Added creation of /etc/apache/ssl directory to Makefile before copying files there, as it might not exist.
434
	mkdir -p /etc/apache2/ssl
6991.1.1 by Guilherme Salgado
Serve *.launchpad.dev through https
435
	cp configs/development/launchpad.crt /etc/apache2/ssl/
436
	cp configs/development/launchpad.key /etc/apache2/ssl/
437
438
copy-apache-config:
7459.5.19 by Michael Hudson
mandatory sed-implied comment
439
	# We insert the absolute path to the branch-rewrite script
440
	# into the Apache config as we copy the file into position.
7459.5.2 by Michael Hudson
add somewhat working script
441
	sed -e 's,%BRANCH_REWRITE%,$(shell pwd)/scripts/branch-rewrite.py,' configs/development/local-launchpad-apache > /etc/apache2/sites-available/local-launchpad
11926.6.2 by Jeroen Vermeulen
Review change, and lint.
442
	cp configs/development/local-vostok-apache \
443
		/etc/apache2/sites-available/local-vostok
8898.1.1 by Michael Hudson
chown the log file when installing the apache config
444
	touch /var/tmp/bazaar.launchpad.dev/rewrite.log
445
	chown $(SUDO_UID):$(SUDO_GID) /var/tmp/bazaar.launchpad.dev/rewrite.log
6991.1.1 by Guilherme Salgado
Serve *.launchpad.dev through https
446
447
enable-apache-launchpad: copy-apache-config copy-certificates
5543.3.2 by Tim Penhey
Alterations to the way codebrowse is started, and updating rocketfuel-setup
448
	a2ensite local-launchpad
11128.10.3 by Michael Hudson
remove vostok from launchpad apache config; install vostok apache config
449
	a2ensite local-vostok
5543.3.2 by Tim Penhey
Alterations to the way codebrowse is started, and updating rocketfuel-setup
450
6991.1.1 by Guilherme Salgado
Serve *.launchpad.dev through https
451
reload-apache: enable-apache-launchpad
9948.1.1 by Maris Fogels
Make the apache process restart after installing the new configuration and modules, to prevent the new modules from segfaulting because of bugs.
452
	/etc/init.d/apache2 restart
5543.3.2 by Tim Penhey
Alterations to the way codebrowse is started, and updating rocketfuel-setup
453
8234.1.6 by Gary Poster
fold bin/py into compile
454
TAGS: compile
8234.1.5 by Gary Poster
slight clean up.
455
	# emacs tags
456
	bin/tags -e
457
8234.1.6 by Gary Poster
fold bin/py into compile
458
tags: compile
8234.1.5 by Gary Poster
slight clean up.
459
	# vi tags
460
	bin/tags -v
461
8234.1.6 by Gary Poster
fold bin/py into compile
462
ID: compile
8234.1.5 by Gary Poster
slight clean up.
463
	# idutils ID file
464
	bin/tags -i
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
465
10840.1.2 by Jelmer Vernooij
Use the same pydoctor command Michael uses to generate http://people.canonical.com/~mwh/canonicalapi/
466
PYDOCTOR = pydoctor
10870.1.1 by Maris Fogels
Added a new target for running the test suite in an ec2 image. Removed the WindmillLayer from that target. Fixed up the Makefile API a bit.
467
PYDOCTOR_OPTIONS =
10529.3.1 by Jonathan Lange
Add Make targets to generate package dependency graphs with snakefood
468
10840.1.1 by Jelmer Vernooij
Add pydoctor rule.
469
pydoctor:
10840.1.2 by Jelmer Vernooij
Use the same pydoctor command Michael uses to generate http://people.canonical.com/~mwh/canonicalapi/
470
	$(PYDOCTOR) --make-html --html-output=apidocs --add-package=lib/lp \
471
		--add-package=lib/canonical --project-name=Launchpad \
472
		--docformat restructuredtext --verbose-about epytext-summary \
473
		$(PYDOCTOR_OPTIONS)
10840.1.1 by Jelmer Vernooij
Add pydoctor rule.
474
12314.2.3 by Jonathan Lange
Add a top-level make target.
475
.PHONY: apidoc buildout_bin check doc tags TAGS zcmldocs realclean clean debug \
12221.5.1 by Jonathan Lange
Merge work on vision document and values document but remove all of the
476
	stop start run ftest_build ftest_inplace test_build test_inplace \
12545.1.2 by William Grant
Clean up .PHONY.
477
	pagetests check schema default launchpad.pot pull_branches \
478
	scan_branches sync_branches reload-apache hosted_branches \
479
	check_mailman check_config jsbuild jsbuild_lazr clean_js \
480
	clean_buildout buildonce_eggs build_eggs sprite_css sprite_image \
481
	css_combine compile check_schema pydoctor clean_logs \