]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - locale/update-makefile.sh
Don't use GNU makes $(wildcard), instead hard-code dependencies into
[SourceForge/phpwiki.git] / locale / update-makefile.sh
1 #!/bin/sh
2 #
3 # $Id: update-makefile.sh,v 1.1 2002-01-13 22:42:37 dairiki 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 dep
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 dep' to regenerate this section.)
24 #
25 EOF
26 }
27
28 # Find all .po files in po/.
29 #
30 po_files () {
31     find po -name "*.po" -printf 'PO_FILES += %p\n'
32 }
33
34 # Find all .php and .html source code which should be scanned
35 # by xgettext() for localizeable strings.
36 #
37 pot_file_deps () {
38     find ../lib ../templates ../themes                                  \
39         \( -name "*.php" -o -name "*.html" \)                           \
40         -printf '${POT_FILE}: %p\n' |
41             sort
42 }
43
44 # Generate the new Makefile
45 { makefile_head &&
46     po_files &&
47     echo "#" &&
48     pot_file_deps; } > Makefile.new || exit 1
49
50 if diff -q Makefile Makefile.new > /dev/null
51 then
52     # Don't touch the Makefile if unchanged.
53     # (This avoids updating the timestamp)
54     rm Makefile.new
55     echo "Makefile unchanged" 1>&2
56     exit 0
57 fi
58
59 mv Makefile.new Makefile && echo "Makefile updated" 1>&2