| 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 |
| 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 | ################################################################################ |
| 48 | # targets |
| 49 | |
| 50 | ## |
| 51 | ## core |
| 52 | ## |
| 53 | |
| 54 | core: |
| 55 | [ -d core/.git ] || ( git submodule init && git submodule update ) |
| 56 | make -C core all |
| 57 | |
| 58 | ## |
| 59 | ## conf |
| 60 | ## |
| 61 | |
| 62 | conf: spool/templates_c spool/mails_c classes/platalglobals.php configs/platal.cron htdocs/.htaccess spool/conf spool/tmp spool/banana |
| 63 | |
| 64 | spool/templates_c spool/mails_c spool/uploads spool/conf spool/tmp spool/run spool/banana: |
| 65 | mkdir -p $@ |
| 66 | chmod o+w $@ |
| 67 | |
| 68 | htdocs/.htaccess: htdocs/.htaccess.in Makefile |
| 69 | @REWRITE_BASE="/~$$(id -un)"; \ |
| 70 | test "$$REWRITE_BASE" = "/~web" && REWRITE_BASE="/"; \ |
| 71 | sed -e "s,@REWRITE_BASE@,$$REWRITE_BASE,g" $< > $@ |
| 72 | |
| 73 | ## |
| 74 | ## static content |
| 75 | ## |
| 76 | static: htdocs/javascript@VERSION |
| 77 | |
| 78 | %@VERSION: % Makefile ChangeLog |
| 79 | cd $< && rm -f $(VERSION) && ln -sf . $(VERSION) |
| 80 | |
| 81 | ## |
| 82 | ## wiki |
| 83 | ## |
| 84 | |
| 85 | WIKI_NEEDS = \ |
| 86 | wiki/local/farmconfig.php \ |
| 87 | wiki/pub/skins/empty \ |
| 88 | wiki/cookbook/e-protect.php \ |
| 89 | spool/wiki.d \ |
| 90 | htdocs/uploads \ |
| 91 | htdocs/wiki \ |
| 92 | |
| 93 | wiki: get-wiki build-wiki |
| 94 | |
| 95 | build-wiki: $(WIKI_NEEDS) | get-wiki |
| 96 | |
| 97 | htdocs/uploads: |
| 98 | cd htdocs && ln -sf ../spool/uploads |
| 99 | |
| 100 | htdocs/wiki: |
| 101 | cd htdocs && ln -sf ../wiki/pub wiki |
| 102 | |
| 103 | |
| 104 | spool/wiki.d: |
| 105 | mkdir -p $@ |
| 106 | chmod o+w $@ |
| 107 | cd $@ && ln -sf ../../include/wiki/wiki.d/* . |
| 108 | |
| 109 | |
| 110 | wiki/cookbook/e-protect.php: |
| 111 | cd wiki/cookbook && ln -sf ../../include/wiki/e-protect.php |
| 112 | |
| 113 | wiki/local/farmconfig.php: |
| 114 | cd wiki/local/ && ln -sf ../../include/wiki/farmconfig.php |
| 115 | |
| 116 | wiki/pub/skins/empty: |
| 117 | cd wiki/pub/skins/ && ln -sf ../../../include/wiki/empty |
| 118 | |
| 119 | |
| 120 | get-wiki: |
| 121 | @if ! test -d wiki; then \ |
| 122 | wget http://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz; \ |
| 123 | tar -xzvf pmwiki-latest.tgz; \ |
| 124 | rm pmwiki-latest.tgz; \ |
| 125 | mv pmwiki-* wiki; \ |
| 126 | fi |
| 127 | |
| 128 | ## |
| 129 | ## openid |
| 130 | ## |
| 131 | |
| 132 | openid: get-openid spool/openid/store |
| 133 | |
| 134 | # There is no obvious way to automatically use the latest version |
| 135 | OPENID_VERSION = 2.1.3 |
| 136 | get-openid: |
| 137 | @if ! test -d include/Auth; then \ |
| 138 | wget http://openidenabled.com/files/php-openid/packages/php-openid-$(OPENID_VERSION).tar.bz2; \ |
| 139 | tar -xjf php-openid-$(OPENID_VERSION).tar.bz2; \ |
| 140 | mv php-openid-$(OPENID_VERSION)/Auth include/; \ |
| 141 | rm php-openid-$(OPENID_VERSION).tar.bz2; \ |
| 142 | rm -r php-openid-$(OPENID_VERSION); \ |
| 143 | fi |
| 144 | |
| 145 | spool/openid/store: |
| 146 | mkdir -p $@ |
| 147 | chmod o+w $@ |
| 148 | |
| 149 | ## |
| 150 | ## banana |
| 151 | ## |
| 152 | banana: htdocs/images/banana htdocs/css/banana.css |
| 153 | htdocs/images/banana: banana-sub |
| 154 | cd $(@D) && ln -snf ../../banana/img $(@F) |
| 155 | |
| 156 | htdocs/css/banana.css: banana-sub |
| 157 | cd $(@D) && ln -snf ../../banana/css/style.css $(@F) |
| 158 | |
| 159 | banana-sub: |
| 160 | make -C banana |
| 161 | |
| 162 | ## |
| 163 | ## Medal thumbnails |
| 164 | ## |
| 165 | MEDAL_PICTURES=$(wildcard htdocs/images/medals/*.jpg) |
| 166 | MEDAL_THUMBNAILS=$(subst /medals/,/medals/thumb/,$(MEDAL_PICTURES)) |
| 167 | |
| 168 | medals: $(MEDAL_THUMBNAILS) |
| 169 | |
| 170 | $(MEDAL_THUMBNAILS): $(subst /medals/thumb/,/medals/,$(@F)) |
| 171 | convert -resize x50 $(subst /medals/thumb/,/medals/,$@) $@ |
| 172 | |
| 173 | ## |
| 174 | ## jquery |
| 175 | ## |
| 176 | JQUERY_VERSION=1.4.4 |
| 177 | JQUERY_PLUGINS=color form |
| 178 | JQUERY_PLUGINS_PATHES=$(addprefix htdocs/javascript/jquery.,$(addsuffix .js,$(JQUERY_PLUGINS))) |
| 179 | |
| 180 | JQUERY_UI_VERSION=1.8.7 |
| 181 | JQUERY_UI=core tabs widget |
| 182 | JQUERY_UI_PATHES=$(addprefix htdocs/javascript/jquery.ui.,$(addsuffix .js,$(JQUERY_UI))) |
| 183 | |
| 184 | JQUERY_TMPL_VERSION=vBeta1.0.0 |
| 185 | JQUERY_TMPL_PATH=htdocs/javascript/jquery.tmpl.js |
| 186 | |
| 187 | JSTREE_VERSION=1.0rc2 |
| 188 | JSTREE_PATH=htdocs/javascript/jquery.jstree.js |
| 189 | |
| 190 | # TODO: jquery.autocomplete.js should rather be downloaded from an official source. The issue |
| 191 | # is that the version we use is not available anymore on the Internet, and the latest version |
| 192 | # we could use is not backward compatible with our current code. |
| 193 | jquery: htdocs/javascript/jquery.js $(JQUERY_PLUGINS_PATHES) $(JQUERY_UI_PATHES) $(JQUERY_TMPL_PATH) $(JSTREE_PATH) |
| 194 | |
| 195 | htdocs/javascript/jquery-$(JQUERY_VERSION).min.js: DOWNLOAD_SRC = http://jquery.com/src/$(@F) |
| 196 | htdocs/javascript/jquery-$(JQUERY_VERSION).min.js: |
| 197 | @-rm htdocs/javascript/jquery-*.min.js |
| 198 | @$(download) |
| 199 | |
| 200 | htdocs/javascript/jquery.js: htdocs/javascript/jquery-$(JQUERY_VERSION).min.js |
| 201 | ln -snf $(<F) $@ |
| 202 | |
| 203 | $(JQUERY_PLUGINS_PATHES): DOWNLOAD_SRC = http://plugins.jquery.com/files/$(@F)_0.txt |
| 204 | $(JQUERY_PLUGINS_PATHES): |
| 205 | @-rm htdocs/javascript/jquery.ui*.$*.js |
| 206 | @$(download) |
| 207 | |
| 208 | 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 |
| 209 | htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).%.js: |
| 210 | @$(download) |
| 211 | |
| 212 | $(JQUERY_UI_PATHES): htdocs/javascript/jquery.ui.%.js: htdocs/javascript/jquery.ui-$(JQUERY_UI_VERSION).%.js |
| 213 | ln -snf $(<F) $@ |
| 214 | |
| 215 | htdocs/javascript/jquery.tmpl-$(JQUERY_TMPL_VERSION).js: DOWNLOAD_SRC = https://github.com/jquery/jquery-tmpl/raw/$(JQUERY_TMPL_VERSION)/jquery.tmpl.min.js --no-check-certificate |
| 216 | htdocs/javascript/jquery.tmpl-$(JQUERY_TMPL_VERSION).js: |
| 217 | @-rm htdocs/javascript/jquery.tmpl*.js |
| 218 | @$(download) |
| 219 | |
| 220 | $(JQUERY_TMPL_PATH): htdocs/javascript/jquery.tmpl-$(JQUERY_TMPL_VERSION).js |
| 221 | ln -snf $(<F) $@ |
| 222 | |
| 223 | $(JSTREE_PATH): |
| 224 | rm -f htdocs/javascript/jquery.jstree-*.js |
| 225 | mkdir spool/tmp/jstree |
| 226 | wget http://jstree.googlecode.com/files/jsTree.v.$(JSTREE_VERSION).zip -O spool/tmp/jstree/jquery.jstree-$(JSTREE_VERSION).zip |
| 227 | unzip spool/tmp/jstree/jquery.jstree-$(JSTREE_VERSION).zip -d spool/tmp/jstree/ |
| 228 | mv -f spool/tmp/jstree/themes/default/style.css htdocs/css/jstree.css |
| 229 | mv -f spool/tmp/jstree/themes/default/d.png htdocs/images/jstree.png |
| 230 | mv -f spool/tmp/jstree/jquery.jstree.js htdocs/javascript/jquery.jstree-$(JSTREE_VERSION).js |
| 231 | sed -i -e 's/"d\.png"/"..\/images\/jstree.png"/' htdocs/css/jstree.css |
| 232 | sed -i -e 's/"throbber\.gif"/"..\/images\/wait.gif"/' htdocs/css/jstree.css |
| 233 | sed -i -e 's/#ffffee/inherit/' htdocs/css/jstree.css |
| 234 | ln -snf jquery.jstree-$(JSTREE_VERSION).js htdocs/javascript/jquery.jstree.js |
| 235 | rm -Rf spool/tmp/jstree |
| 236 | |
| 237 | |
| 238 | ## |
| 239 | ## lists rpc |
| 240 | ## |
| 241 | start-listrpc: spool/run |
| 242 | sudo -u list /sbin/start-stop-daemon --pidfile spool/run/listrpc.pid -m -b -x $$PWD/bin/lists.rpc.py --start |
| 243 | @sleep 2 |
| 244 | @sudo -u list kill -0 $$(cat spool/run/listrpc.pid) |
| 245 | |
| 246 | start-listrpc-fg: spool/run |
| 247 | sudo -u list ./bin/lists.rpc.py |
| 248 | |
| 249 | stop-listrpc: |
| 250 | -sudo -u list /sbin/start-stop-daemon --pidfile spool/run/listrpc.pid --stop |
| 251 | @-rm -f spool/run/listrpc.pid |
| 252 | |
| 253 | restart-listrpc: stop-listrpc start-listrpc |
| 254 | |
| 255 | ################################################################################ |
| 256 | |
| 257 | .PHONY: build dist clean core http* check test |
| 258 | .PHONY: wiki build-wiki |
| 259 | .PHONY: banana banana-sub htdocs/images/banana htdocs/css/banana.css |
| 260 | .PHONY: start-listrpc start-listrpc-fg stop-listrpc restart-listrpc |
| 261 | .PHONY: up update |