| # po.m4 serial 3 (gettext-0.14) |
| dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. |
| dnl This file is free software, distributed under the terms of the GNU |
| dnl General Public License. As a special exception to the GNU General |
| dnl Public License, this file may be distributed as part of a program |
| dnl that contains a configuration script generated by Autoconf, under |
| dnl the same distribution terms as the rest of that program. |
| dnl |
| dnl This file can can be used in projects which are not available under |
| dnl the GNU General Public License or the GNU Library General Public |
| dnl License but which still want to provide support for the GNU gettext |
| dnl functionality. |
| dnl Please note that the actual code of the GNU gettext library is covered |
| dnl by the GNU Library General Public License, and the rest of the GNU |
| dnl gettext package package is covered by the GNU General Public License. |
| dnl They are *not* in the public domain. |
| |
| dnl Authors: |
| dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. |
| dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. |
| |
| dnl Checks for all prerequisites of the po subdirectory. |
| AC_DEFUN([AM_PO_SUBDIRS], |
| [ |
| AC_REQUIRE([AC_PROG_MAKE_SET])dnl |
| AC_REQUIRE([AC_PROG_INSTALL])dnl |
| AC_REQUIRE([AM_MKINSTALLDIRS])dnl |
| AC_REQUIRE([AM_NLS])dnl |
| |
| dnl Perform the following tests also if --disable-nls has been given, |
| dnl because they are needed for "make dist" to work. |
| |
| dnl Search for GNU msgfmt in the PATH. |
| dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. |
| dnl The second test excludes FreeBSD msgfmt. |
| AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, |
| [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && |
| (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], |
| :) |
| AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) |
| |
| dnl Search for GNU xgettext 0.12 or newer in the PATH. |
| dnl The first test excludes Solaris xgettext and early GNU xgettext versions. |
| dnl The second test excludes FreeBSD xgettext. |
| AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, |
| [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && |
| (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)], |
| :) |
| dnl Remove leftover from FreeBSD xgettext call. |
| rm -f messages.po |
| |
| dnl Search for GNU msgmerge 0.11 or newer in the PATH. |
| AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, |
| [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) |
| |
| dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. |
| dnl Test whether we really found GNU msgfmt. |
| if test "$GMSGFMT" != ":"; then |
| dnl If it is no GNU msgfmt we define it as : so that the |
| dnl Makefiles still can work. |
| if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && |
| (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then |
| : ; |
| else |
| GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` |
| AC_MSG_RESULT( |
| [found $GMSGFMT program is not GNU msgfmt; ignore it]) |
| GMSGFMT=":" |
| fi |
| fi |
| |
| dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. |
| dnl Test whether we really found GNU xgettext. |
| if test "$XGETTEXT" != ":"; then |
| dnl If it is no GNU xgettext we define it as : so that the |
| dnl Makefiles still can work. |
| if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && |
| (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 |
| : ; |
| else |
| AC_MSG_RESULT( |
| [found xgettext program is not GNU xgettext; ignore it]) |
| XGETTEXT=":" |
| fi |
| dnl Remove leftover from FreeBSD xgettext call. |
| rm -f messages.po |
| fi |
| |
| AC_OUTPUT_COMMANDS([ |
| for ac_file in $CONFIG_FILES; do |
| # Support "outfile[:infile[:infile...]]" |
| case "$ac_file" in |
| *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; |
| esac |
| # PO directories have a Makefile.in generated from Makefile.in.in. |
| case "$ac_file" in */Makefile.in) |
| # Adjust a relative srcdir. |
| ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` |
| ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" |
| ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` |
| # In autoconf-2.13 it is called $ac_given_srcdir. |
| # In autoconf-2.50 it is called $srcdir. |
| test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" |
| case "$ac_given_srcdir" in |
| .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; |
| /*) top_srcdir="$ac_given_srcdir" ;; |
| *) top_srcdir="$ac_dots$ac_given_srcdir" ;; |
| esac |
| if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then |
| rm -f "$ac_dir/POTFILES" |
| test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" |
| cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" |
| POMAKEFILEDEPS="POTFILES.in" |
| # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend |
| # on $ac_dir but don't depend on user-specified configuration |
| # parameters. |
| if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then |
| # The LINGUAS file contains the set of available languages. |
| if test -n "$OBSOLETE_ALL_LINGUAS"; then |
| test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" |
| fi |
| ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` |
| # Hide the ALL_LINGUAS assigment from automake. |
| eval 'ALL_LINGUAS''=$ALL_LINGUAS_' |
| POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" |
| else |
| # The set of available languages was given in configure.in. |
| eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' |
| fi |
| # Compute POFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) |
| # Compute UPDATEPOFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) |
| # Compute DUMMYPOFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) |
| # Compute GMOFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) |
| case "$ac_given_srcdir" in |
| .) srcdirpre= ;; |
| *) srcdirpre='$(srcdir)/' ;; |
| esac |
| POFILES= |
| UPDATEPOFILES= |
| DUMMYPOFILES= |
| GMOFILES= |
| for lang in $ALL_LINGUAS; do |
| POFILES="$POFILES $srcdirpre$lang.po" |
| UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" |
| DUMMYPOFILES="$DUMMYPOFILES $lang.nop" |
| GMOFILES="$GMOFILES $srcdirpre$lang.gmo" |
| done |
| # CATALOGS depends on both $ac_dir and the user's LINGUAS |
| # environment variable. |
| INST_LINGUAS= |
| if test -n "$ALL_LINGUAS"; then |
| for presentlang in $ALL_LINGUAS; do |
| useit=no |
| if test "%UNSET%" != "$LINGUAS"; then |
| desiredlanguages="$LINGUAS" |
| else |
| desiredlanguages="$ALL_LINGUAS" |
| fi |
| for desiredlang in $desiredlanguages; do |
| # Use the presentlang catalog if desiredlang is |
| # a. equal to presentlang, or |
| # b. a variant of presentlang (because in this case, |
| # presentlang can be used as a fallback for messages |
| # which are not translated in the desiredlang catalog). |
| case "$desiredlang" in |
| "$presentlang"*) useit=yes;; |
| esac |
| done |
| if test $useit = yes; then |
| INST_LINGUAS="$INST_LINGUAS $presentlang" |
| fi |
| done |
| fi |
| CATALOGS= |
| if test -n "$INST_LINGUAS"; then |
| for lang in $INST_LINGUAS; do |
| CATALOGS="$CATALOGS $lang.gmo" |
| done |
| fi |
| test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" |
| sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" |
| for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do |
| if test -f "$f"; then |
| case "$f" in |
| *.orig | *.bak | *~) ;; |
| *) cat "$f" >> "$ac_dir/Makefile" ;; |
| esac |
| fi |
| done |
| fi |
| ;; |
| esac |
| done], |
| [# Capture the value of obsolete ALL_LINGUAS because we need it to compute |
| # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it |
| # from automake. |
| eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' |
| # Capture the value of LINGUAS because we need it to compute CATALOGS. |
| LINGUAS="${LINGUAS-%UNSET%}" |
| ]) |
| ]) |
| |
| dnl Postprocesses a Makefile in a directory containing PO files. |
| AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], |
| [ |
| # When this code is run, in config.status, two variables have already been |
| # set: |
| # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, |
| # - LINGUAS is the value of the environment variable LINGUAS at configure |
| # time. |
| |
| changequote(,)dnl |
| # Adjust a relative srcdir. |
| ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` |
| ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" |
| ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` |
| # In autoconf-2.13 it is called $ac_given_srcdir. |
| # In autoconf-2.50 it is called $srcdir. |
| test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" |
| case "$ac_given_srcdir" in |
| .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; |
| /*) top_srcdir="$ac_given_srcdir" ;; |
| *) top_srcdir="$ac_dots$ac_given_srcdir" ;; |
| esac |
| |
| # Find a way to echo strings without interpreting backslash. |
| if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then |
| gt_echo='echo' |
| else |
| if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then |
| gt_echo='printf %s\n' |
| else |
| echo_func () { |
| cat <<EOT |
| $* |
| EOT |
| } |
| gt_echo='echo_func' |
| fi |
| fi |
| |
| # A sed script that extracts the value of VARIABLE from a Makefile. |
| sed_x_variable=' |
| # Test if the hold space is empty. |
| x |
| s/P/P/ |
| x |
| ta |
| # Yes it was empty. Look if we have the expected variable definition. |
| /^[ ]*VARIABLE[ ]*=/{ |
| # Seen the first line of the variable definition. |
| s/^[ ]*VARIABLE[ ]*=// |
| ba |
| } |
| bd |
| :a |
| # Here we are processing a line from the variable definition. |
| # Remove comment, more precisely replace it with a space. |
| s/#.*$/ / |
| # See if the line ends in a backslash. |
| tb |
| :b |
| s/\\$// |
| # Print the line, without the trailing backslash. |
| p |
| tc |
| # There was no trailing backslash. The end of the variable definition is |
| # reached. Clear the hold space. |
| s/^.*$// |
| x |
| bd |
| :c |
| # A trailing backslash means that the variable definition continues in the |
| # next line. Put a nonempty string into the hold space to indicate this. |
| s/^.*$/P/ |
| x |
| :d |
| ' |
| changequote([,])dnl |
| |
| # Set POTFILES to the value of the Makefile variable POTFILES. |
| sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`" |
| POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` |
| # Compute POTFILES_DEPS as |
| # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) |
| POTFILES_DEPS= |
| for file in $POTFILES; do |
| POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" |
| done |
| POMAKEFILEDEPS="" |
| |
| if test -n "$OBSOLETE_ALL_LINGUAS"; then |
| test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" |
| fi |
| if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then |
| # The LINGUAS file contains the set of available languages. |
| ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` |
| POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" |
| else |
| # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. |
| sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`" |
| ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` |
| fi |
| # Hide the ALL_LINGUAS assigment from automake. |
| eval 'ALL_LINGUAS''=$ALL_LINGUAS_' |
| # Compute POFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) |
| # Compute UPDATEPOFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) |
| # Compute DUMMYPOFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) |
| # Compute GMOFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) |
| # Compute PROPERTIESFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) |
| # Compute CLASSFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) |
| # Compute QMFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) |
| # Compute MSGFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) |
| # Compute RESOURCESDLLFILES |
| # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) |
| case "$ac_given_srcdir" in |
| .) srcdirpre= ;; |
| *) srcdirpre='$(srcdir)/' ;; |
| esac |
| POFILES= |
| UPDATEPOFILES= |
| DUMMYPOFILES= |
| GMOFILES= |
| PROPERTIESFILES= |
| CLASSFILES= |
| QMFILES= |
| MSGFILES= |
| RESOURCESDLLFILES= |
| for lang in $ALL_LINGUAS; do |
| POFILES="$POFILES $srcdirpre$lang.po" |
| UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" |
| DUMMYPOFILES="$DUMMYPOFILES $lang.nop" |
| GMOFILES="$GMOFILES $srcdirpre$lang.gmo" |
| PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" |
| CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" |
| QMFILES="$QMFILES $srcdirpre$lang.qm" |
| frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` |
| MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" |
| frobbedlang=`echo $lang | sed -e 's/_/-/g'` |
| RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" |
| done |
| # CATALOGS depends on both $ac_dir and the user's LINGUAS |
| # environment variable. |
| INST_LINGUAS= |
| if test -n "$ALL_LINGUAS"; then |
| for presentlang in $ALL_LINGUAS; do |
| useit=no |
| if test "%UNSET%" != "$LINGUAS"; then |
| desiredlanguages="$LINGUAS" |
| else |
| desiredlanguages="$ALL_LINGUAS" |
| fi |
| for desiredlang in $desiredlanguages; do |
| # Use the presentlang catalog if desiredlang is |
| # a. equal to presentlang, or |
| # b. a variant of presentlang (because in this case, |
| # presentlang can be used as a fallback for messages |
| # which are not translated in the desiredlang catalog). |
| case "$desiredlang" in |
| "$presentlang"*) useit=yes;; |
| esac |
| done |
| if test $useit = yes; then |
| INST_LINGUAS="$INST_LINGUAS $presentlang" |
| fi |
| done |
| fi |
| CATALOGS= |
| JAVACATALOGS= |
| QTCATALOGS= |
| TCLCATALOGS= |
| CSHARPCATALOGS= |
| if test -n "$INST_LINGUAS"; then |
| for lang in $INST_LINGUAS; do |
| CATALOGS="$CATALOGS $lang.gmo" |
| JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" |
| QTCATALOGS="$QTCATALOGS $lang.qm" |
| frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` |
| TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" |
| frobbedlang=`echo $lang | sed -e 's/_/-/g'` |
| CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" |
| done |
| fi |
| |
| sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" |
| if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then |
| # Add dependencies that cannot be formulated as a simple suffix rule. |
| for lang in $ALL_LINGUAS; do |
| frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` |
| cat >> "$ac_file.tmp" <<EOF |
| $frobbedlang.msg: $lang.po |
| @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ |
| \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } |
| EOF |
| done |
| fi |
| if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then |
| # Add dependencies that cannot be formulated as a simple suffix rule. |
| for lang in $ALL_LINGUAS; do |
| frobbedlang=`echo $lang | sed -e 's/_/-/g'` |
| cat >> "$ac_file.tmp" <<EOF |
| $frobbedlang/\$(DOMAIN).resources.dll: $lang.po |
| @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ |
| \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } |
| EOF |
| done |
| fi |
| if test -n "$POMAKEFILEDEPS"; then |
| cat >> "$ac_file.tmp" <<EOF |
| Makefile: $POMAKEFILEDEPS |
| EOF |
| fi |
| mv "$ac_file.tmp" "$ac_file" |
| ]) |