(AC_CHECK_DECL): Assume C89 or better,
[autoconf/tsuna.git] / tests / tools.at
blobf6447b79c3fdc22775c0114680266c75447f7873
1 #                                                       -*- Autotest -*-
3 AT_BANNER([Executables (autoheader, autoupdate...).])
5 # Copyright (C) 2000, 2001, 2003, 2004, 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 2, or (at your option)
10 # 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, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 # 02110-1301, USA.
23 ## ----------------------------- ##
24 ## Syntax of the shell scripts.  ##
25 ## ----------------------------- ##
27 # We use `/bin/sh -n script' to check that there are no syntax errors
28 # in the scripts.  Although incredible, there are /bin/sh that go into
29 # endless loops with `-n', e.g., SunOS's:
31 #   $ uname -a
32 #   SunOS ondine 4.1.3 2 sun4m unknown
33 #   $ cat endless.sh
34 #   while false
35 #   do
36 #     :
37 #   done
38 #   exit 0
39 #   $ time sh endless.sh
40 #   sh endless.sh  0,02s user 0,03s system 78% cpu 0,064 total
41 #   $ time sh -nx endless.sh
42 #   ^Csh -nx endless.sh  3,67s user 0,03s system 63% cpu 5,868 total
44 # So before using `/bin/sh -n' to check our scripts, we first check
45 # that `/bin/sh -n' is not broken to death.
47 AT_SETUP([Syntax of the shell scripts])
49 AT_CHECK([test "$ac_cv_sh_n_works" = yes || exit 77])
51 # Specify the absolute name of the tool, as some shells don't honor PATH when
52 # running `sh PROG'.
54 AT_CHECK_SHELL_SYNTAX([$abs_top_builddir/bin/autoconf])
55 AT_CHECK_SHELL_SYNTAX([$abs_top_builddir/tests/autoconf])
56 AT_CHECK_SHELL_SYNTAX([$abs_top_builddir/tests/testsuite])
58 # These are not built, they are in the src tree.
59 AT_CHECK_SHELL_SYNTAX([$abs_top_srcdir/build-aux/install-sh])
60 AT_CHECK_SHELL_SYNTAX([$abs_top_srcdir/build-aux/missing])
62 AT_CLEANUP
67 ## ---------------------------- ##
68 ## Syntax of the Perl scripts.  ##
69 ## ---------------------------- ##
71 AT_SETUP([Syntax of the Perl scripts])
73 AT_CHECK_PERL_SYNTAX([autoheader])
74 AT_CHECK_PERL_SYNTAX([autom4te])
75 AT_CHECK_PERL_SYNTAX([autoreconf])
76 AT_CHECK_PERL_SYNTAX([autoscan])
77 AT_CHECK_PERL_SYNTAX([autoupdate])
78 AT_CHECK_PERL_SYNTAX([ifnames])
80 AT_CLEANUP
85 ## ------------------ ##
86 ## autom4te's cache.  ##
87 ## ------------------ ##
89 AT_SETUP([autom4te cache])
91 AT_DATA_M4SUGAR([[script.4s]],
92 [[m4_include([foo])
93 ]])
95 # Everything is OK.
96 touch foo
97 AT_CHECK_M4SUGAR
99 # We moved a file: it should fail
100 mkdir sub
101 mv foo sub
102 AT_CHECK_M4SUGAR([], [1], [],
103 [m4:script.4s:1: cannot open `foo': No such file or directory
104 autom4te: m4 failed with exit status: 1
107 # But if we change the main file, then we should no longer complain of
108 # missing files.
109 AT_DATA_M4SUGAR([[script.4s]],
110 [[m4_include([sub/foo])
112 AT_CHECK_M4SUGAR
114 AT_CLEANUP
119 ## ------------------ ##
120 ## autoconf --trace.  ##
121 ## ------------------ ##
124 # autoconf --trace: user macros
125 # -----------------------------
126 AT_SETUP([autoconf --trace: user macros])
128 AT_DATA([configure.ac],
129 [[m4_define([active], [ACTIVE])
130 m4_define([TRACE1], [TRACE2(m4_shift($@))])
131 m4_define([TRACE2], [[$2], $1])
133 # No arguments.
134 TRACE1
135 TRACE2
137 # With arguments, single line.
138 TRACE1(foo, @bar, @baz)
139 TRACE1(foo, TRACE1(bar, baz))
140 TRACE1(foo, active, baz)
141 TRACE1(foo, [active], TRACE1(active, [active]))
143 # With arguments, multiple lines.
144 TRACE1(foo
145 bar,
147 foo)
150 # Several --traces.
151 AT_CHECK_AUTOCONF([-t TRACE1 -t TRACE2], 0,
152 [[configure.ac:6:TRACE1:
153 configure.ac:6:TRACE2:
154 configure.ac:7:TRACE2:
155 configure.ac:10:TRACE1:foo:@bar:@baz
156 configure.ac:10:TRACE2:@bar:@baz
157 configure.ac:11:TRACE1:bar:baz
158 configure.ac:11:TRACE2:baz
159 configure.ac:11:TRACE1:foo::baz
160 configure.ac:11:TRACE2::baz
161 configure.ac:12:TRACE1:foo:ACTIVE:baz
162 configure.ac:12:TRACE2:ACTIVE:baz
163 configure.ac:13:TRACE1:ACTIVE:active
164 configure.ac:13:TRACE2:active
165 configure.ac:13:TRACE1:foo:active::ACTIVE
166 configure.ac:13:TRACE2:active::ACTIVE
167 configure.ac:19:TRACE1:foo bar:bar foo
168 configure.ac:19:TRACE2:bar foo
171 # Several line requests.
172 AT_CHECK_AUTOCONF([[-t TRACE1:'
173 [$1], [$2], [$3].']], 0,
175 [], [], [].
177 [foo], [@bar], [@baz].
179 [bar], [baz], [].
181 [foo], [], [baz].
183 [foo], [ACTIVE], [baz].
185 [ACTIVE], [active], [].
187 [foo], [active], [].
189 [foo
190 bar], [bar
191 foo], [].
194 # ${sep}@.
195 AT_CHECK_AUTOCONF([-t TRACE2:'${)===(}@'], 0,
196 [[[]
198 [@bar])===([@baz]
199 [baz]
200 [])===([baz]
201 [ACTIVE])===([baz]
202 [active]
203 [active])===([])===([ACTIVE]
204 [bar
205 foo]
208 AT_CLEANUP
211 # autoconf --trace: builtins
212 # --------------------------
213 AT_SETUP([autoconf --trace: builtins])
215 AT_DATA([configure.ac],
216 [[define([active], [ACTIVE])
219 AT_CHECK_AUTOCONF([[-t define | sed -n '$p']],
220          0,
221 [[configure.ac:1:define:active:ACTIVE
224 # FIXME: Without `$1' the following test dies.  Groumphf, once again to
225 # dive into obscure feature interaction...
226 # Note that using `-i' means we need the *.m4 files, not the *.m4f files,
227 # hence we need srcdir, not builddir.
228 AT_CHECK_AUTOCONF([[-t define:'$1' -i| sed -n '$p']],
229          0,
230 [[active
233 AT_CLEANUP
237 ## ---------------------------- ##
238 ## autoconf: forbidden tokens.  ##
239 ## ---------------------------- ##
242 # autoconf: forbidden tokens, basic
243 # ---------------------------------
244 AT_SETUP([autoconf: forbidden tokens, basic])
246 AT_DATA_M4SH([configure.ac],
247 [[AS_INIT
248 m4_foo
249 _m4_bar
250 AS_FOO
251 _AS_BAR
252 [dnl]
255 AT_CHECK_AUTOCONF([], 1, [],
256 [[configure.ac:2: error: possibly undefined macro: m4@&t@_foo
257       If this token and others are legitimate, please use m4@&t@_pattern_allow.
258       See the Autoconf documentation.
259 configure.ac:3: error: possibly undefined macro: _m4@&t@_bar
260 configure.ac:4: error: possibly undefined macro: AS@&t@_FOO
261 configure.ac:5: error: possibly undefined macro: _AS@&t@_BAR
262 configure.ac:6: error: possibly undefined macro: d@&t@nl
265 AT_CLEANUP
268 # autoconf: forbidden tokens, exceptions
269 # --------------------------------------
270 AT_SETUP([autoconf: forbidden tokens, exceptions])
272 AT_DATA_M4SH([configure.ac],
273 [[AS_INIT
275 # This is allowed in spite of the name.
276 # It is on purpose that we check the case where there are several
277 # tokens on the same line.
278 m4_pattern_allow([^AS_ALLOWED$])
279 NOT_AS_ALLOWED AS_ALLOWED AS_ALLOWED_NOT
281 # Test forbidding.
282 m4_pattern_forbid([^FORBIDDEN$])
283 NOT_FORBIDDEN FORBIDDEN FORBIDDEN_NOT
285 # Test Autoconf's patterns.
286 AS_THIS_IS_INVALID and _AS_THIS_IS_INVALID_TOO
287 BUT_AZ_THIS_IS_NOT ALTHOUGH_AS_THIS_IS
288 # This is legal, although there is `AS_DEFINE' in there.
289 BAS_DEFINE
290 # AS_THIS_IS_A_COMMENT so just shut up.
291 It would be very bad if Autoconf forgot to expand [AS_]INIT!
294 AT_CHECK_AUTOCONF([], 1, [],
295 [[configure.ac:1: error: possibly undefined macro: AS@&t@_INIT
296       If this token and others are legitimate, please use m4@&t@_pattern_allow.
297       See the Autoconf documentation.
298 configure.ac:7: error: possibly undefined macro: AS@&t@_ALLOWED_NOT
299 configure.ac:10: error: possibly undefined macro: FORBIDDEN
300 configure.ac:14: error: possibly undefined macro: AS@&t@_THIS_IS_INVALID
301 configure.ac:14: error: possibly undefined macro: _AS@&t@_THIS_IS_INVALID_TOO
304 AT_CLEANUP
307 # autoconf: automatically allowed tokens
308 # --------------------------------------
309 AT_SETUP([autoconf: automatically allowed tokens])
311 AT_DATA_M4SH([configure.ac],
312 [[AC_INIT
313 m4_pattern_forbid([^FB_])
314 AC_DEFINE([FB_ONE])
315 AC_SUBST([FB_TWO])
316 AC_OUTPUT
319 AT_CHECK_AUTOCONF
321 AT_CLEANUP
324 # autoconf: do not forbid the empty token
325 # ---------------------------------------
326 AT_SETUP([autoconf: the empty token])
328 AT_DATA_M4SH([configure.ac],
329 [[m4_pattern_allow([^foo$])
330 m4_divert([0])dnl
331  line that begins with a space
334 AT_CHECK_AUTOCONF
336 AT_CLEANUP
339 # autoconf: subdirectories
340 # ------------------------
341 AT_SETUP([autoconf: subdirectories])
343 AT_DATA([configure.ac],
344 [[AC_INIT
345 AC_PROG_MKDIR_P
346 AC_CONFIG_FILES(sub/foo)
347 AC_OUTPUT
350 mkdir sub
352 AT_DATA([sub/foo.in],
353 [[@MKDIR_P@
356 AT_DATA([install-sh])
358 AT_CHECK_AUTOCONF
359 AT_CHECK_CONFIGURE
360 AT_CHECK([[grep '^[^/].*/mkdir -p' sub/foo]], 1)
362 AT_CLEANUP
368 ## --------- ##
369 ## ifnames.  ##
370 ## --------- ##
372 AT_SETUP([ifnames])
374 AT_DATA([iftest1.c],
375 [[#ifdef DEF1
376 #ifndef DEF2
377 #if ! defined DEF3 && defined DEF4 /* but not defined DEF5 */
378     # if SPACES
379         #       if      TABS
380 /* #if C_COMMENTS */
381 // #if CXX_COMMENTS
382 #if LINE1 = \
383 LINE2
384 #if (VAL1*VAL2)==VAL3+VAL4 /* Not VAL5 !!! */
387 AT_DATA([iftest2.c],
388 [[#ifdef IFTEST2
389 #if VAL1
392 AT_CHECK([ifnames iftest1.c iftest2.c], 0,
393 [DEF1 iftest1.c
394 DEF2 iftest1.c
395 DEF3 iftest1.c
396 DEF4 iftest1.c
397 IFTEST2 iftest2.c
398 LINE1 iftest1.c
399 LINE2 iftest1.c
400 SPACES iftest1.c
401 TABS iftest1.c
402 VAL1 iftest1.c iftest2.c
403 VAL2 iftest1.c
404 VAL3 iftest1.c
405 VAL4 iftest1.c
406 ], [])
408 AT_CLEANUP
412 ## ------------ ##
413 ## autoheader.  ##
414 ## ------------ ##
416 # autoheader is intensively used in its modern form throughout this
417 # test suite.  But we also have to check that acconfig.h still works.
418 # autoheader uses autoconf --trace, so traces first.
420 AT_SETUP([autoheader])
422 AT_DATA([acconfig.h],
423 [[/* Define this to whatever you want. */
424 #undef this
428 # 1. Check that `acconfig.h' is still honored.
429 AT_DATA([configure.ac],
430 [[AC_INIT
431 AC_CONFIG_HEADERS(config.h:config.hin)
432 AC_DEFINE(this, "whatever you want.")
435 AT_CHECK_AUTOHEADER([], [], [], [ignore])
436 AT_CHECK([cat config.hin], 0,
437 [[/* config.hin.  Generated from configure.ac by autoheader.  */
438 /* Define this to whatever you want. */
439 #undef this
441 /* Define to the address where bug reports for this package should be sent. */
442 #undef PACKAGE_BUGREPORT
444 /* Define to the full name of this package. */
445 #undef PACKAGE_NAME
447 /* Define to the full name and version of this package. */
448 #undef PACKAGE_STRING
450 /* Define to the one symbol short name of this package. */
451 #undef PACKAGE_TARNAME
453 /* Define to the version of this package. */
454 #undef PACKAGE_VERSION
458 # 2. Check that missing templates are a fatal error.
459 AT_DATA([configure.ac],
460 [[AC_INIT
461 AC_CONFIG_HEADERS(config.h:config.hin)
462 AC_DEFINE(that, "whatever you want.")
465 # The test suite goes too fast for the cache time stamps...
466 # Pass --force.
467 AT_CHECK_AUTOHEADER([--force], [1], [], [ignore])
470 # 3. Check TOP and BOTTOM.
471 AT_DATA([acconfig.h],
472 [[/* Top from acconfig.h. */
473 @TOP@
474 /* Middle from acconfig.h. */
475 @BOTTOM@
476 /* Bottom from acconfig.h. */
479 AT_DATA([configure.ac],
480 [[AC_INIT
481 AC_CONFIG_HEADERS(config.h:config.hin)
482 AH_TOP([Top1 from configure.ac.])
483 AH_TOP([Top2 from configure.ac.])
484 AH_TOP([The Cat in a h@t.])
485 AH_VERBATIM([Middle], [Middle from configure.ac.])
486 AH_VERBATIM([Mouse],  [The Mouse in a h@t.])
487 AH_BOTTOM([Bottom1 from configure.ac.])
488 AH_BOTTOM([Bottom2 from configure.ac.])
489 AH_BOTTOM([The Dog in a h@t.])
491 AC_DEFINE([ANT], [@], [The Ant in a h@t.])
495 # Yes, that's right: the `middle' part of `acconfig.h' is still before
496 # the AH_TOP part.  But so what, you're not supposed to use the two
497 # together.
498 # Ignore STDERR which is the longuish complaint against autoheader junk
499 # files.
500 AT_CHECK_AUTOHEADER([--force], [], [], [ignore])
501 AT_CHECK([cat config.hin], 0,
502 [[/* config.hin.  Generated from configure.ac by autoheader.  */
503 /* Top from acconfig.h. */
504 /* Middle from acconfig.h. */
506 Top1 from configure.ac.
508 Top2 from configure.ac.
510 The Cat in a h@t.
512 /* The Ant in a h@t. */
513 #undef ANT
515 Middle from configure.ac.
517 The Mouse in a h@t.
519 /* Define to the address where bug reports for this package should be sent. */
520 #undef PACKAGE_BUGREPORT
522 /* Define to the full name of this package. */
523 #undef PACKAGE_NAME
525 /* Define to the full name and version of this package. */
526 #undef PACKAGE_STRING
528 /* Define to the one symbol short name of this package. */
529 #undef PACKAGE_TARNAME
531 /* Define to the version of this package. */
532 #undef PACKAGE_VERSION
534 Bottom1 from configure.ac.
536 Bottom2 from configure.ac.
538 The Dog in a h@t.
539 /* Bottom from acconfig.h. */
542 AT_CLEANUP
547 ## ------------ ##
548 ## autoupdate.  ##
549 ## ------------ ##
551 # Check that AC_CANONICAL_SYSTEM and AC_OUTPUT are properly updated.
552 AT_SETUP([autoupdate])
554 AT_DATA([configure.ac],
555 [[AC_INIT(Test, 1.0)
556 AC_CANONICAL_SYSTEM
557 # The doc says 27 is a valid fubar.
558 fubar=27
559 AC_OUTPUT(Makefile, echo $fubar, fubar=$fubar)
562 AT_DATA([expout],
563 [[AC_INIT([Test],[1.0])
564 AC_CANONICAL_TARGET
565 # The doc says 27 is a valid fubar.
566 fubar=27
567 AC_CONFIG_FILES([Makefile])
568 AC_CONFIG_COMMANDS([default],[echo $fubar],[fubar=$fubar])
569 AC_OUTPUT
572 # Checking `autoupdate'.
573 AT_CHECK_AUTOUPDATE
574 AT_CHECK([cat configure.ac], 0, [expout])
575 # Checking that `autoupdate' is idempotent
576 AT_CHECK_AUTOUPDATE
577 AT_CHECK([cat configure.ac], 0, [expout])
579 AT_CLEANUP(configure.ac~)
582 # autoupdating AC_LINK_FILES
583 # --------------------------
584 AT_SETUP([autoupdating AC_LINK_FILES])
586 AT_DATA([configure.ac],
587 [[AC_INIT
588 AC_LINK_FILES(dst1 dst2, src1 src2)
589 AC_OUTPUT
592 AT_DATA([dst1], dst1
594 AT_DATA([dst2], dst2
597 # Checking `autoupdate'.
598 AT_CHECK_AUTOUPDATE([], 0, [], ignore)
599 AT_CHECK_AUTOCONF
600 AT_CHECK_CONFIGURE
601 AT_CHECK([cat src1], 0, [dst1
603 AT_CHECK([cat src2], 0, [dst2
606 AT_CLEANUP(src1 src2 configure.ac~)
609 # autoupdating AC_PREREQ
610 # ----------------------
611 AT_SETUP([autoupdating AC_PREREQ])
613 # Produce `AC_PREREQ(<AUTOUPDATE VERSION>)'.
614 AT_CHECK([autoupdate --version | sed 's/.*) //;q'], 0, [stdout])
615 autoupdate_version=`cat stdout`
616 echo "AC_PREREQ($autoupdate_version)" >expout
618 AT_CHECK([echo "AC_PREREQ(1.0)" | autoupdate -],
619          0, [expout], [])
621 AT_CHECK([echo "AC_PREREQ($autoupdate_version)" | autoupdate -],
622          0, [expout], [])
624 AT_CHECK([echo "AC_PREREQ(999.99)" | autoupdate -],
625          63, [], [ignore])
627 AT_CLEANUP
630 # autoupdating AU_ALIAS
631 # ---------------------
632 AT_SETUP([autoupdating AU_ALIAS])
634 AT_DATA([configure.ac],
635 [[AC_INIT
636 AC_DEFUN([FOO], [$#])
637 AU_ALIAS([BAZ],[FOO])
638 test "FOO:FOO():FOO(x) BAZ:BAZ():BAZ(x)" = "0:1:1 0:1:1" || exit 1
639 AC_PROG_CC
640 AC_STDC_HEADERS
641 AC_OUTPUT
644 # Checking `autoupdate'.
645 AT_CHECK_AUTOUPDATE
646 AT_CHECK_AUTOCONF
647 AT_CHECK_CONFIGURE
648 AT_CHECK([grep 'AC_HEADER_STDC(' configure.ac], 1, [ignore], [ignore])
649 AT_CHECK([grep 'AC_HEADER_STDC' configure.ac], 0, [ignore], [ignore])
651 AT_CLEANUP
654 # autoupdating OLD to NEW
655 # -----------------------
657 # The example taken from the code comments.
658 AT_SETUP([autoupdating OLD to NEW])
660 AT_DATA([aclocal.m4],
661 [[AU_DEFUN([OLD], [NEW([$1, $2], m4@&t@_eval([$1 + $2]))])
662 AC_DEFUN([NEW], [echo "sum($1) = $2"])
665 AT_DATA([configure.ac],
666 [[AC_INIT
667 OLD(1, 2)
668 NEW([0, 0], [0])
671 # Checking `autoupdate'.
672 AT_CHECK_AUTOUPDATE
673 AT_CHECK_AUTOCONF
674 AT_CHECK_CONFIGURE
675 AT_CHECK([[grep 'NEW(\[1, 2], *\[3])' configure.ac]], 0, [ignore], [ignore])
676 AT_CHECK([[grep 'NEW(\[0, 0], *\[0])' configure.ac]], 0, [ignore], [ignore])
678 AT_CLEANUP
681 # autoupdating AC_HELP_STRING
682 # ---------------------------
683 AT_SETUP([autoupdating AC_HELP_STRING])
685 AT_DATA([configure.ac],
686 [[AC_INIT
687 AC_ARG_ENABLE([foo], [AC_HELP_STRING([--enable-foo], [foo bar])], [:], [:])
690 # Checking `autoupdate'.
691 AT_CHECK_AUTOUPDATE([], [], [], [ignore])
692 AT_CHECK_AUTOCONF
693 AT_CHECK_CONFIGURE([], [], [], [ignore])
694 AT_CHECK([[grep '\[--enable-foo], *\[foo bar]' configure.ac]], 0, [ignore], [ignore])
696 AT_CLEANUP
699 # autoupdating with m4sugar
700 # -------------------------
701 AT_SETUP([autoupdating with m4sugar])
703 AT_DATA([aclocal.m4],
704 [[AU_DEFUN([OLD],
705 [m4@&t@_pushdef([foo], [bar])dn@&t@l
706 echo "foo $1 foo"
707 m4@&t@_popdef([foo])dn@&t@l
711 touch foo.in
713 AT_DATA([configure.ac],
714 [[AC_PREREQ(2.54)
715 m4_define([gnumeric_version_epoch], [1])
716 AC_INIT
717 OLD([ bla  bla ])
718 AC_FOREACH([name], [n1 n2],
719            [echo name
721 AC_CHECKING([for feature])
722 AC_MSG_RESULT_UNQUOTED([`echo done`])
724 AC_OUTPUT([foo])
727 # Checking `autoupdate'.
728 AT_CHECK_AUTOUPDATE([], [], [], [ignore])
729 AT_CHECK_AUTOCONF
730 AT_CHECK_CONFIGURE([], [], [], [ignore])
732 AT_CLEANUP
735 # autoupdating AC_LANG_SAVE
736 # -------------------------
737 AT_SETUP([autoupdating AC_LANG_SAVE])
739 AT_DATA([configure.ac],
740 [[AC_INIT
741 AC_LANG_SAVE
742 AC_LANG_RESTORE
743 AC_LANG_SAVE
744 AC_LANG_RESTORE
747 # Checking `autoupdate'.
748 AT_CHECK_AUTOUPDATE([], [], [], [ignore])
749 AT_CHECK_AUTOCONF
750 AT_CHECK_CONFIGURE([], [], [], [ignore])
752 AT_CLEANUP
755 # autoupdating AC_FOREACH
756 # -----------------------
757 AT_SETUP([autoupdating AC_FOREACH])
759 AT_DATA([aclocal.m4],
760 [[AU_DEFUN([OLD], [AC_FOREACH([myvar], [4 5 6], [' myvar'])])
763 AT_DATA([configure.ac],
764 [[AC_INIT
765 echo AC_FOREACH([myvar], [1 2 3], [' myvar'])OLD
768 # Checking `autoupdate'.
769 AT_CHECK_AUTOUPDATE
770 AT_CHECK([[grep 'echo 1 2 3 4 5 6' configure.ac]], 1, [ignore], [ignore])
771 AT_CHECK([[grep 'm4@&t@_foreach_w' configure.ac]], 0, [ignore], [ignore])
772 AT_CHECK_AUTOCONF
773 AT_CHECK_CONFIGURE([], [0], [stdout])
774 AT_CHECK([[grep ' 1 2 3 4 5 6' stdout]], 0, [ignore], [ignore])
776 AT_CLEANUP
779 # autoupdating with aclocal and m4_include
780 # ----------------------------------------
781 AT_SETUP([autoupdating with aclocal and m4@&t@_include])
783 # We use aclocal.
784 AT_CHECK([aclocal --version || exit 77], [], [ignore], [ignore])
786 mkdir m4 aclocal
787 AT_DATA([configure.in],
788 [[AC_INIT(x,0)
789 AC_UNCHANGED_MACRO
790 AC_OLD_MACRO
791 AC_OUTPUT
793 AT_DATA([m4/stuff.m4],
794 [[AU_ALIAS([AC_OLD_MACRO], [AC_NEW_MACRO])
795 AC_DEFUN([AC_NEW_MACRO], [echo hi])
796 AC_DEFUN([AC_UNCHANGED_MACRO], [echo one])
798 cp m4/stuff.m4 aclocal/stuff.m4
799 AT_CHECK([aclocal -I aclocal], [0], [ignore], [ignore])
800 # Checking `autoupdate'.
801 AT_CHECK_AUTOUPDATE
802 AT_CHECK([aclocal -I m4], [0], [ignore], [ignore])
803 AT_CHECK_AUTOUPDATE
805 AT_CLEANUP