diff options
Diffstat (limited to 't/gettext-macros.sh')
-rwxr-xr-x | t/gettext-macros.sh | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/t/gettext-macros.sh b/t/gettext-macros.sh new file mode 100755 index 000000000..38749d36c --- /dev/null +++ b/t/gettext-macros.sh @@ -0,0 +1,94 @@ +#! /bin/sh +# Copyright (C) 2011-2012 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Try to find the gettext '.m4' files and make them easily accessed +# to the test cases requiring them. +# See also automake bug#9807. + +. ./defs || Exit 1 + +extract_program_version () +{ + "$1" --version | sed 1q | $PERL -ne '/(\d(?:\.\d+)+)/ and print "$1\n"' +} + +echo "# Automatically generated by $me." > get.sh +echo : >> get.sh + +# The 'gettextize' and 'autopoint' scripts will look into Makefile.am. +echo ACLOCAL_AMFLAGS = -I m4 > Makefile.am + +# Prefer autopoint to gettextize, since the more modern versions of the +# latter might unconditionally require user interaction to complete; +# yes, this means confirmation from /dev/tty (!) -- see: +# <http://lists.gnu.org/archive/html/bug-gettext/2011-12/msg00000.html> +# Since this "forced interaction" behaviour of gettextize wasn't present +# before the introduction of autopoint, we should be able to safely +# fall back to calling gettextize non-interactively if autopoint is not +# present. +if autopoint --version; then + am_gettextize_command=autopoint +else + am_gettextize_command=gettextize +fi + +# We will need to specify the correct autopoint (or gettextize) version +# in the AM_GNU_GETTEXT_VERSION call in configure.ac if we want autopoint +# (or gettextize) to setup the correct infrastructure -- in particular, +# for what concerns us, to bring in all the required .m4 files. +autopoint_version=`extract_program_version $am_gettextize_command` \ + && test -n "$autopoint_version" \ + || autopoint_version=0.10.35 + +cat > configure.ac <<END +AC_INIT([foo], [1.0]) +AC_PROG_CC +# Both required by autopoint. +AM_GNU_GETTEXT +AM_GNU_GETTEXT_VERSION([$autopoint_version]) +END + +if $am_gettextize_command --force && test -f m4/gettext.m4; then + echo "ACLOCAL_PATH='`pwd`/m4':\$ACLOCAL_PATH" >> get.sh + echo "export ACLOCAL_PATH" >> get.sh +else + # Older versions of gettext might not have a gettextize program + # available, but this doesn't mean the user hasn't made the gettext + # macros available, e.g., by properly setting ACLOCAL_PATH. + rm -rf m4 + mkdir m4 + # See below for an explanation about the use the of '-Wno-syntax'. + if $ACLOCAL -Wno-syntax -I m4 --install && test -f m4/gettext.m4; then + : # Gettext macros already accessible by default. + else + echo "skip_all_ \"couldn't find or get gettext macros\"" >> get.sh + fi +fi + +. ./get.sh + +$ACLOCAL --force -I m4 || cat >> get.sh <<'END' +# We need to use '-Wno-syntax', since we do not want our test suite +# to fail merely because some third-party '.m4' file is underquoted. +ACLOCAL="$ACLOCAL -Wno-syntax" +END + +# The file gettextize or autopoint might have copied in the 'm4' +# subdirectory of the test directory are going to be needed by +# other tests, so we must not remove the test directory. +keep_testdirs=yes + +: |