| 1 | |
| 2 | # $Id: Makefile,v 1.5 2004/11/25 20:18:39 x99laine Exp $ |
| 3 | ################################################################################ |
| 4 | # definitions |
| 5 | |
| 6 | VERSNUM := $(shell grep VERSION ChangeLog | head -1 | sed -e "s/VERSION //;s/ .*//") |
| 7 | VERSTAG := $(shell grep VERSION ChangeLog | head -1 | grep 'XX' > /dev/null 2> /dev/null && echo 'beta') |
| 8 | |
| 9 | VERSION = $(VERSNUM)$(VERSTAG) |
| 10 | |
| 11 | PKG_NAME = platal |
| 12 | PKG_DIST = $(PKG_NAME)-$(VERSION) |
| 13 | PKG_FILES = AUTHORS ChangeLog COPYING README Makefile |
| 14 | PKG_DIRS = configs htdocs include install.d plugins po scripts templates upgrade |
| 15 | |
| 16 | VCS_FILTER = ! -name .arch-ids ! -name CVS |
| 17 | |
| 18 | define download |
| 19 | @echo "Downloading $@ from $(DOWNLOAD_SRC)" |
| 20 | wget $(DOWNLOAD_SRC) -O $@ -q || ($(RM) $@; exit 1) |
| 21 | endef |
| 22 | |
| 23 | ################################################################################ |
| 24 | # global targets |
| 25 | |
| 26 | all: build |
| 27 | |
| 28 | build: core conf static banana wiki openid medals jquery maps |
| 29 | |
| 30 | check: |
| 31 | @!(find . -name '*.php' -exec php -l {} ";" | grep -v 'No syntax errors detected') |
| 32 | |
| 33 | test: |
| 34 | make -C core test |
| 35 | |
| 36 | q: |
| 37 | @echo -e "Code statistics\n" |
| 38 | @sloccount $(filter-out wiki/ spool/, $(wildcard */)) 2> /dev/null | egrep '^[a-z]*:' |
| 39 | |
| 40 | %: %.in Makefile ChangeLog |
| 41 | sed -e 's,@VERSION@,$(VERSION),g' $< > $@ |
| 42 | |
| 43 | up: update |
| 44 | update: |
| 45 | @git fetch && git rebase `git symbolic-ref HEAD | sed -e 's~refs/heads/~origin/~'` && git submodule update |
| 46 | |
| 47 | doc: |
| 48 | @doxygen core/doc/doxygen.cfg |
| 49 | |
| 50 | ################################################################################ |
| 51 | # targets |
| 52 | |
| 53 | ## |
| 54 | ## core |
| 55 | ## |
| 56 | |
| 57 | core: |
| 58 | [ -d core/.git ] || ( git submodule init && git submodule update ) |
| 59 | make -C core all |
| 60 | |
| 61 | ## |
| 62 | ## conf |
| 63 | ## |
| 64 | |
| 65 | conf: spool/templates_c spool/mails_c classes/platalglobals.php configs/platal.cron htdocs/.htaccess spool/conf spool/tmp spool/banana |
| 66 | |
| 67 | spool/templates_c spool/mails_c spool/uploads spool/conf spool/tmp spool/run spool/banana: |
| 68 | mkdir -p $@ |
| 69 | chmod o+w $@ |
| 70 | |
| 71 | htdocs/.htaccess: htdocs/.htaccess.in Makefile |
| 72 | @REWRITE_BASE="/~$$(id -un)"; \ |
| 73 | test "$$REWRITE_BASE" = "/~web" && REWRITE_BASE="/"; \ |
| 74 | sed -e "s,@REWRITE_BASE@,$$REWRITE_BASE,g" $< > $@ |
| 75 | |
| 76 | ## |
| 77 | ## static content |
| 78 | ## |
| 79 | static: htdocs/javascript/core.js htdocs/javascript@VERSION htdocs/javascript/json2.js |
| 80 | |
| 81 | htdocs/javascript/core.js: |
| 82 | cd htdocs/javascript/ && ln -s ../../core/htdocs/javascript/core.js |
| 83 | |
| 84 | %@VERSION: % Makefile ChangeLog |
| 85 | cd $< && rm -f $(VERSION) && ln -sf . $(VERSION) |
| 86 | |
| 87 | htdocs/javascript/json2.js: DOWNLOAD_SRC = https://github.com/douglascrockford/JSON-js/raw/master/json2.js --no-check-certificate |
| 88 | htdocs/javascript/json2.js: |
| 89 | @$(download) |
| 90 | |
| 91 | ## |
| 92 | ## wiki |
| 93 | ## |
| 94 | |
| 95 | WIKI_NEEDS = \ |
| 96 | wiki/local/farmconfig.php \ |
| 97 | wiki/pub/skins/empty \ |
| 98 | wiki/cookbook/e-protect.php \ |
| 99 | spool/wiki.d \ |
| 100 | htdocs/uploads \ |
| 101 | htdocs/wiki \ |
| 102 | |
| 103 | wiki: get-wiki build-wiki |
| 104 | |
| 105 | build-wiki: $(WIKI_NEEDS) | get-wiki |
| 106 | |
| 107 | htdocs/uploads: |
| 108 | cd htdocs && ln -sf ../spool/uploads |
| 109 | |
| 110 | htdocs/wiki: |
| 111 | cd htdocs && ln -sf ../wiki/pub wiki |
| 112 | |
| 113 | |
| 114 | spool/wiki.d: |
| 115 | mkdir -p $@ |
| 116 | chmod o+w $@ |
| 117 | cd $@ && ln -sf ../../include/wiki/wiki.d/* . |
| 118 | |
| 119 | |
| 120 | wiki/cookbook/e-protect.php: |
| 121 | cd wiki/cookbook && ln -sf ../../include/wiki/e-protect.php |
| 122 | |
| 123 | wiki/local/farmconfig.php: |
| 124 | cd wiki/local/ && ln -sf ../../include/wiki/farmconfig.php |
| 125 | |
| 126 | wiki/pub/skins/empty: |
| 127 | cd wiki/pub/skins/ && ln -sf ../../../include/wiki/empty |
| 128 | |
| 129 | |
| 130 | get-wiki: |
| 131 | @if ! test -d wiki; then \ |
| 132 | wget http://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz; \ |
| 133 | tar -xzvf pmwiki-latest.tgz; \ |
| 134 | rm pmwiki-latest.tgz; \ |
| 135 | mv pmwiki-* wiki; \ |
| 136 | fi |
| 137 | |
| 138 | ## |
| 139 | ## openid |
| 140 | ## |
| 141 | |
| 142 | openid: |
| 143 | -rm -rf include/Auth |
| 144 | |
| 145 | ## |
| 146 | ## banana |
| 147 | ## |
| 148 | banana: htdocs/images/banana htdocs/css/banana.css |
| 149 | htdocs/images/banana: banana-sub |
| 150 | cd $(@D) && ln -snf ../../banana/img $(@F) |
| 151 | |
| 152 | htdocs/css/banana.css: banana-sub |
| 153 | cd $(@D) && ln -snf ../../banana/css/style.css $(@F) |
| 154 | |
| 155 | banana-sub: |
| 156 | make -C banana |
| 157 | |
| 158 | ## |
| 159 | ## Medal thumbnails |
| 160 | ## |
| 161 | MEDAL_PICTURES=$(wildcard htdocs/images/medals/*.jpg) |
| 162 | MEDAL_THUMBNAILS=$(subst /medals/,/medals/thumb/,$(MEDAL_PICTURES)) |
| 163 | |
| 164 | medals: $(MEDAL_THUMBNAILS) |
| 165 | |
| 166 | $(MEDAL_THUMBNAILS): $(subst /medals/thumb/,/medals/,$(@F)) |
| 167 | convert -resize x50 $(subst /medals/thumb/,/medals/,$@) $@ |
| 168 | |
| 169 | ## |
| 170 | ## jquery |
| 171 | ## |
| 172 | JQUERY_VERSION=1.5.1 |
| 173 | JQUERY_PLUGINS=color form |
| 174 | JQUERY_PLUGINS_PATHES=$(addprefix htdocs/javascript/jquery.,$(addsuffix .js,$(JQUERY_PLUGINS))) |
| 175 | |
| 176 | JQUERY_UI_VERSION=1.8.10 |
| 177 | JQUERY_UI=core widget tabs datepicker |
| 178 | JQUERY_UI_PATHES=$(addprefix htdocs/javascript/jquery.ui.,$(addsuffix .js,$(JQUERY_UI))) |
| 179 | |
| 180 | JQUERY_TMPL_VERSION=vBeta1.0.0 |
| 181 | JQUERY_TMPL_PATH=htdocs/javascript/jquery.tmpl.js |
| 182 | |
| 183 | JSTREE_VERSION=1.0rc2 |
| 184 | JSTREE_PATH=htdocs/javascript/jquery.jstree.js |
| 185 | |
| 186 | # TODO: jquery.autocomplete.js should rather be downloaded from an official source. The issue |
| 187 | # is that the version we use is not available anymore on the Internet, and the latest version |
| 188 | # we could use is not backward compatible with our current code. |
| 189 | jquery: htdocs/javascript/jquery.xorg.js htdocs/javascript/jquery.ui.xorg.js $(JSTREE_PATH) |
| 190 | |
| 191 | htdocs/javascript/jquery.xorg.js: htdocs/javascript/jquery.js $(JQUERY_PLUGINS_PATHES) $(JQUERY_TMPL_PATH) htdocs/javascript/jquery.autocomplete.js |
| 192 | cat $^ > $@ |
| 193 | |
| 194 | htdocs/javascript/jquery.ui.xorg.js: $(JQUERY_UI_PATHES) htdocs/javascript/jquery.ui.datepicker-fr.js |
| 195 | cat $^ > $@ |
| 196 | |
| 197 | htdocs/javascript/jquery-$(JQUERY_VERSION).min.js: DOWNLOAD_SRC = http://jquery.com/src/$(@F) |
| 198 | htdocs/javascript/jquery-$(JQUERY_VERSION).min.js: |
| 199 | @-rm htdocs/javascript/jquery-*.min.js |
| 200 | @$(download) |
| 201 | |
| 202 | htdocs/javascript/jquery.js: htdocs/javascript/jquery-$(JQUERY_VERSION).min.js |
| 203 | ln -snf $(<F) $@ |
| 204 | |
| 205 | $(JQUERY_PLUGINS_PATHES): DOWNLOAD_SRC = http://plugins.jquery.com/files/$(@F)_0.txt |
| 206 | $(JQUERY_PLUGINS_PATHES): |
| 207 | @-rm htdocs/javascript/jquery.ui*.$*.js |
| 208 | @$(download) |
| 209 | |
| 210 | htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).%.js: DOWNLOAD_SRC = http://jquery-ui.googlecode.com/svn/tags/$(JQUERY_UI_VERSION)/ui/minified/jquery.ui.$*.min.js |
| 211 | htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).%.js: |
| 212 | @$(download) |
| 213 | |
| 214 | htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).datepicker-fr.js: DOWNLOAD_SRC = http://jquery-ui.googlecode.com/svn/tags/$(JQUERY_UI_VERSION)/ui/minified/i18n/jquery.ui.datepicker-fr.min.js |
| 215 | htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).datepicker-fr.js: |
| 216 | @$(download) |
| 217 | |
| 218 | $(JQUERY_UI_PATHES) htdocs/javascript/jquery.ui.datepicker-fr.js: htdocs/javascript/jquery.ui.%.js: htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).%.js |
| 219 | ln -snf $(<F) $@ |
| 220 | |
| 221 | htdocs/javascript/jquery.tmpl-$(JQUERY_TMPL_VERSION).js: DOWNLOAD_SRC = https://github.com/jquery/jquery-tmpl/raw/$(JQUERY_TMPL_VERSION)/jquery.tmpl.js --no-check-certificate |
| 222 | htdocs/javascript/jquery.tmpl-$(JQUERY_TMPL_VERSION).js: |
| 223 | @-rm htdocs/javascript/jquery.tmpl*.js |
| 224 | @$(download) |
| 225 | |
| 226 | $(JQUERY_TMPL_PATH): htdocs/javascript/jquery.tmpl-$(JQUERY_TMPL_VERSION).js |
| 227 | ln -snf $(<F) $@ |
| 228 | |
| 229 | $(JSTREE_PATH): |
| 230 | rm -f htdocs/javascript/jquery.jstree-*.js |
| 231 | mkdir spool/tmp/jstree |
| 232 | wget http://jstree.googlecode.com/files/jsTree.v.$(JSTREE_VERSION).zip -O spool/tmp/jstree/jquery.jstree-$(JSTREE_VERSION).zip |
| 233 | unzip spool/tmp/jstree/jquery.jstree-$(JSTREE_VERSION).zip -d spool/tmp/jstree/ |
| 234 | mv -f spool/tmp/jstree/themes/default/style.css htdocs/css/jstree.css |
| 235 | mv -f spool/tmp/jstree/themes/default/d.png htdocs/images/jstree.png |
| 236 | mv -f spool/tmp/jstree/jquery.jstree.js htdocs/javascript/jquery.jstree-$(JSTREE_VERSION).js |
| 237 | sed -i -e 's/"d\.png"/"..\/images\/jstree.png"/' htdocs/css/jstree.css |
| 238 | sed -i -e 's/"throbber\.gif"/"..\/images\/wait.gif"/' htdocs/css/jstree.css |
| 239 | sed -i -e 's/#ffffee/inherit/' htdocs/css/jstree.css |
| 240 | ln -snf jquery.jstree-$(JSTREE_VERSION).js htdocs/javascript/jquery.jstree.js |
| 241 | rm -Rf spool/tmp/jstree |
| 242 | |
| 243 | ## |
| 244 | ## Maps auxiliary scripts |
| 245 | ## |
| 246 | maps: htdocs/javascript/markerclusterer.js |
| 247 | |
| 248 | ## Try and use taged version asap (from http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/…). |
| 249 | htdocs/javascript/markerclusterer.js: |
| 250 | wget "http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer_compiled.js?r=308" -O htdocs/javascript/markerclusterer.js |
| 251 | |
| 252 | ## |
| 253 | ## lists rpc |
| 254 | ## |
| 255 | start-listrpc: spool/run |
| 256 | sudo -u list /sbin/start-stop-daemon --pidfile spool/run/listrpc.pid -m -b -x $$PWD/bin/lists.rpc.py --start |
| 257 | @sleep 2 |
| 258 | @sudo -u list kill -0 $$(cat spool/run/listrpc.pid) |
| 259 | |
| 260 | start-listrpc-fg: spool/run |
| 261 | sudo -u list ./bin/lists.rpc.py |
| 262 | |
| 263 | stop-listrpc: |
| 264 | -sudo -u list /sbin/start-stop-daemon --pidfile spool/run/listrpc.pid --stop |
| 265 | @-rm -f spool/run/listrpc.pid |
| 266 | |
| 267 | restart-listrpc: stop-listrpc start-listrpc |
| 268 | |
| 269 | ################################################################################ |
| 270 | |
| 271 | .PHONY: build dist clean core http* check test |
| 272 | .PHONY: wiki build-wiki |
| 273 | .PHONY: banana banana-sub htdocs/images/banana htdocs/css/banana.css |
| 274 | .PHONY: start-listrpc start-listrpc-fg stop-listrpc restart-listrpc |
| 275 | .PHONY: up update doc |