root/trunk/Makefile

Revision 3024, 4.8 kB (checked in by bchoate, 3 months ago)

Adding a 'testall' rule to handle testing all available tests for addons, plugins too.

  • Property svn:keywords set to Author Date Id Revision
Line 
1 BUILD_LANGUAGE ?= en_US
2 BUILD_PACKAGE ?= MTOS
3
4 -include build/mt-dists/default.mk
5 -include build/mt-dists/$(BUILD_PACKAGE).mk
6 -include build/mt-dists/$(BUILD_LANGUAGE).mk
7
8 BUILD_VERSION_ID ?= $(PRODUCT_VERSION)
9
10 latin1_modules = lib/MT/L10N/es-iso-8859-1.pm \
11                  lib/MT/L10N/fr-iso-8859-1.pm \
12                  lib/MT/L10N/de-iso-8859-1.pm \
13                  lib/MT/L10N/nl-iso-8859-1.pm
14
15 local_js = mt-static/mt_de.js \
16         mt-static/mt_fr.js \
17         mt-static/mt_nl.js \
18         mt-static/mt_ja.js \
19         mt-static/mt_es.js
20
21 core_js = mt-static/js/common/Core.js \
22           mt-static/js/common/JSON.js \
23           mt-static/js/common/Timer.js \
24           mt-static/js/common/Cookie.js \
25           mt-static/js/common/DOM.js \
26           mt-static/js/common/Observable.js \
27           mt-static/js/common/Autolayout.js \
28           mt-static/js/common/Component.js \
29           mt-static/js/common/List.js \
30           mt-static/js/common/App.js \
31           mt-static/js/common/Cache.js \
32           mt-static/js/common/Client.js \
33           mt-static/js/common/Template.js \
34           mt-static/js/tc.js \
35           mt-static/js/tc/tableselect.js
36
37 main_css = mt-static/css/reset.css \
38         mt-static/css/structure.css \
39         mt-static/css/messaging.css \
40         mt-static/css/utilities.css
41
42 simple_css = mt-static/css/reset.css \
43         mt-static/css/messaging.css \
44         mt-static/css/chromeless.css \
45         mt-static/css/utilities.css
46
47 all: code
48
49 mt-static/js/mt_core_compact.js: $(core_js)
50         cat $(core_js) > mt-static/js/mt_core_compact.js
51         ./build/minifier.pl mt-static/js/mt_core_compact.js
52
53 mt-static/css/main.css: $(main_css)
54         cat $(main_css) > mt-static/css/main.css
55         ./build/minifier.pl mt-static/css/main.css
56
57 mt-static/css/simple.css: $(simple_css)
58         cat $(simple_css) > mt-static/css/simple.css
59         ./build/minifier.pl mt-static/css/simple.css
60
61 .PHONY: code-common code code-en_US code-de code-fr code-nl \
62         code-es code-ja
63 code_common = lib/MT.pm php/mt.php \
64         mt-static/js/mt_core_compact.js \
65         mt-static/css/main.css \
66         mt-static/css/simple.css
67
68 code: check code-$(BUILD_LANGUAGE)
69 code-en_US code-de code-fr code-nl code-es: check $(code_common) \
70         $(latin1_modules) $(local_js)
71 code-ja: check $(code_common) mt-static/mt_ja.js
72
73 build-language-stamp:
74
75 check:
76         @(test $(BUILD_LANGUAGE) || echo You must define BUILD_LANGUAGE)
77         @test $(BUILD_LANGUAGE)
78         @(test $(BUILD_PACKAGE) || echo You must define BUILD_PACKAGE)
79         @test $(BUILD_PACKAGE)
80         @(test $(BUILD_VERSION_ID) || echo You must define BUILD_VERSION_ID)
81         @test $(BUILD_VERSION_ID)
82         -@if [ "`cat build-language-stamp`" != ${BUILD_LANGUAGE} ] ;  \
83         then                                                   \
84                 echo ${BUILD_LANGUAGE} > build-language-stamp; \
85                 echo updated build-language-stamp;             \
86         fi
87
88 lib/MT.pm: build-language-stamp build/mt-dists/$(BUILD_PACKAGE).mk build/mt-dists/default.mk
89         mv lib/MT.pm lib/MT.pm.pre
90         sed -e 's!__PRODUCT_NAME__!$(PRODUCT_NAME)!g' \
91             -e 's!__BUILD_ID__!$(BUILD_VERSION_ID)!g' \
92             -e 's!__PORTAL_URL__!$(PORTAL_URL)!g' \
93             lib/MT.pm.pre > lib/MT.pm
94         rm lib/MT.pm.pre
95
96 php/mt.php: build-language-stamp build/mt-dists/$(BUILD_PACKAGE).mk
97         mv php/mt.php php/mt.php.pre
98         sed -e 's!__PRODUCT_NAME__!$(PRODUCT_NAME)!g' \
99         php/mt.php.pre > php/mt.php
100         rm php/mt.php.pre
101
102 $(local_js): mt-static/mt_%.js: mt-static/mt.js lib/MT/L10N/%.pm
103         perl build/mt-dists/make-js
104
105 $(latin1_modules): %-iso-8859-1.pm: %.pm
106         iconv -f utf-8 -t iso-8859-1 $< > $@
107
108 ##### Other useful targets
109
110 .PHONY: test cover clean all
111
112 cover:
113         -cover -delete
114         HARNESS_PERL_SWITCHES=-MDevel::Cover \
115         perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*.t
116
117 covertags:
118         -cover -delete
119         HARNESS_PERL_SWITCHES=-MDevel::Cover \
120         perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*tags*.t
121         -cover
122
123 tags:
124         -rm -rf t/db/*
125         perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*tags*.t
126
127 test: code
128         perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*.t
129
130 testall: code
131         perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*.t addons/*/t/*.t plugins/*/t/*.t
132
133 quick-test: code
134         perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV'  \
135                 t/00-compile.t t/01-serialize.t t/04-config.t \
136                 t/05-errorhandler.t t/07-builder.t t/08-util.t           \
137                 t/09-image.t t/10-filemgr.t t/11-sanitize.t t/12-dsa.t   \
138                 t/13-dirify.t t/20-setup.t t/21-callbacks.t t/22-author.t\
139                 t/23-entry.t t/26-pings.t t/27-context.t t/28-xmlrpc.t   \
140                 t/29-cleanup.t t/32-mysql.t t/33-postgres.t   \
141                 t/34-sqlite.t t/35-tags.t t/45-datetime.t t/46-i18n-en.t \
142                 t/47-i18n-ja.t t/48-cache.t
143
144 dist:
145         perl build/exportmt.pl --local
146
147 me:
148         perl build/exportmt.pl --make
149
150 clean:
151         -rm -rf $(latin1_modules) $(local_js)
152         -rm -rf mt-static/js/mt_core_compact.js
153         -rm -rf mt-static/css/main.css mt-static/css/simple.css
154         -rm -rf MANIFEST
155         -rm -rf build-language-stamp
156
Note: See TracBrowser for help on using the browser.