Blame tests/base.at

Packit Service 9646c7
#							-*- Autotest -*-
Packit Service 9646c7
Packit Service 9646c7
AT_BANNER([Autoconf base layer.])
Packit Service 9646c7
Packit Service 9646c7
# Copyright (C) 2000-2001, 2003, 2005-2012 Free Software Foundation,
Packit Service 9646c7
# Inc.
Packit Service 9646c7
#
Packit Service 9646c7
# This program is free software: you can redistribute it and/or modify
Packit Service 9646c7
# it under the terms of the GNU General Public License as published by
Packit Service 9646c7
# the Free Software Foundation, either version 3 of the License, or
Packit Service 9646c7
# (at your option) any later version.
Packit Service 9646c7
#
Packit Service 9646c7
# This program is distributed in the hope that it will be useful,
Packit Service 9646c7
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 9646c7
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 9646c7
# GNU General Public License for more details.
Packit Service 9646c7
#
Packit Service 9646c7
# You should have received a copy of the GNU General Public License
Packit Service 9646c7
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ------------------------------- ##
Packit Service 9646c7
## AC_REQUIRE: topological sort..  ##
Packit Service 9646c7
## ------------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
# Check that dependencies are always properly honored.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_REQUIRE: topological sort])
Packit Service 9646c7
AT_KEYWORDS([m4@&t@_require])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[define([REQUIRE_AND_CHECK],
Packit Service 9646c7
[AC_REQUIRE([$1])
Packit Service 9646c7
test -z "$m4@&t@_translit([$1], [A-Z], [a-z])" && AS_EXIT(1)])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([TEST1],
Packit Service 9646c7
[REQUIRE_AND_CHECK([TEST2a])
Packit Service 9646c7
REQUIRE_AND_CHECK([TEST2b])
Packit Service 9646c7
test1=set])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([TEST2a],
Packit Service 9646c7
[test2a=set])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([TEST2b],
Packit Service 9646c7
[REQUIRE_AND_CHECK([TEST3])
Packit Service 9646c7
test2b=set])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([TEST3],
Packit Service 9646c7
[REQUIRE_AND_CHECK([TEST2a])
Packit Service 9646c7
test3=set])
Packit Service 9646c7
Packit Service 9646c7
AS@&t@_INIT
Packit Service 9646c7
Packit Service 9646c7
TEST1
Packit Service 9646c7
test -z "$test1" &&
Packit Service 9646c7
  AC_MSG_ERROR([\$test1 is empty])
Packit Service 9646c7
AS_EXIT(0)
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## --------------------------- ##
Packit Service 9646c7
## AC_REQUIRE: error message.  ##
Packit Service 9646c7
## --------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
# Check that the message mentions AC_DEFUN, not m4_defun.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_REQUIRE: error message])
Packit Service 9646c7
AT_KEYWORDS([m4@&t@_require])
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_REQUIRE([AC_PROG_CC])
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([], [1], [],
Packit Service 9646c7
[[configure.ac:1: error: AC_REQUIRE(AC_PROG_CC): cannot be used outside of an AC_DEFUN'd macro
Packit Service 9646c7
configure.ac:1: the top level
Packit Service 9646c7
autom4te: m4 failed with exit status: 1
Packit Service 9646c7
]])
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ----------------------------------------------- ##
Packit Service 9646c7
## AC_REQUIRE and AC_DEFUN_ONCE: Require, expand.  ##
Packit Service 9646c7
## ----------------------------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_REQUIRE & AC_DEFUN_ONCE: [Require, expand]])
Packit Service 9646c7
AT_KEYWORDS([m4@&t@_require m4@&t@_require_once])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_DEFUN([TEST],
Packit Service 9646c7
[AC_REQUIRE([MULTI_TEST])
Packit Service 9646c7
AC_REQUIRE([SINGLE_TEST])])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([MULTI_TEST],
Packit Service 9646c7
[multi_test=".$multi_test"])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN_ONCE([SINGLE_TEST],
Packit Service 9646c7
[single_test=".$single_test"])
Packit Service 9646c7
Packit Service 9646c7
AS@&t@_INIT
Packit Service 9646c7
Packit Service 9646c7
TEST
Packit Service 9646c7
TEST
Packit Service 9646c7
MULTI_TEST
Packit Service 9646c7
MULTI_TEST
Packit Service 9646c7
SINGLE_TEST
Packit Service 9646c7
SINGLE_TEST
Packit Service 9646c7
Packit Service 9646c7
case $multi_test:$single_test in
Packit Service 9646c7
  ...:. ) AS_EXIT(0);;
Packit Service 9646c7
  ...:* ) AC_MSG_ERROR([DEFUN_ONCE is broken]);;
Packit Service 9646c7
  *:.   ) AC_MSG_ERROR([DEFUN is broken (Wow, congrats!)]);;
Packit Service 9646c7
esac
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([], 0, [])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ----------------------------------------------- ##
Packit Service 9646c7
## AC_REQUIRE and AC_DEFUN_ONCE: Expand, require.  ##
Packit Service 9646c7
## ----------------------------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_REQUIRE & AC_DEFUN_ONCE: [Expand, require]])
Packit Service 9646c7
AT_KEYWORDS([m4@&t@_require m4@&t@_require_once])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_DEFUN([TEST],
Packit Service 9646c7
[AC_REQUIRE([MULTI_TEST])
Packit Service 9646c7
AC_REQUIRE([SINGLE_TEST])])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([MULTI_TEST],
Packit Service 9646c7
[multi_test=".$multi_test"])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN_ONCE([SINGLE_TEST],
Packit Service 9646c7
[single_test=".$single_test"])
Packit Service 9646c7
Packit Service 9646c7
AS@&t@_INIT
Packit Service 9646c7
Packit Service 9646c7
MULTI_TEST
Packit Service 9646c7
MULTI_TEST
Packit Service 9646c7
SINGLE_TEST
Packit Service 9646c7
SINGLE_TEST
Packit Service 9646c7
TEST
Packit Service 9646c7
TEST
Packit Service 9646c7
Packit Service 9646c7
case $multi_test:$single_test in
Packit Service 9646c7
  ..:. ) AS_EXIT(0);;
Packit Service 9646c7
  ..:* ) AC_MSG_ERROR([DEFUN_ONCE is broken]);;
Packit Service 9646c7
  *:.  ) AC_MSG_ERROR([DEFUN is broken (Wow, congrats!)]);;
Packit Service 9646c7
     * ) AC_MSG_ERROR([received `$multi_test:$single_test']);;
Packit Service 9646c7
esac
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([], 0, [])
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ------------------------- ##
Packit Service 9646c7
## AC_REQUIRE & AC_PROVIDE.  ##
Packit Service 9646c7
## ------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_REQUIRE & AC_PROVIDE])
Packit Service 9646c7
AT_KEYWORDS([m4@&t@_require])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_DEFUN([TEST],
Packit Service 9646c7
[AC_REQUIRE([INNER_TEST])])
Packit Service 9646c7
Packit Service 9646c7
AC_DEFUN([INNER_TEST],
Packit Service 9646c7
[inner_test=".$inner_test"])
Packit Service 9646c7
Packit Service 9646c7
AS@&t@_INIT
Packit Service 9646c7
Packit Service 9646c7
AC_PROVIDE([INNER_TEST])
Packit Service 9646c7
TEST
Packit Service 9646c7
Packit Service 9646c7
case $inner_test in
Packit Service 9646c7
  "" ) AS_EXIT(0);;
Packit Service 9646c7
  *  ) AC_MSG_ERROR([received `$inner_test']);;
Packit Service 9646c7
esac
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## -------- ##
Packit Service 9646c7
## AC_INIT. ##
Packit Service 9646c7
## -------- ##
Packit Service 9646c7
Packit Service 9646c7
# Make sure AC_INIT sets PACKAGE_TARNAME properly.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_INIT])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT([GNU fu], [1.0], [bug-fu@gnu.org])
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([-q])
Packit Service 9646c7
Packit Service 9646c7
# Ensure we get the expected definition:
Packit Service 9646c7
AT_CHECK([grep "^PACKAGE_TARNAME='fu'\$" configure], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ------------------------------------- ##
Packit Service 9646c7
## AC_INIT with unusual version strings. ##
Packit Service 9646c7
## ------------------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_INIT with unusual version strings])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT([GNU String++ with  spaces (foo)],
Packit Service 9646c7
	  [2.48++  (2010-07-03)], [[http://example.com/?a=b&c=d#e]], [clisp])
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
if echo 'ab*c' | grep -F 'ab*c' >/dev/null 2>&1; then
Packit Service 9646c7
  FGREP="grep -F"
Packit Service 9646c7
else
Packit Service 9646c7
  FGREP=fgrep
Packit Service 9646c7
fi
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([-Werror])
Packit Service 9646c7
AT_CHECK_CONFIGURE([-q])
Packit Service 9646c7
AT_CHECK_CONFIGURE([--help], [], [stdout])
Packit Service 9646c7
AT_CHECK([[$FGREP 'com/?a=b&c=d#e' stdout]], [], [ignore])
Packit Service 9646c7
AT_CHECK_CONFIGURE([--version], [], [stdout])
Packit Service 9646c7
AT_CHECK([$FGREP 'GNU String++ with  spaces (foo)' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([$FGREP '2.48++  (2010-07-03)' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK([./config.status --help], [], [stdout])
Packit Service 9646c7
AT_CHECK([[$FGREP 'com/?a=b&c=d#e' stdout]], [], [ignore])
Packit Service 9646c7
AT_CHECK([./config.status --version], [], [stdout])
Packit Service 9646c7
AT_CHECK([$FGREP 'GNU String++ with  spaces (foo)' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([$FGREP '2.48++  (2010-07-03)' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT([GNU "String++"],
Packit Service 9646c7
	  [2.48], [http://example.com/], [clisp])
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([-Werror], [1], [ignore], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'AC_INIT: not a literal: ' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT([GNU String++],
Packit Service 9646c7
	  ['codename' 2.48], [http://example.com/], [clisp])
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([-Werror], [1], [ignore], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'AC_INIT: not a literal: ' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT([GNU
Packit Service 9646c7
String++], [2.48], [http://example.com/], [clisp])
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([-Werror], [1], [ignore], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'AC_INIT: not a literal: ' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## -------------- ##
Packit Service 9646c7
## AC_COPYRIGHT.  ##
Packit Service 9646c7
## -------------- ##
Packit Service 9646c7
Packit Service 9646c7
# Ensure the FSF notice as well as the user-provided one are present
Packit Service 9646c7
# in the head of the testsuite as well as the --version output.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC@&t@_COPYRIGHT])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT([GNU fu], [1.0])
Packit Service 9646c7
AC_COPYRIGHT([[This is just a test notice, not a real one, so let's avoid
Packit Service 9646c7
words that may be matched by scanners for legal things,
Packit Service 9646c7
causing extra work for distributors.
Packit Service 9646c7
Multi-line values should be supported.
Packit Service 9646c7
]])
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([--version], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'Copyright.*Free Software Foundation' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'This is just a test notice' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([sed -ne 50q -e '/Copyright/{' -e N -e N -e N -e N -e 's/#//g' ]dnl
Packit Service 9646c7
	 [    -e 's/\n//g' -e p -e '}' configure ]dnl
Packit Service 9646c7
         [  | grep 'Copyright.*Free Software Foundation'],
Packit Service 9646c7
	 [], [ignore])
Packit Service 9646c7
AT_CHECK([sed 50q configure | grep 'This is just a test notice'], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ---------------- ##
Packit Service 9646c7
## AC_CACHE_CHECK.  ##
Packit Service 9646c7
## ---------------- ##
Packit Service 9646c7
Packit Service 9646c7
# Make sure AC_CACHE_CHECK is silent with -q.
Packit Service 9646c7
# Also make sure we warn about cache id's not named with `_cv_'.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_CACHE_CHECK])
Packit Service 9646c7
AT_KEYWORDS([CONFIG_SITE])
Packit Service 9646c7
Packit Service 9646c7
# Don't let a config.site file affect this test.
Packit Service 9646c7
AS_UNSET([CONFIG_SITE])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
# m4_define([ac_nothing], [ac_cv_absolutely_nothing])
Packit Service 9646c7
AC_CACHE_CHECK([for nothing],
Packit Service 9646c7
	       [ac_nothing],
Packit Service 9646c7
	       [ac_nothing=found])
Packit Service 9646c7
Packit Service 9646c7
AC_MSG_CHECKING([for some other variable])
Packit Service 9646c7
commands_to_set_it_was_run=false
Packit Service 9646c7
AC_CACHE_VAL([my_cv_variable], [
Packit Service 9646c7
# FOO
Packit Service 9646c7
commands_to_set_it_was_run=true
Packit Service 9646c7
my_cv_variable=true
Packit Service 9646c7
])
Packit Service 9646c7
AC_MSG_RESULT([$my_cv_variable])
Packit Service 9646c7
Packit Service 9646c7
# Ensure that the result is available at this point.
Packit Service 9646c7
if test ${my_cv_variable+set} != set; then
Packit Service 9646c7
  AC_MSG_ERROR([AC@&@&t@t@_CACHE_VAL did not ensure that the cache variable was set])
Packit Service 9646c7
fi
Packit Service 9646c7
Packit Service 9646c7
# AC_CACHE_SAVE should be enough here, no need for AC_OUTPUT.
Packit Service 9646c7
AC_CACHE_SAVE
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF([], [], [], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'must contain _cv_ to be cached' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# Do not warn about defines:
Packit Service 9646c7
sed 's/^# m4_define/m4_define/' configure.ac > t
Packit Service 9646c7
mv -f t configure.ac
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([-q])
Packit Service 9646c7
Packit Service 9646c7
sed '/m4_define/d; s/ac_nothing/ac_cv_nothing/' configure.ac > t
Packit Service 9646c7
mv -f t configure.ac
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([-q])
Packit Service 9646c7
Packit Service 9646c7
# Print a message saying that the result was cached, iff it was cached.
Packit Service 9646c7
AT_CHECK_CONFIGURE([], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'cached' stdout], [1])
Packit Service 9646c7
AT_CHECK_CONFIGURE([my_cv_variable='yes it is set'], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'cached.*yes it is set' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# --cache-file is honored and has caching semantics.
Packit Service 9646c7
AT_CHECK_CONFIGURE([--cache-file=foobar.cache], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'cached' stdout], [1])
Packit Service 9646c7
AT_CHECK([test ! -f config.cache])
Packit Service 9646c7
AT_CHECK([grep 'my_cv_variable.*true' foobar.cache], [], [ignore])
Packit Service 9646c7
AT_CHECK_CONFIGURE([--cache-file=foobar.cache], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'some other variable.*cached.*true' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# A setting on the command line overrides the cache.
Packit Service 9646c7
AT_CHECK_CONFIGURE([--cache-file=foobar.cache my_cv_variable='override'], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'cached.*override' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'my_cv_variable.*override' foobar.cache], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# Values containing braces need special internal treatment.
Packit Service 9646c7
AT_CHECK_CONFIGURE([-C ac_cv_nothing='{' my_cv_variable='contains } brace'],
Packit Service 9646c7
		   [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'ac_cv_nothing.*{' config.cache], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'my_cv_variable.*contains } brace' config.cache], [], [ignore])
Packit Service 9646c7
AT_CHECK_CONFIGURE([-C], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'nothing.*{' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'some other variable.*contains } brace' stdout], [], [ignore])
Packit Service 9646c7
rm -f config.cache
Packit Service 9646c7
Packit Service 9646c7
# Diagnose common side-effects that are errors in COMMANDS-TO-SET-IT:
Packit Service 9646c7
sed 's/^# FOO/AC_DEFINE([some-define], [1], [oooh.])/' configure.ac > t
Packit Service 9646c7
mv -f t configure.ac
Packit Service 9646c7
AT_CHECK_AUTOCONF([], [], [], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'suspicious.*AC_DEFINE' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
sed 's/^AC_DEFINE.*/AC_SUBST([some_substitution], [oooh.])/' configure.ac > t
Packit Service 9646c7
mv -f t configure.ac
Packit Service 9646c7
AT_CHECK_AUTOCONF([], [], [], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'suspicious.*AC_SUBST' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# Ensure the examples from the manual work as intended.
Packit Service 9646c7
# Taken from autoconf.texi:Caching Results
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
AC_DEFUN([AC_SHELL_TRUE],
Packit Service 9646c7
[AC_CACHE_CHECK([whether true(1) works], [my_cv_shell_true_works],
Packit Service 9646c7
                [my_cv_shell_true_works=no
Packit Service 9646c7
                 (true) 2>/dev/null && my_cv_shell_true_works=yes
Packit Service 9646c7
                 if test "x$my_cv_shell_true_works" = xyes; then
Packit Service 9646c7
                   AC_DEFINE([TRUE_WORKS], [1],
Packit Service 9646c7
                             [Define if `true(1)' works properly.])
Packit Service 9646c7
                 fi])
Packit Service 9646c7
])
Packit Service 9646c7
AC_SHELL_TRUE
Packit Service 9646c7
]])
Packit Service 9646c7
AT_CHECK_AUTOCONF([-Werror], [1], [], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'suspicious.*AC_DEFINE' stderr], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# Taken from autoconf.texi:Caching Results
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
AC_DEFUN([AC_SHELL_TRUE],
Packit Service 9646c7
[AC_CACHE_CHECK([whether true(1) works], [my_cv_shell_true_works],
Packit Service 9646c7
                [my_cv_shell_true_works=no
Packit Service 9646c7
                 (true) 2>/dev/null && my_cv_shell_true_works=yes])
Packit Service 9646c7
 if test "x$my_cv_shell_true_works" = xyes; then
Packit Service 9646c7
   AC_DEFINE([TRUE_WORKS], [1],
Packit Service 9646c7
             [Define if `true(1)' works properly.])
Packit Service 9646c7
 fi
Packit Service 9646c7
])
Packit Service 9646c7
AC_SHELL_TRUE
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
AT_CHECK_AUTOCONF([-Werror])
Packit Service 9646c7
AT_CHECK_CONFIGURE([-C], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep my_cv_shell_true_works config.cache], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'true.*works.*yes' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_CONFIGURE([--config-cache], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'true.*works.*cached.*yes' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# config.status only pays attention to the cache file with --recheck.
Packit Service 9646c7
AT_CHECK([./config.status], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep cache stdout], [1])
Packit Service 9646c7
AT_CHECK([./config.status --recheck], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep cache stdout], [0], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# By default, configure uses no cache file, neither loading nor updating it.
Packit Service 9646c7
: > a-stamp-file
Packit Service 9646c7
AT_CHECK_CONFIGURE([], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep cache stdout], [1])
Packit Service 9646c7
AT_CHECK([LC_ALL=C ls -t config.cache a-stamp-file | sed 1q | grep config.cache], [1])
Packit Service 9646c7
Packit Service 9646c7
# Using a symlinked cache file works.
Packit Service 9646c7
: > cache
Packit Service 9646c7
rm -f config.cache
Packit Service 9646c7
AS_LN_S([cache], [config.cache])
Packit Service 9646c7
AT_CHECK_CONFIGURE([-C])
Packit Service 9646c7
# Either the system does not support symlinks, or the symlinked-to file
Packit Service 9646c7
# should be updated.
Packit Service 9646c7
AT_CHECK([test -s cache || test ! -h config.cache])
Packit Service 9646c7
Packit Service 9646c7
# config.site can specify a site-wide cache, accumulating information.
Packit Service 9646c7
# Also test that we don't run afoul of sourcing a file with leading -.
Packit Service 9646c7
AT_DATA([-config.site],
Packit Service 9646c7
[[cache_file=sitecache
Packit Service 9646c7
]])
Packit Service 9646c7
AT_DATA([sitecache],
Packit Service 9646c7
[[my_cv_some_preset_cache_var=yes
Packit Service 9646c7
]])
Packit Service 9646c7
CONFIG_SITE=-config.site
Packit Service 9646c7
export CONFIG_SITE
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
AT_CHECK([grep my_cv_some_preset_cache_var sitecache], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep my_cv_shell_true_works sitecache], [], [ignore])
Packit Service 9646c7
AT_CHECK_CONFIGURE([], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'whether true.*works.*cached' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
dnl Until we can find a way to avoid catastrophic failure,
Packit Service 9646c7
dnl skip the rest of this test on such shells.
Packit Service 9646c7
echo 'if' > syntax
Packit Service 9646c7
AT_CHECK([${CONFIG_SHELL-$SHELL} -c 'case `. ./syntax; echo $?` in
Packit Service 9646c7
            0|"") exit 77;; esac'], [0], [ignore], [ignore])
Packit Service 9646c7
Packit Service 9646c7
# Check that config cache scripts must be well-formed.
Packit Service 9646c7
AT_DATA([bad.site],
Packit Service 9646c7
[[fi
Packit Service 9646c7
]])
Packit Service 9646c7
CONFIG_SITE=$PWD/bad.site
Packit Service 9646c7
AT_CHECK_CONFIGURE([ || exit 1], [1], [stdout], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'failed to load site script' stderr], [], [ignore], [ignore],
Packit Service 9646c7
	 [AT_CHECK([grep 'whether true' stdout], [1])])
Packit Service 9646c7
Packit Service 9646c7
# However, a missing file is ignored.
Packit Service 9646c7
CONFIG_SITE=./no-such-file
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## --------------- ##
Packit Service 9646c7
## AC_CACHE_LOAD.  ##
Packit Service 9646c7
## --------------- ##
Packit Service 9646c7
Packit Service 9646c7
# Test AC_CACHE_LOAD.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_CACHE_LOAD])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
$some_test_code
Packit Service 9646c7
AC_CACHE_LOAD
Packit Service 9646c7
AC_MSG_NOTICE([some_cv_variable is $some_cv_variable])
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AS_UNSET([some_test_code])
Packit Service 9646c7
AT_DATA([new-cache],
Packit Service 9646c7
[[some_cv_variable=value-from-new-cache
Packit Service 9646c7
]])
Packit Service 9646c7
AT_CHECK_CONFIGURE([some_test_code='eval cache_file=new-cache'], [], [stdout])
Packit Service 9646c7
AT_CHECK([grep 'some_cv_variable.*value-from-new-cache' stdout], [], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ---------------- ##
Packit Service 9646c7
## AC_COMPUTE_INT.  ##
Packit Service 9646c7
## ---------------- ##
Packit Service 9646c7
Packit Service 9646c7
# Make sure AC_COMPUTE_INT fails properly.
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_COMPUTE_INT])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
AC_COMPUTE_INT([invalid_expression],
Packit Service 9646c7
	       [**0**],
Packit Service 9646c7
	       [],
Packit Service 9646c7
	       [invalid_expression=failed])
Packit Service 9646c7
test "$invalid_expression" = failed ||
Packit Service 9646c7
  AC_MSG_ERROR([**0** evaluated to $invalid_expression instead of failing])
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ---------------- ##
Packit Service 9646c7
## AC_TRY_COMMAND.  ##
Packit Service 9646c7
## ---------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_TRY_COMMAND])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
Packit Service 9646c7
if AC_TRY_COMMAND([(echo "The Cat in the Hat";
Packit Service 9646c7
		    echo "The Hat in the Cat" >&2) |
Packit Service 9646c7
		   grep \^The\ Cat\ in\ the\ Hat\$ >/dev/null]); then
Packit Service 9646c7
  :
Packit Service 9646c7
else
Packit Service 9646c7
  AC_MSG_ERROR([didn't see the Cat in the Hat])
Packit Service 9646c7
fi
Packit Service 9646c7
Packit Service 9646c7
if AC_TRY_COMMAND([(echo "The Cat in the Hat";
Packit Service 9646c7
		    echo "The Hat in the Cat" >&2) |
Packit Service 9646c7
		   grep \^The\ Hat\ in\ the\ Cat\$ >/dev/null]); then
Packit Service 9646c7
  AC_MSG_ERROR([saw the Hat in the Cat])
Packit Service 9646c7
fi
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([-q])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ------------ ##
Packit Service 9646c7
## Input/Output ##
Packit Service 9646c7
## ------------ ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([Input/Output])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
cat <&AS@&t@_ORIGINAL_STDIN_FD >&AS@&t@_MESSAGE_FD
Packit Service 9646c7
]])
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK([echo Hello | CONFIG_SITE=/dev/null ./configure $configure_options | grep -v 'configure: loading site script '],, [Hello
Packit Service 9646c7
])
Packit Service 9646c7
AT_CHECK([echo Hello | CONFIG_SITE=/dev/null ./configure $configure_options --silent])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ------------------- ##
Packit Service 9646c7
## configure arguments ##
Packit Service 9646c7
## ------------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([configure arguments])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
echo "$@"
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([FOO=bar --enable-baz --without-zork --silent], [0], [stdout], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'FOO=bar --enable-baz --without-zork --silent' stdout], [0], [ignore], [ignore])
Packit Service 9646c7
Packit Service 9646c7
dnl check that syntax error is detected
Packit Service 9646c7
AT_CHECK_CONFIGURE([=], [1], [], [ignore], [ignore])
Packit Service 9646c7
AT_CHECK_CONFIGURE([1=2], [1], [], [ignore], [ignore])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ------------------------------ ##
Packit Service 9646c7
## AC_ARG_ENABLE and AC_ARG_WITH. ##
Packit Service 9646c7
## ------------------------------ ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([AC_ARG_ENABLE and AC_ARG_WITH])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA_M4SH([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
# Taken from autoconf.texi:Pretty Help Strings.
Packit Service 9646c7
AC_ARG_WITH([foo],
Packit Service 9646c7
  [AS_HELP_STRING([--with-foo],
Packit Service 9646c7
     [use foo (default is no)])],
Packit Service 9646c7
  [use_foo=$withval],
Packit Service 9646c7
  [use_foo=no])
Packit Service 9646c7
AC_ARG_WITH([c++],
Packit Service 9646c7
  [AS_HELP_STRING([--with-c++],
Packit Service 9646c7
     [with c++])],
Packit Service 9646c7
  [choice_with=$withval])
Packit Service 9646c7
AC_ARG_ENABLE([c++],
Packit Service 9646c7
  [AS_HELP_STRING([--enable-c++],
Packit Service 9646c7
     [enable c++])],
Packit Service 9646c7
  [choice_enable=$enableval])
Packit Service 9646c7
echo "use_foo: $use_foo"
Packit Service 9646c7
echo "with_c++: $with_c__, $choice_with"
Packit Service 9646c7
echo "enable_c++: $enable_c__, $choice_enable"
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
AT_CHECK_CONFIGURE([--help | grep foo], [0],
Packit Service 9646c7
[[  --with-foo              use foo (default is no)
Packit Service 9646c7
]], [ignore])
Packit Service 9646c7
AT_CHECK_CONFIGURE([--with-foo=yes --with-c++ --disable-c++],
Packit Service 9646c7
  [], [stdout], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'use_foo: yes' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'with_c++: yes, yes' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'enable_c++: no, no' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'unrecognized option' stdout], [1])
Packit Service 9646c7
AT_CHECK_CONFIGURE([--without-foo --with-c++=no --enable-c++=maybe],
Packit Service 9646c7
  [], [stdout], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'use_foo: no' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'with_c++: no, no' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'enable_c++: maybe, maybe' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'unrecognized option' stdout], [1])
Packit Service 9646c7
AT_CHECK_CONFIGURE([], [], [stdout], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'use_foo: no' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'with_c++: , $' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'enable_c++: , $' stdout], [], [ignore])
Packit Service 9646c7
AT_CHECK([grep 'unrecognized option' stdout], [1])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## --------------------- ##
Packit Service 9646c7
## configure directories ##
Packit Service 9646c7
## --------------------- ##
Packit Service 9646c7
Packit Service 9646c7
AT_SETUP([configure directories])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([foo.in],
Packit Service 9646c7
[[prefix=@prefix@
Packit Service 9646c7
exec_prefix=@exec_prefix@
Packit Service 9646c7
libdir=@libdir@
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_DATA([configure.ac],
Packit Service 9646c7
[[AC_INIT
Packit Service 9646c7
AC_CONFIG_FILES([foo])
Packit Service 9646c7
AC_OUTPUT
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CHECK_AUTOCONF
Packit Service 9646c7
dnl check that relative paths are rejected
Packit Service 9646c7
AT_CHECK_CONFIGURE([--libdir=.], [1], [ignore], [stderr])
Packit Service 9646c7
AT_CHECK([grep 'expected an absolute directory name for --libdir: \.' stderr],
Packit Service 9646c7
	 [0], [ignore])
Packit Service 9646c7
Packit Service 9646c7
dnl check that extra slashes are stripped, and that defaults are not expanded
Packit Service 9646c7
AT_CHECK_CONFIGURE([--prefix=/usr//])
Packit Service 9646c7
AT_CHECK([cat foo], [0], [[prefix=/usr
Packit Service 9646c7
exec_prefix=${prefix}
Packit Service 9646c7
libdir=${exec_prefix}/lib
Packit Service 9646c7
]])
Packit Service 9646c7
Packit Service 9646c7
AT_CLEANUP