root/trunk/Makefile

Revision 3024, 4.8 kB (checked in by bchoate, 15 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 
1BUILD_LANGUAGE ?= en_US
2BUILD_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
8BUILD_VERSION_ID ?= $(PRODUCT_VERSION)
9
10latin1_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
15local_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
21core_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
37main_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
42simple_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
47all: code
48
49mt-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
53mt-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
57mt-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
63code_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
68code: check code-$(BUILD_LANGUAGE)
69code-en_US code-de code-fr code-nl code-es: check $(code_common) \
70        $(latin1_modules) $(local_js)
71code-ja: check $(code_common) mt-static/mt_ja.js
72
73build-language-stamp:
74
75check:
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
88lib/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
96php/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
112cover:
113        -cover -delete
114        HARNESS_PERL_SWITCHES=-MDevel::Cover \
115        perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*.t
116
117covertags:
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
123tags:
124        -rm -rf t/db/*
125        perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*tags*.t
126
127test: code
128        perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*.t
129
130testall: code
131        perl -Ilib -Iextlib -It/lib -MTest::Harness -e 'runtests @ARGV' t/*.t addons/*/t/*.t plugins/*/t/*.t
132
133quick-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
144dist:
145        perl build/exportmt.pl --local
146
147me:
148        perl build/exportmt.pl --make
149
150clean:
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.