#!/usr/bin/make # # Makefile for SchoolTool # # $Id$ PYTHON=python TESTFLAGS=-w POT=src/schooltool/locales/schooltool.pot SBPOT=src/schoolbell/app/locales/schoolbell.pot PO=$(wildcard src/schooltool/locales/*/LC_MESSAGES/*.po) SBPO=$(wildcard src/schoolbell/app/locales/*/LC_MESSAGES/*.po) PYTHONPATH=src:Zope3/src .PHONY: all all: build Zope3: svn co svn://svn.zope.org/repos/main/Zope3/branches/3.2 Zope3 .PHONY: build build: Zope3 [ ! -d Zope3 ] || cd Zope3 && $(PYTHON) setup.py build_ext -i $(PYTHON) setup.py build $(PYTHON) remove-stale-bytecode.py .PHONY: clean clean: find . \( -path './src/*.mo' -o -name '*.o' \ -o -name '*.py[co]' \) -exec rm -f {} \; rm -rf build rm -rf rosetta-schoolbell-ui rm -f rosetta-schoolbell-ui.tar.gz .PHONY: realclean realclean: clean find . \( -name '*.so' -o -name '*.pyd' \) -exec rm -f {} \; rm -f Data.fs* *.csv tags ID *.log rm -f scripts/import-sampleschool rm -f MANIFEST rm -rf dist .PHONY: test test: build $(PYTHON) test.py $(TESTFLAGS) -s src/schooltool .PHONY: testall testall: build $(PYTHON) test.py $(TESTFLAGS) .PHONY: ftest ftest: build $(PYTHON) test.py $(TESTFLAGS) -s src/schooltool -f .PHONY: run run: build $(PYTHON) schooltool-server.py .PHONY: coverage coverage: build rm -rf coverage $(PYTHON) test.py $(TESTFLAGS) --coverage -s src/schooltool .PHONY: coverage-report coverage-report: @cd coverage && ls schooltool* | grep -v tests | xargs grep -c '^>>>>>>' | grep -v ':0$$' .PHONY: coverage-report-list coverage-report-list: @cd coverage && ls schooltool* | grep -v tests | xargs grep -l '^>>>>>>' .PHONY: edit-coverage-reports edit-coverage-reports: @cd coverage && $(EDITOR) `ls schooltool* | grep -v tests | xargs grep -l '^>>>>>>'` .PHONY: vi-coverage-reports vi-coverage-reports: @cd coverage && vi '+/^>>>>>>/' `ls schooltool* | grep -v tests | xargs grep -l '^>>>>>>'` Zope3/principals.zcml: cp Zope3/sample_principals.zcml $@ Zope3/package-includes/schoolbell-configure.zcml: echo '' > $@ Zope3/package-includes/schooltool-configure.zcml: echo '' > $@ .PHONY: dist dist: realclean build update-translations clean rm -rf dist find . -name '*.py[dco]' -exec rm -f {} \; $(PYTHON) setup.py sdist --formats=schooltooltgz .PHONY: signtar signtar: dist md5sum dist/school*.tar.gz > dist/md5sum gpg --clearsign dist/md5sum mv dist/md5sum.asc dist/md5sum .PHONY: extract-translations extract-translations: build # here for backwards compatibility only, # setup.py does the work! .PHONY: update-translations update-translations: set -e; for f in $(PO); do \ msgmerge -U $$f $(POT); \ msgfmt -o $${f%.po}.mo $$f; \ done set -e; for f in $(SBPO); do \ msgmerge -U $$f $(SBPOT); \ msgfmt -o $${f%.po}.mo $$f; \ done rosetta-schooltool.tar.gz: wget $(TRANSLATION) && touch `basename $(TRANSLATION)` rosetta-schooltool: rosetta-schooltool.tar.gz tar -xmzf rosetta-schooltool.tar.gz src/schooltool/locales/%/LC_MESSAGES/schooltool.po: rosetta-schooltool mkdir -p `dirname $@` cp rosetta-schooltool/$*.po $@ .PHONY: get-rosetta-translations get-rosetta-translations: rosetta-schooltool $(foreach locale,$(basename $(notdir $(wildcard rosetta-schooltool/*.po))),src/schooltool/locales/$(locale)/LC_MESSAGES/schooltool.po)