blob: 8f2aaf305690f364d361bc72248b3f03a11918bc [file] [log] [blame]
#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src
# Test the autopoint program, without Automake.
: ${AUTOCONF=autoconf}
${AUTOCONF} --version >/dev/null 2>/dev/null \
|| { echo "Skipping test: autoconf not found"; Exit 77; }
cat <<\EOF >configure.ac
AC_PREREQ([2.60])
EOF
${AUTOCONF} >/dev/null 2>/dev/null \
|| { echo "Skipping test: autoconf version too old"; Exit 77; }
rm -f configure.ac
gettext_datadir=$top_builddir/misc
export gettext_datadir
# Check for not copying libintl source.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_CONFIG_AUX_DIR([build-aux])
AC_PROG_CC
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
test ! -d intl || Exit 1
test -d m4 || Exit 1
test -d po || Exit 1
test -d build-aux || Exit 1
test -f m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1
test -f build-aux/config.rpath || Exit 1
rm -fr m4 po ABOUT-NLS build-aux/config.rpath
# Check for copying libintl source of the current version.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT
AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 1 || { cat autopoint.err; Exit 1; }
rm -fr intl m4 po ABOUT-NLS config.rpath
# Check for copying libintl source of an older version.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT
AM_GNU_GETTEXT_VERSION([0.19])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
test -d intl || Exit 1
test -d m4 || Exit 1
test -d po || Exit 1
test -f intl/VERSION || Exit 1
test -f m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1
rm -fr intl m4 po ABOUT-NLS config.rpath
# Check for custom macro directory.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
# first macro directory, in which po.m4, etc. belong
AC_CONFIG_MACRO_DIR([gettext-m4])
# second macro directory
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
test ! -d intl || Exit 1
test ! -d m4 || Exit 1
test -d gettext-m4 || Exit 1
test -d po || Exit 1
test -f gettext-m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1
rm -fr gettext-m4 po ABOUT-NLS config.rpath
# Check for multiple arguments to AM_GNU_GETTEXT
# <https://savannah.gnu.org/bugs/?40082>
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT([external], [need-formatstring-macros])
AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
test ! -d intl || Exit 1
test -d m4 || Exit 1
test -d po || Exit 1
test -f m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1
rm -fr m4 po ABOUT-NLS config.rpath
# Check for certain built-in macros are not in effect when tracing:
# <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580>
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
dnl m4_shiftn internally calls m4_assert, which is disabled by autopoint
m4_define([_gt_recurse],
[m4_ifblank([\$1], , [_gt_recurse(m4_shiftn(1, \$@))])])
_gt_recurse([a], [b], , [c])
AC_PROG_CC
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
test ! -d intl || Exit 1
test -d m4 || Exit 1
test -d po || Exit 1
test -f m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1
rm -fr m4 po ABOUT-NLS config.rpath
# Check for AM_GNU_GETTEXT_REQUIRE_VERSION.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
AM_GNU_GETTEXT([external])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
test ! -d intl || Exit 1
test -d m4 || Exit 1
test -d po || Exit 1
test -f m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1
# Check for the case where both AM_GNU_GETTEXT_REQUIRE_VERSION and
# AM_GNU_GETTEXT_VERSION are used. Once with libintl source.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
# This shall be ignored when AM_GNU_GETTEXT_REQUIRE_VERSION is defined
AM_GNU_GETTEXT_VERSION([0.19])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >autopoint.out 2>autopoint.err
test $? = 1 || { cat autopoint.err; Exit 1; }
# Check for the case where both AM_GNU_GETTEXT_REQUIRE_VERSION and
# AM_GNU_GETTEXT_VERSION are used. Once without libintl source.
cat <<EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
# This shall be ignored when AM_GNU_GETTEXT_REQUIRE_VERSION is defined
AM_GNU_GETTEXT_VERSION([0.19])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
AC_OUTPUT
EOF
$gettext_datadir/autopoint >autopoint.out 2>autopoint.err
test $? = 0 || { cat autopoint.err; Exit 1; }
grep 'using AM_GNU_GETTEXT_REQUIRE_VERSION' autopoint.out 2>&1 >/dev/null || Exit 1
test ! -d intl || Exit 1
test -d m4 || Exit 1
test -d po || Exit 1
test -f m4/po.m4 || Exit 1
test -f po/Makefile.in.in || Exit 1