~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Vincent Ladeuil
  • Date: 2016-01-21 11:42:23 UTC
  • mto: This revision was merged to the branch mainline in revision 6610.
  • Revision ID: v.ladeuil+lp@free.fr-20160121114223-ngcvndi02ydiqs5z
Allow hyphens in option names to unbreak compatibility.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
 
1
# Copyright (C) 2005-2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
28
28
PLUGIN_TARGET=plugin-release
29
29
PYTHON_BUILDFLAGS=
30
30
 
31
 
.PHONY: all clean extensions pyflakes api-docs check-nodocs check
 
31
.PHONY: all clean realclean extensions pyflakes api-docs check-nodocs check
32
32
 
33
33
all: extensions
34
34
 
39
39
check: docs check-nodocs
40
40
 
41
41
check-nodocs: extensions
42
 
        $(PYTHON) -Werror -O ./bzr selftest -1v $(tests)
 
42
        set -e
 
43
        # Generate a stream for PQM to watch.
 
44
        -$(RM) -f selftest.log
 
45
        echo `date` ": selftest starts" 1>&2
 
46
        $(PYTHON) -Werror -Wignore::ImportWarning -O ./bzr selftest -Oselftest.timeout=120 \
 
47
          --subunit $(tests) | tee selftest.log
 
48
        echo `date` ": selftest ends" 1>&2
 
49
        # An empty log file should catch errors in the $(PYTHON)
 
50
        # command above (the '|' swallow any errors since 'make'
 
51
        # sees the 'tee' exit code for the whole line
 
52
        if [ ! -s selftest.log ] ; then exit 1 ; fi
 
53
        # Check that there were no errors reported.
 
54
        subunit-stats < selftest.log
43
55
 
44
56
# Run Python style checker (apt-get install pyflakes)
45
57
#
57
69
        $(PYTHON) setup.py clean
58
70
        -find . -name "*.pyc" -o -name "*.pyo" -o -name "*.so" | xargs rm -f
59
71
 
 
72
realclean: clean
 
73
        # Remove files which are autogenerated but included by the tarball.
 
74
        rm -f bzrlib/*_pyx.c
 
75
        rm -f bzrlib/_simple_set_pyx.h bzrlib/_simple_set_pyx_api.h
 
76
 
60
77
# Build API documentation
61
78
docfiles = bzr bzrlib
62
79
api-docs:
63
80
        mkdir -p api/html
64
 
        PYTHONPATH=$(PWD) $(PYTHON) tools/bzr_epydoc --html -o api/html --docformat 'restructuredtext en' $(docfiles)
65
 
check-api-docs:
66
 
        PYTHONPATH=$(PWD) $(PYTHON) tools/bzr_epydoc --check --docformat 'restructuredtext en' $(docfiles)
 
81
        pydoctor --make-html --docformat='restructuredtext' --html-output=api/html $(docfiles)
67
82
 
68
83
# build tags for emacs and vim
69
84
TAGS:
130
145
        doc/developers/Makefile \
131
146
        doc/developers/make.bat
132
147
 
 
148
NEWS_FILES = $(wildcard doc/en/release-notes/bzr-*.txt)
 
149
 
133
150
doc/en/user-reference/index.txt: $(MAN_DEPENDENCIES)
134
151
        $(PYTHON) tools/generate_docs.py -o $@ rstx
135
152
 
136
 
doc/en/release-notes/index.txt: NEWS tools/generate_release_notes.py
137
 
        $(PYTHON) tools/generate_release_notes.py NEWS $@
 
153
doc/en/release-notes/index.txt: $(NEWS_FILES) tools/generate_release_notes.py
 
154
        $(PYTHON) tools/generate_release_notes.py $@ $(NEWS_FILES)
138
155
 
139
156
doc/%/Makefile: doc/en/Makefile
140
157
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
175
192
        cd doc/developers && make htmlhelp
176
193
 
177
194
 
 
195
# Build the texinfo files using Sphinx.
 
196
texinfo-sphinx: $(SPHINX_DEPENDENCIES)
 
197
        cd doc/en && make texinfo
 
198
        cd doc/es && make texinfo
 
199
        cd doc/ru && make texinfo
 
200
        cd doc/ja && make texinfo
 
201
        cd doc/developers && make texinfo
 
202
 
178
203
### Documentation Website ###
179
204
 
180
205
# Where to build the website
199
224
 
200
225
# translate txt docs to html
201
226
derived_txt_files = \
202
 
        doc/en/user-reference/bzr_man.txt \
203
227
        doc/en/release-notes/NEWS.txt
204
228
txt_all = \
205
229
        doc/en/tutorials/tutorial.txt \
294
318
        $(rst2html) --stylesheet=default.css $< $@
295
319
 
296
320
%.html: %.txt
297
 
        $(rst2html) --stylesheet=../../default.css $< $@
298
 
 
299
 
doc/en/user-reference/bzr_man.txt: $(MAN_DEPENDENCIES)
300
 
        $(PYTHON) tools/generate_docs.py -o $@ rstx
301
 
 
302
 
doc/en/release-notes/NEWS.txt: NEWS
303
 
        $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')"
 
321
        $(rst2html) --stylesheet=../../default.css $< "$@"
 
322
 
 
323
doc/en/release-notes/NEWS.txt: $(NEWS_FILES) tools/generate_release_notes.py
 
324
        $(PYTHON) tools/generate_release_notes.py "$@" $(NEWS_FILES)
304
325
 
305
326
upgrade_guide_dependencies =  $(wildcard $(addsuffix /*.txt, doc/en/upgrade-guide)) 
306
327
 
408
429
        $(PYTHON) tools/win32/ostools.py remove dist
409
430
 
410
431
 
 
432
# i18n targets
 
433
 
 
434
.PHONY: update-pot po/bzr.pot
 
435
update-pot: po/bzr.pot
 
436
 
 
437
TRANSLATABLE_PYFILES:=$(shell find bzrlib -name '*.py' \
 
438
                | grep -v 'bzrlib/tests/' \
 
439
                | grep -v 'bzrlib/doc' \
 
440
                )
 
441
 
 
442
po/bzr.pot: $(PYFILES) $(DOCFILES)
 
443
        $(PYTHON) ./bzr export-pot --include-duplicates > po/bzr.pot
 
444
        echo $(TRANSLATABLE_PYFILES) | xargs \
 
445
          xgettext --package-name "bzr" \
 
446
          --msgid-bugs-address "<bazaar@canonical.com>" \
 
447
          --copyright-holder "Canonical" \
 
448
          --from-code ISO-8859-1 --join --sort-by-file --add-comments=i18n: \
 
449
          -d bzr -p po -o bzr.pot
 
450
 
 
451
 
411
452
### Packaging Targets ###
412
453
 
413
 
.PHONY: dist dist-upload-escudero check-dist-tarball
 
454
.PHONY: dist check-dist-tarball
414
455
 
415
456
# build a distribution source tarball
416
457
#
438
479
        tar Cxz $$tmpdir -f $$tarball && \
439
480
        $(MAKE) -C $$tmpdir/bzr-$$version check && \
440
481
        rm -rf $$tmpdir
441
 
 
442
 
 
443
 
# upload previously built tarball to the download directory on bazaar-vcs.org,
444
 
# and verify that it can be downloaded ok.
445
 
dist-upload-escudero:
446
 
        version=`./bzr version --short` && \
447
 
        tarball=../bzr-$$version.tar.gz && \
448
 
        scp $$tarball $$tarball.sig \
449
 
            escudero.ubuntu.com:/srv/bazaar.canonical.com/www/releases/src \
450
 
                && \
451
 
        echo verifying over http... && \
452
 
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz \
453
 
                | diff -s - $$tarball && \
454
 
        curl http://bazaar-vcs.org/releases/src/bzr-$$version.tar.gz.sig \
455
 
                | diff -s - $$tarball.sig