root/Makefile

Revision e1f334c66c10d3d9c86e433aa1a4a55f756791db, 3.7 KB (checked in by Jan Dittberner <jan@…>, 4 years ago)

fix copyright status (fixes #29)

  • add COPYING file with the GPL text
  • update copyright information in DAVAdmin's files
  • Property mode set to 100644
Line 
1# Makefile for DAVAdmin
2#
3# @author Jan Dittberner <jan@dittberner.info>
4# @version $Id$
5# @license GPL
6# @package DAVAdmin
7#
8# Copyright (c) 2007, 2008 Jan Dittberner
9#
10# This file is part of DAVAdmin.
11#
12# DAVAdmin is free software; you can redistribute it and/or modify it
13# under the terms of the GNU General Public License as published by
14# the Free Software Foundation; either version 3 of the License, or
15# (at your option) any later version.
16#
17# DAVAdmin is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with DAVAdmin; if not, see <http://www.gnu.org/licenses/>.
24#
25VERSION := 0.3
26PROJECT := davadmin
27SRCFILES := $(wildcard admin/*.php)
28SRCFILES += $(wildcard admin/scripts/*.php)
29JSFILES := admin/scripts/autocomplete.js admin/scripts/directories.js \
30  admin/scripts/users.js
31APISRC := $(shell echo $(SRCFILES) | sed 's/ /,/g' )
32TEMPDIR := $(shell mktemp -t -d davadmin.XXXXXXXXXX)
33XSRCFILES := $(patsubst %,$(TEMPDIR)/%,$(SRCFILES))
34XJSFILES := $(patsubst %,$(TEMPDIR)/%,$(JSFILES))
35TRANSLANG := de
36POSRC := po
37POFILES := $(foreach lang,$(TRANSLANG),$(POSRC)/$(lang)/LC_MESSAGES/$(PROJECT).po)
38JSPOFILES := $(foreach lang,$(TRANSLANG),$(POSRC)/$(lang)/LC_MESSAGES/$(PROJECT)js.po)
39MOFILES := $(patsubst %.po,%.mo,$(POFILES))
40JSMOFILES := $(patsubst %.po,%.mo,$(JSPOFILES))
41POT=$(POSRC)/$(PROJECT).pot
42JSPOT=$(POSRC)/$(PROJECT)js.pot
43JSTRANS=$(POSRC)/transjs.txt
44
45.PHONY: all
46all: $(POT) $(JSTRANS) $(MOFILES) $(TEMPDIR)/delete
47
48$(MOFILES): %.mo: %.po
49        @echo "msgfmt: $@"
50        msgfmt -o$@ $<
51
52$(POFILES): %: $(POT)
53        @echo "msgmerge: $@"
54        podir=`dirname $@` ; \
55        if test ! -d $$podir; then mkdir -p $$podir; fi
56        if test -f $@; then \
57          msgmerge -U $@ $(POT); \
58        else \
59          cp $(POT) $@; \
60        fi
61        touch $@
62
63$(POT): $(XSRCFILES) $(XJSFILES) po/pot.sed
64        @echo "xgettext: $@"
65        cd $(TEMPDIR) && \
66        xgettext --default-domain=$(PROJECT) --language=php \
67          --from-code=UTF-8 \
68          --msgid-bugs-address="jan@dittberner.info" -o $(CURDIR)/$@ $(SRCFILES)
69        xgettext --default-domain=$(PROJECT) --language=Java \
70          --from-code=UTF-8 --keyword="intl.translate" \
71          --join-existing \
72          --msgid-bugs-address="jan@dittberner.info" -o $(CURDIR)/$@ $(JSFILES)
73        sed -f $(CURDIR)/po/pot.sed < $(CURDIR)/$@ > $(CURDIR)/$@.tmp && \
74        rm -f $(CURDIR)/$@ && mv $(CURDIR)/$@.tmp $(CURDIR)/$@
75        for pofile in $(POFILES); do \
76          if test ! -f $(CURDIR)/$${pofile}; then \
77            cp $(CURDIR)/$@ $(CURDIR)/$${pofile}; \
78          fi; \
79        done
80
81$(JSTRANS): $(XJSFILES)
82        @echo "generate table of translatable string: $@"
83        cd $(TEMPDIR) && \
84        xgettext --default-domain=$(PROJECT)js --language=Java \
85          --from-code=UTF-8 \
86          --omit-header --keyword="intl.translate" --properties-output \
87          --no-location -o- $(JSFILES) \
88        | awk '/^!.+=$$/ { print }' \
89        | sed 's,.\(.*\)=,\1,g; s,\\=,=,g; s,\\ , ,g' \
90        > $(CURDIR)/$@
91
92.INTERMEDIATE: $(XSRCFILES) $(XJSFILES)
93$(XSRCFILES) $(XJSFILES): $(TEMPDIR)/%: %
94        @echo "processing: $<"
95        mkdir -p $(@D)
96        cp $< $@
97
98$(TEMPDIR)/delete:
99        rm -rf $(TEMPDIR)
100
101.PHONY: apidoc
102apidoc:
103        if [ -d apidoc ]; then rm -r apidoc; fi
104        phpdoc -ue on -f $(APISRC) -t apidoc -s
105
106.PHONY: clean distclean
107clean: $(TEMPDIR)/delete
108        find -name '*~' -type f -exec rm {} \;
109
110distclean: clean
111        if [ -d apidoc ]; then rm -r apidoc; fi
112
113RELPREFIX := $(PROJECT)-$(VERSION)
114dist: distclean
115        cd .. ; if test ! -d $(RELPREFIX); then \
116          ln -s trunk $(RELPREFIX)-dev; \
117                tar czh --exclude=.svn -f $(RELPREFIX)-dev.tar.gz $(RELPREFIX)-dev; \
118                rm -f $(RELPREFIX)-dev; \
119        else \
120          tar czhf $(PROJECT)-$(VERSION).tar.gz $(PROJECT)-$(VERSION); \
121        fi
Note: See TracBrowser for help on using the browser.