1 |
# po.m4 serial 1 (gettext-0.12) |
2 |
dnl Copyright © 1995-2003 Free Software Foundation, Inc. |
3 |
dnl This file is free software, distributed under the terms of the GNU |
4 |
dnl General Public License. As a special exception to the GNU General |
5 |
dnl Public License, this file may be distributed as part of a program |
6 |
dnl that contains a configuration script generated by Autoconf, under |
7 |
dnl the same distribution terms as the rest of that program. |
8 |
dnl |
9 |
dnl This file can can be used in projects which are not available under |
10 |
dnl the GNU General Public License or the GNU Library General Public |
11 |
dnl License but which still want to provide support for the GNU gettext |
12 |
dnl functionality. |
13 |
dnl Please note that the actual code of the GNU gettext library is covered |
14 |
dnl by the GNU Library General Public License, and the rest of the GNU |
15 |
dnl gettext package package is covered by the GNU General Public License. |
16 |
dnl They are *not* in the public domain. |
17 |
|
18 |
dnl Authors: |
19 |
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. |
20 |
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. |
21 |
|
22 |
dnl Checks for all prerequisites of the po subdirectory. |
23 |
AC_DEFUN([AM_PO_SUBDIRS], |
24 |
[ |
25 |
AC_REQUIRE([AC_PROG_MAKE_SET])dnl |
26 |
AC_REQUIRE([AC_PROG_INSTALL])dnl |
27 |
AC_REQUIRE([AM_MKINSTALLDIRS])dnl |
28 |
AC_REQUIRE([AM_NLS])dnl |
29 |
|
30 |
dnl Perform the following tests also if --disable-nls has been given, |
31 |
dnl because they are needed for "make dist" to work. |
32 |
|
33 |
dnl Search for GNU msgfmt in the PATH. |
34 |
dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. |
35 |
dnl The second test excludes FreeBSD msgfmt. |
36 |
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, |
37 |
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && |
38 |
(if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], |
39 |
:) |
40 |
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) |
41 |
|
42 |
dnl Search for GNU xgettext 0.12 or newer in the PATH. |
43 |
dnl The first test excludes Solaris xgettext and early GNU xgettext versions. |
44 |
dnl The second test excludes FreeBSD xgettext. |
45 |
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, |
46 |
[$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && |
47 |
(if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], |
48 |
:) |
49 |
dnl Remove leftover from FreeBSD xgettext call. |
50 |
rm -f messages.po |
51 |
|
52 |
dnl Search for GNU msgmerge 0.11 or newer in the PATH. |
53 |
AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, |
54 |
[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) |
55 |
|
56 |
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. |
57 |
dnl Test whether we really found GNU msgfmt. |
58 |
if test "$GMSGFMT" != ":"; then |
59 |
dnl If it is no GNU msgfmt we define it as : so that the |
60 |
dnl Makefiles still can work. |
61 |
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && |
62 |
(if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then |
63 |
: ; |
64 |
else |
65 |
GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` |
66 |
AC_MSG_RESULT( |
67 |
[found $GMSGFMT program is not GNU msgfmt; ignore it]) |
68 |
GMSGFMT=":" |
69 |
fi |
70 |
fi |
71 |
|
72 |
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. |
73 |
dnl Test whether we really found GNU xgettext. |
74 |
if test "$XGETTEXT" != ":"; then |
75 |
dnl If it is no GNU xgettext we define it as : so that the |
76 |
dnl Makefiles still can work. |
77 |
if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && |
78 |
(if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then |
79 |
: ; |
80 |
else |
81 |
AC_MSG_RESULT( |
82 |
[found xgettext program is not GNU xgettext; ignore it]) |
83 |
XGETTEXT=":" |
84 |
fi |
85 |
dnl Remove leftover from FreeBSD xgettext call. |
86 |
rm -f messages.po |
87 |
fi |
88 |
|
89 |
AC_OUTPUT_COMMANDS([ |
90 |
for ac_file in $CONFIG_FILES; do |
91 |
# Support "outfile[:infile[:infile...]]" |
92 |
case "$ac_file" in |
93 |
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; |
94 |
esac |
95 |
# PO directories have a Makefile.in generated from Makefile.in.in. |
96 |
case "$ac_file" in */Makefile.in) |
97 |
# Adjust a relative srcdir. |
98 |
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` |
99 |
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" |
100 |
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` |
101 |
# In autoconf-2.13 it is called $ac_given_srcdir. |
102 |
# In autoconf-2.50 it is called $srcdir. |
103 |
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" |
104 |
case "$ac_given_srcdir" in |
105 |
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; |
106 |
/*) top_srcdir="$ac_given_srcdir" ;; |
107 |
*) top_srcdir="$ac_dots$ac_given_srcdir" ;; |
108 |
esac |
109 |
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then |
110 |
rm -f "$ac_dir/POTFILES" |
111 |
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" |
112 |
cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" |
113 |
POMAKEFILEDEPS="POTFILES.in" |
114 |
# ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend |
115 |
# on $ac_dir but don't depend on user-specified configuration |
116 |
# parameters. |
117 |
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then |
118 |
# The LINGUAS file contains the set of available languages. |
119 |
if test -n "$OBSOLETE_ALL_LINGUAS"; then |
120 |
test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" |
121 |
fi |
122 |
ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` |
123 |
# Hide the ALL_LINGUAS assigment from automake. |
124 |
eval 'ALL_LINGUAS''=$ALL_LINGUAS_' |
125 |
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" |
126 |
else |
127 |
# The set of available languages was given in configure.in. |
128 |
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' |
129 |
fi |
130 |
case "$ac_given_srcdir" in |
131 |
.) srcdirpre= ;; |
132 |
*) srcdirpre='$(srcdir)/' ;; |
133 |
esac |
134 |
POFILES= |
135 |
GMOFILES= |
136 |
UPDATEPOFILES= |
137 |
DUMMYPOFILES= |
138 |
for lang in $ALL_LINGUAS; do |
139 |
POFILES="$POFILES $srcdirpre$lang.po" |
140 |
GMOFILES="$GMOFILES $srcdirpre$lang.gmo" |
141 |
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" |
142 |
DUMMYPOFILES="$DUMMYPOFILES $lang.nop" |
143 |
done |
144 |
# CATALOGS depends on both $ac_dir and the user's LINGUAS |
145 |
# environment variable. |
146 |
INST_LINGUAS= |
147 |
if test -n "$ALL_LINGUAS"; then |
148 |
for presentlang in $ALL_LINGUAS; do |
149 |
useit=no |
150 |
if test "%UNSET%" != "$LINGUAS"; then |
151 |
desiredlanguages="$LINGUAS" |
152 |
else |
153 |
desiredlanguages="$ALL_LINGUAS" |
154 |
fi |
155 |
for desiredlang in $desiredlanguages; do |
156 |
# Use the presentlang catalog if desiredlang is |
157 |
# a. equal to presentlang, or |
158 |
# b. a variant of presentlang (because in this case, |
159 |
# presentlang can be used as a fallback for messages |
160 |
# which are not translated in the desiredlang catalog). |
161 |
case "$desiredlang" in |
162 |
"$presentlang"*) useit=yes;; |
163 |
esac |
164 |
done |
165 |
if test $useit = yes; then |
166 |
INST_LINGUAS="$INST_LINGUAS $presentlang" |
167 |
fi |
168 |
done |
169 |
fi |
170 |
CATALOGS= |
171 |
if test -n "$INST_LINGUAS"; then |
172 |
for lang in $INST_LINGUAS; do |
173 |
CATALOGS="$CATALOGS $lang.gmo" |
174 |
done |
175 |
fi |
176 |
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" |
177 |
sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" |
178 |
for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do |
179 |
if test -f "$f"; then |
180 |
case "$f" in |
181 |
*.orig | *.bak | *~) ;; |
182 |
*) cat "$f" >> "$ac_dir/Makefile" ;; |
183 |
esac |
184 |
fi |
185 |
done |
186 |
fi |
187 |
;; |
188 |
esac |
189 |
done], |
190 |
[# Capture the value of obsolete ALL_LINGUAS because we need it to compute |
191 |
# POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it |
192 |
# from automake. |
193 |
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' |
194 |
# Capture the value of LINGUAS because we need it to compute CATALOGS. |
195 |
LINGUAS="${LINGUAS-%UNSET%}" |
196 |
]) |
197 |
]) |