]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - locale/update-makefile.sh
omit external libs and local .exclude file from make depend list
[SourceForge/phpwiki.git] / locale / update-makefile.sh
1 #!/bin/sh
2 #
3 # $Id: update-makefile.sh,v 1.8 2004-12-20 12:44:41 rurban Exp $
4 #
5 # This shell script is used to update the list of .po files and the
6 # dependencies for phpwiki.pot in the Makefile.
7 #
8 # Do not invoke this script directly, rather run:
9 #
10 #    make depend
11 #
12 # to update the Makefile.
13 #
14
15 # Generate the head (manually-edited part) of the new Makefile
16 #
17 makefile_head () {
18     sed '/^# DO NOT DELETE THIS LINE$/,$ d' Makefile && cat <<'EOF'
19 # DO NOT DELETE THIS LINE
20 #
21 # The remainder of this file is auto-generated
22 #
23 # (Run 'make depend' regenerate this section.)
24 #
25 EOF
26 }
27
28 # Find all .po files in po/.
29 #
30 po_files () {
31     find po -name "*.po" |
32         sort |
33         sed 's/^/po: /p;
34              s|^.*/\(.*\)\.po$|mo: \1/LC_MESSAGES/phpwiki.mo \1/LC_MESSAGES/phpwiki.php|;'
35 }
36
37 # Find all php and html source code which should be scanned
38 # by xgettext() for localizeable strings.
39 # find ../lib fails on cygwin
40 # TODO: autogenerate .exclude list from CVS/Entries?
41 pot_file_deps () {
42     (cd ..; find lib themes \( -type d -regex '\(^lib/pear\)\|\(^lib/WikiDB/adodb\)\|\(^lib/nusoap\)\|\(^lib/fpdf\)' \) -prune -o \( -type f -a -name \*.php -o -name \*.tmpl \)) |
43         egrep -v '(^lib/pear)|(^lib/WikiDB/adodb)|(^lib/nusoap)|(^lib/fpdf)' |
44         grep -v -f .exclude |
45         sed 's|^|${POT_FILE}: ../|;' |
46         sort
47 }
48
49 # Generate the new Makefile
50 { makefile_head &&
51     po_files &&
52     echo "#" &&
53     pot_file_deps; } > Makefile.new || exit 1
54
55 if diff -q Makefile Makefile.new > /dev/null
56 then
57     # Don't touch the Makefile if unchanged.
58     # (This avoids updating the timestamp)
59     rm Makefile.new
60     echo "Makefile unchanged" 1>&2
61     exit 0
62 fi
63
64 mv Makefile.new Makefile && echo "Makefile updated" 1>&2