3 AT_BANNER([Autoconf base layer.])
5 # Copyright (C) 2000, 2001, 2003, 2005, 2006 Free Software Foundation, Inc.
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 ## ------------------------------- ##
22 ## AC_REQUIRE: topological sort.. ##
23 ## ------------------------------- ##
25 # Check that dependencies are always properly honored.
27 AT_SETUP([AC_REQUIRE: topological sort])
29 AT_DATA([configure.ac],
30 [[define([REQUIRE_AND_CHECK],
32 test -z "$m4@&t@_translit([$1], [A-Z], [a-z])" && AS_EXIT(1)])
35 [REQUIRE_AND_CHECK([TEST2a])
36 REQUIRE_AND_CHECK([TEST2b])
43 [REQUIRE_AND_CHECK([TEST3])
47 [REQUIRE_AND_CHECK([TEST2a])
54 AC_MSG_ERROR([\$test1 is empty])
64 ## --------------------------- ##
65 ## AC_REQUIRE: error message. ##
66 ## --------------------------- ##
68 # Check that the message mentions AC_DEFUN, not m4_defun.
70 AT_SETUP([AC_REQUIRE: error message])
71 AT_DATA([configure.ac],
72 [[AC_REQUIRE([AC_PROG_CC])
75 AT_CHECK_AUTOCONF([], [1], [],
76 [[configure.ac:1: error: AC_REQUIRE(AC_PROG_CC): cannot be used outside of an AC_DEFUN'd macro
77 configure.ac:1: the top level
78 autom4te: m4 failed with exit status: 1
83 ## ----------------------------------------------- ##
84 ## AC_REQUIRE and AC_DEFUN_ONCE: Require, expand. ##
85 ## ----------------------------------------------- ##
87 AT_SETUP([AC_REQUIRE & AC_DEFUN_ONCE: Require, expand])
89 AT_DATA([configure.ac],
91 [AC_REQUIRE([MULTI_TEST])
92 AC_REQUIRE([SINGLE_TEST])])
94 AC_DEFUN([MULTI_TEST],
95 [multi_test=".$multi_test"])
97 AC_DEFUN_ONCE([SINGLE_TEST],
98 [single_test=".$single_test"])
109 case $multi_test:$single_test in
111 ...:* ) AC_MSG_ERROR([DEFUN_ONCE is broken]);;
112 *:. ) AC_MSG_ERROR([DEFUN is broken (Wow, congrats!)]);;
116 AT_CHECK_AUTOCONF([], 0, [],
117 [configure.ac:17: warning: SINGLE_TEST invoked multiple times
118 configure.ac:18: warning: SINGLE_TEST invoked multiple times
127 ## ----------------------------------------------- ##
128 ## AC_REQUIRE and AC_DEFUN_ONCE: Expand, require. ##
129 ## ----------------------------------------------- ##
131 AT_SETUP([AC_REQUIRE & AC_DEFUN_ONCE: Expand, require])
133 AT_DATA([configure.ac],
135 [AC_REQUIRE([MULTI_TEST])
136 AC_REQUIRE([SINGLE_TEST])])
138 AC_DEFUN([MULTI_TEST],
139 [multi_test=".$multi_test"])
141 AC_DEFUN_ONCE([SINGLE_TEST],
142 [single_test=".$single_test"])
153 case $multi_test:$single_test in
155 ..:* ) AC_MSG_ERROR([DEFUN_ONCE is broken]);;
156 *:. ) AC_MSG_ERROR([DEFUN is broken (Wow, congrats!)]);;
157 * ) AC_MSG_ERROR([received `$multi_test:$single_test']);;
161 AT_CHECK_AUTOCONF([], 0, [],
162 [configure.ac:16: warning: SINGLE_TEST invoked multiple times
170 ## ------------------------- ##
171 ## AC_REQUIRE & AC_PROVIDE. ##
172 ## ------------------------- ##
174 AT_SETUP([AC_REQUIRE & AC_PROVIDE])
176 AT_DATA([configure.ac],
178 [AC_REQUIRE([INNER_TEST])])
180 AC_DEFUN([INNER_TEST],
181 [inner_test=".$inner_test"])
185 AC_PROVIDE([INNER_TEST])
190 * ) AC_MSG_ERROR([received `$inner_test']);;
200 ## ---------------- ##
201 ## AC_CACHE_CHECK. ##
202 ## ---------------- ##
204 # Make sure AC_CACHE_CHECK is silent with -q.
206 AT_SETUP([AC_CACHE_CHECK])
208 AT_DATA([configure.ac],
210 AC_CACHE_CHECK([for nothing],
216 AT_CHECK_CONFIGURE([-q])
221 ## ---------------- ##
222 ## AC_COMPUTE_INT. ##
223 ## ---------------- ##
225 # Make sure AC_COMPUTE_INT fails properly.
227 AT_SETUP([AC_COMPUTE_INT])
229 AT_DATA([configure.ac],
231 AC_COMPUTE_INT([invalid_expression],
234 [invalid_expression=failed])
235 test "$invalid_expression" = failed ||
236 AC_MSG_ERROR([**0** evaluated to $invalid_expression instead of failing])
245 ## ---------------- ##
246 ## AC_TRY_COMMAND. ##
247 ## ---------------- ##
249 AT_SETUP([AC_TRY_COMMAND])
251 AT_DATA([configure.ac],
254 if AC_TRY_COMMAND([(echo "The Cat in the Hat";
255 echo "The Hat in the Cat" >&2) |
256 grep \^The\ Cat\ in\ the\ Hat\$ >/dev/null]); then
259 AC_MSG_ERROR([Didn't see the Cat in the Hat!])
262 if AC_TRY_COMMAND([(echo "The Cat in the Hat";
263 echo "The Hat in the Cat" >&2) |
264 grep \^The\ Hat\ in\ the\ Cat\$ >/dev/null]); then
265 AC_MSG_ERROR([Saw the Hat in the Cat!])
270 AT_CHECK_CONFIGURE([-q])
279 AT_SETUP([Input/Output])
281 m4_pattern_allow([^AS_(MESSAGE|ORIGINAL_STDIN)_FD$])
282 AT_DATA([configure.ac],
284 cat <&AS_ORIGINAL_STDIN_FD >&AS_MESSAGE_FD
287 AT_CHECK([echo Hello | top_srcdir=$abs_top_srcdir ./configure | grep -v 'configure: loading site script '],, [Hello
289 AT_CHECK([echo Hello | top_srcdir=$abs_top_srcdir ./configure --silent])