1 # -*- Autotest -*- 2 3 AT_BANNER([Executables (autoheader, autoupdate...).]) 4 5 # Copyright (C) 2000-2001, 2003-2004, 2006-2012 Free Software 6 # Foundation, Inc. 7 # 8 # This program is free software: you can redistribute it and/or modify 9 # it under the terms of the GNU General Public License as published by 10 # the Free Software Foundation, either version 3 of the License, or 11 # (at your option) any later version. 12 # 13 # This program is distributed in the hope that it will be useful, 14 # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 # GNU General Public License for more details. 17 # 18 # You should have received a copy of the GNU General Public License 19 # along with this program. If not, see <http://www.gnu.org/licenses/>. 20 21 22 ## ----------------------------- ## 23 ## Syntax of the shell scripts. ## 24 ## ----------------------------- ## 25 26 # We use `/bin/sh -n script' to check that there are no syntax errors 27 # in the scripts. Although incredible, there are /bin/sh that go into 28 # endless loops with `-n', e.g., SunOS's: 29 # 30 # $ uname -a 31 # SunOS ondine 4.1.3 2 sun4m unknown 32 # $ cat endless.sh 33 # while false 34 # do 35 # : 36 # done 37 # exit 0 38 # $ time sh endless.sh 39 # sh endless.sh 0,02s user 0,03s system 78% cpu 0,064 total 40 # $ time sh -nx endless.sh 41 # ^Csh -nx endless.sh 3,67s user 0,03s system 63% cpu 5,868 total 42 # 43 # So before using `/bin/sh -n' to check our scripts, we first check 44 # that `/bin/sh -n' is not broken to death. 45 46 AT_SETUP([Syntax of the shell scripts]) 47 48 AT_CHECK([test "$ac_cv_sh_n_works" = yes || exit 77]) 49 50 # Specify the absolute name of the tool, as some shells don't honor PATH when 51 # running `sh PROG'. 52 53 AT_CHECK_SHELL_SYNTAX(["$abs_top_builddir/bin/autoconf"]) 54 AT_CHECK_SHELL_SYNTAX(["$abs_top_builddir/tests/autoconf"]) 55 AT_CHECK_SHELL_SYNTAX(["$abs_top_builddir/tests/testsuite"]) 56 57 # These are not built, they are in the src tree. 58 AT_CHECK_SHELL_SYNTAX(["$abs_top_srcdir/build-aux/install-sh"]) 59 AT_CHECK_SHELL_SYNTAX(["$abs_top_srcdir/build-aux/missing"]) 60 61 AT_CLEANUP 62 63 64 65 66 ## ---------------------------- ## 67 ## Syntax of the Perl scripts. ## 68 ## ---------------------------- ## 69 70 AT_SETUP([Syntax of the Perl scripts]) 71 72 AT_CHECK_PERL_SYNTAX([autoheader]) 73 AT_CHECK_PERL_SYNTAX([autom4te]) 74 AT_CHECK_PERL_SYNTAX([autoreconf]) 75 AT_CHECK_PERL_SYNTAX([autoscan]) 76 AT_CHECK_PERL_SYNTAX([autoupdate]) 77 AT_CHECK_PERL_SYNTAX([ifnames]) 78 79 AT_CLEANUP 80 81 82 83 84 ## ------------------ ## 85 ## autom4te's cache. ## 86 ## ------------------ ## 87 88 AT_SETUP([autom4te cache]) 89 90 AT_DATA_M4SUGAR([[script.4s]], 91 [[m4_include([foo]) 92 ]]) 93 94 # Everything is OK. 95 touch foo 96 AT_CHECK_M4SUGAR 97 98 # We moved a file: it should fail 99 mkdir sub 100 mv foo sub 101 AT_CHECK_M4SUGAR([], [1], [], 102 [m4:script.4s:1: cannot open `foo': No such file or directory 103 autom4te: m4 failed with exit status: 1 104 ]) 105 106 # But if we change the main file, then we should no longer complain of 107 # missing files. 108 AT_DATA_M4SUGAR([[script.4s]], 109 [[m4_include([sub/foo]) 110 ]]) 111 AT_CHECK_M4SUGAR 112 113 AT_CLEANUP 114 115 116 # autom4te --force 117 # ---------------- 118 119 AT_SETUP([autom4te --force]) 120 121 AT_DATA([file.m4], 122 [[right 123 ]]) 124 AT_CHECK_AUTOM4TE([-o file file.m4]) 125 126 # Create a file whose time stamp is in the future. 127 # (next year)-01-01 00:01 UTC should always be in the future, 128 # even on slow machines. 129 echo BAD >file 130 this_year=`TZ=UTC0 date +%Y` 131 AS_VAR_ARITH([next_year], [$this_year + 1]) 132 TZ=UTC0 touch -t ${next_year}01010001 file 133 134 AT_CHECK_AUTOM4TE([--force -o file file.m4]) 135 AT_CHECK([cat file], 0, 136 [[right 137 ]]) 138 139 AT_CLEANUP 140 141 142 # autom4te and file names containing whitespace 143 # --------------------------------------------- 144 145 AT_SETUP([autom4te and whitespace in file names]) 146 147 x= 148 export x 149 rm -f a b 150 for funny in \ 151 'with funny '\'' $x & #! name' \ 152 'with funny \ '\'' \'\'' " <a >b * ? name ' # "restore font-lock 153 do 154 funny=`func_sanitize_file_name "$funny"` 155 file=" file $funny" 156 outfile="$file out " 157 dir=`func_sanitize_dir_name " dir $funny"` 158 cachedir=" cache$dir" 159 TMPDIR=" tmp$dir" 160 export TMPDIR 161 162 # skip if we cannot create such a file or directory 163 AT_CHECK([mkdir "$dir" "$cachedir" "$TMPDIR" && touch "$file" || exit 77]) 164 165 cat >"$file" <<'END' 166 [m4@&t@_init[]m4@&t@_include(foo.m4) 167 m4@&t@_divert([])d@&t@nl 168 FOO] 169 END 170 cat >"$dir"/foo.m4 <<'END' 171 [m4@&t@_define([FOO], [bar])] 172 END 173 174 AT_CHECK_AUTOM4TE([-C "$cachedir" -B "$dir" --language=m4sugar -o "$outfile" "$file"]) 175 AT_CHECK([cat "$outfile"], [], 176 [[bar 177 ]]) 178 rm -rf "$outfile" "$cachedir" 179 AT_CHECK_AUTOM4TE([-C "$cachedir" -I "$dir" --language=m4sugar -o "$outfile" "$file"]) 180 AT_CHECK([cat "$outfile"], [], 181 [[bar 182 ]]) 183 184 # This exercises a slightly different code path and will catch an open with 185 # trailing whitespace: 186 cat >"$file" <<'END' 187 [m4@&t@_init[]m4@&t@_include(foo.m4) 188 m4@&t@_pattern_forbid([^bar$]) 189 m4@&t@_divert([])d@&t@nl 190 FOO] 191 END 192 rm -rf "$outfile" "$cachedir" 193 AT_CHECK_AUTOM4TE([-C "$cachedir" -I "$dir" --language=m4sugar -o "$outfile" "$file"], 194 [1], [], [stderr]) 195 AT_CHECK([grep 'possibly undefined macro' stderr], [], [ignore]) 196 197 cat >"$file" <<'END' 198 [m4@&t@_init[]m4@&t@_include(foo.m4) 199 m4@&t@_divert([])d@&t@nl] 200 END 201 rm -rf "$file.m4f" 202 AT_CHECK_AUTOM4TE([-C "$cachedir" -I "$dir" --language=m4sugar --freeze -o "$file.m4f" "$file"]) 203 AT_CHECK([test -s "$file.m4f"]) 204 205 # Check --reload-state 206 AT_CHECK_AUTOM4TE([-C "$cachedir" --language=m4sugar -o "$outfile" "$file.m4f" /dev/null]) 207 208 test ! -f b 209 done 210 211 AT_CLEANUP 212 213 214 # autom4te --trace and unusual macro names 215 # ---------------------------------------- 216 217 AT_SETUP([autom4te --trace and unusual macro names]) 218 219 AT_DATA([file.m4], 220 [[ 221 ]]) 222 AT_CHECK_AUTOM4TE([-t 'TR A CE' -t 'TR(A)CE' file.m4]) 223 224 AT_CLEANUP 225 226 227 AT_SETUP([autom4te --trace and whitespace]) 228 229 dnl line numbering differs between m4 1.4.6 and 1.4.13 if we don't 230 dnl go through a single line wrapper 231 AT_DATA_M4SUGAR([file.m4], 232 [[m4_define([foo], [m4_echo([ a 233 b c ], [\ 234 d\ 235 ])]) 236 foo 237 ]]) 238 AT_CHECK_AUTOM4TE([--language=m4sugar -t 'm4@&t@_echo' file.m4], [0], 239 [[file.m4:5:m4@&t@_echo: a b c :d 240 ]]) 241 242 AT_CLEANUP 243 244 245 ## ------------------ ## 246 ## autoconf --trace. ## 247 ## ------------------ ## 248 249 250 # autoconf --trace: user macros 251 # ----------------------------- 252 AT_SETUP([autoconf --trace: user macros]) 253 254 AT_DATA([configure.ac], 255 [[m4_define([active], [ACTIVE]) 256 m4_define([TRACE1], [TRACE2(m4_shift($@))]) 257 m4_define([TRACE2], [[$2], $1]) 258 259 # No arguments. 260 TRACE1 261 TRACE2 262 263 # With arguments, single line. 264 TRACE1(foo, @bar, @baz) 265 TRACE1(foo, TRACE1(bar, baz)) 266 TRACE1(foo, active, baz) 267 TRACE1(foo, [active], TRACE1(active, [active])) 268 ]]) 269 270 # Several --traces. 271 AT_CHECK_AUTOCONF([-t TRACE1 -t TRACE2], 0, 272 [[configure.ac:6:TRACE1: 273 configure.ac:6:TRACE2: 274 configure.ac:7:TRACE2: 275 configure.ac:10:TRACE1:foo:@bar:@baz 276 configure.ac:10:TRACE2:@bar:@baz 277 configure.ac:11:TRACE1:bar:baz 278 configure.ac:11:TRACE2:baz 279 configure.ac:11:TRACE1:foo::baz 280 configure.ac:11:TRACE2::baz 281 configure.ac:12:TRACE1:foo:ACTIVE:baz 282 configure.ac:12:TRACE2:ACTIVE:baz 283 configure.ac:13:TRACE1:ACTIVE:active 284 configure.ac:13:TRACE2:active 285 configure.ac:13:TRACE1:foo:active::ACTIVE 286 configure.ac:13:TRACE2:active::ACTIVE 287 ]]) 288 289 # Several line requests. 290 AT_CHECK_AUTOCONF([[-t TRACE1:' 291 [$1], [$2], [$3].']], 0, 292 [[ 293 [], [], []. 294 295 [foo], [@bar], [@baz]. 296 297 [bar], [baz], []. 298 299 [foo], [], [baz]. 300 301 [foo], [ACTIVE], [baz]. 302 303 [ACTIVE], [active], []. 304 305 [foo], [active], []. 306 ]]) 307 308 # ${sep}@. 309 AT_CHECK_AUTOCONF([-t TRACE2:'${)===(}@'], 0, 310 [[[] 311 [] 312 [@bar])===([@baz] 313 [baz] 314 [])===([baz] 315 [ACTIVE])===([baz] 316 [active] 317 [active])===([])===([ACTIVE] 318 ]]) 319 320 # Arguments spanning multiple lines. 321 AT_DATA([configure.ac], 322 [[m4_define([TRACE], []) 323 TRACE(foo 324 bar, 325 bar 326 foo) 327 ]]) 328 329 AT_CHECK_AUTOCONF([-t TRACE:'$%'], 0, 330 [[foo bar:bar foo 331 ]]) 332 333 AT_CLEANUP 334 335 336 # autoconf --trace: builtins 337 # -------------------------- 338 AT_SETUP([autoconf --trace: builtins]) 339 340 AT_DATA([configure.ac], 341 [[define([active], [ACTIVE]) 342 ]]) 343 344 AT_CHECK_AUTOCONF([[-t define | sed -n '$p']], 345 0, 346 [[configure.ac:1:define:active:ACTIVE 347 ]]) 348 349 # FIXME: Without `$1' the following test dies. Groumphf, once again to 350 # dive into obscure feature interaction... 351 # Note that using `-i' means we need the *.m4 files, not the *.m4f files, 352 # hence we need srcdir, not builddir. 353 AT_CHECK_AUTOCONF([[-t define:'$1' -i| sed -n '$p']], 354 0, 355 [[active 356 ]]) 357 358 AT_CLEANUP 359 360 361 362 ## ---------------------------- ## 363 ## autoconf: forbidden tokens. ## 364 ## ---------------------------- ## 365 366 367 # autoconf: forbidden tokens, basic 368 # --------------------------------- 369 AT_SETUP([autoconf: forbidden tokens,[] basic]) 370 371 AT_DATA_M4SH([configure.ac], 372 [[AS_INIT 373 m4_foo 374 _m4_bar 375 AS_FOO 376 _AS_BAR 377 [dnl] 378 ]]) 379 380 dnl This test needs autom4te's cache, in spite of any ~/.autom4te.cfg. 381 AT_DATA([.autom4te.cfg], [[ 382 begin-language: "Autoconf" 383 args: --cache=autom4te.cache 384 end-language: "Autoconf" 385 begin-language: "Autoconf-without-aclocal-m4" 386 args: --cache=autom4te.cache 387 end-language: "Autoconf-without-aclocal-m4" 388 ]]) 389 390 AT_CHECK_AUTOCONF([], 1, [], 391 [[configure.ac:2: error: possibly undefined macro: m4@&t@_foo 392 If this token and others are legitimate, please use m4@&t@_pattern_allow. 393 See the Autoconf documentation. 394 configure.ac:3: error: possibly undefined macro: _m4@&t@_bar 395 configure.ac:4: error: possibly undefined macro: AS@&t@_FOO 396 configure.ac:5: error: possibly undefined macro: _AS@&t@_BAR 397 configure.ac:6: error: possibly undefined macro: d@&t@nl 398 ]]) 399 # Second run should succeed and yield no output. 400 AT_CHECK([autoconf]) 401 402 AT_CLEANUP 403 404 405 # autoconf: forbidden tokens, exceptions 406 # -------------------------------------- 407 AT_SETUP([autoconf: forbidden tokens,[] exceptions]) 408 409 AT_DATA_M4SH([configure.ac], 410 [[AS_INIT 411 412 # This is allowed in spite of the name. 413 # It is on purpose that we check the case where there are several 414 # tokens on the same line. 415 m4_pattern_allow([^AS_ALLOWED$]) 416 NOT_AS_ALLOWED AS_ALLOWED AS_ALLOWED_NOT 417 418 # Test forbidding. 419 m4_pattern_forbid([^FORBIDDEN$]) 420 NOT_FORBIDDEN FORBIDDEN FORBIDDEN_NOT 421 422 # Test Autoconf's patterns. 423 AS_THIS_IS_INVALID and _AS_THIS_IS_INVALID_TOO 424 BUT_AZ_THIS_IS_NOT ALTHOUGH_AS_THIS_IS 425 # This is legal, although there is `AS_DEFINE' in there. 426 BAS_DEFINE 427 # AS_THIS_IS_A_COMMENT so just shut up. 428 It would be very bad if Autoconf forgot to expand [AS_]INIT! 429 ]]) 430 431 AT_CHECK_AUTOCONF([], 1, [], 432 [[configure.ac:1: error: possibly undefined macro: AS@&t@_INIT 433 If this token and others are legitimate, please use m4@&t@_pattern_allow. 434 See the Autoconf documentation. 435 configure.ac:7: error: possibly undefined macro: AS@&t@_ALLOWED_NOT 436 configure.ac:10: error: possibly undefined macro: FORBIDDEN 437 configure.ac:14: error: possibly undefined macro: AS@&t@_THIS_IS_INVALID 438 configure.ac:14: error: possibly undefined macro: _AS@&t@_THIS_IS_INVALID_TOO 439 ]]) 440 441 AT_CLEANUP 442 443 444 # autoconf: automatically allowed tokens 445 # -------------------------------------- 446 AT_SETUP([autoconf: automatically allowed tokens]) 447 448 AT_DATA_M4SH([configure.ac], 449 [[AC_INIT 450 m4_pattern_forbid([^FB_]) 451 AC_DEFINE([FB_ONE]) 452 AC_SUBST([FB_TWO]) 453 AC_OUTPUT 454 ]]) 455 456 AT_CHECK_AUTOCONF 457 458 AT_CLEANUP 459 460 461 # autoconf: do not forbid the empty token 462 # --------------------------------------- 463 AT_SETUP([autoconf: the empty token]) 464 465 AT_DATA_M4SH([configure.ac], 466 [[m4_init[]m4_pattern_allow([^foo$]) 467 m4_divert([])dnl 468 line that begins with a space 469 ]]) 470 471 AT_CHECK_AUTOCONF 472 473 AT_CLEANUP 474 475 476 # autoconf: subdirectories 477 # ------------------------ 478 AT_SETUP([autoconf: subdirectories]) 479 480 AT_DATA([configure.ac], 481 [[AC_INIT 482 AC_PROG_MKDIR_P 483 AC_CONFIG_FILES(sub/foo) 484 AC_OUTPUT 485 ]]) 486 487 mkdir sub 488 489 AT_DATA([sub/foo.in], 490 [[@MKDIR_P@ 491 ]]) 492 493 AT_DATA([install-sh]) 494 495 AT_CHECK_AUTOCONF 496 AT_CHECK_CONFIGURE 497 AT_CHECK([[grep '^[^/].*/mkdir -p' sub/foo]], 1) 498 499 AT_CLEANUP 500 501 502 # autoconf: input from stdin 503 # -------------------------- 504 AT_SETUP([autoconf: input from stdin]) 505 506 # Past Autoconf versions failed to read from stdin when other, non-frozen input 507 # files were present. 508 AT_DATA([aclocal.m4]) 509 510 AT_CHECK([echo 'AC_INIT(X, 1.0, bug-autoconf (a] gnu.org)' | autoconf -t AC_INIT -], 511 0, [stdin:1:AC_INIT:X:1.0:bug-autoconf (a] gnu.org 512 ]) 513 AT_CHECK([echo 'AC_INIT(X, 2.0, bug-autoconf (a] gnu.org)' | autoconf -t AC_INIT -], 514 0, [stdin:1:AC_INIT:X:2.0:bug-autoconf (a] gnu.org 515 ]) 516 517 AT_CLEANUP 518 519 520 # autoconf: AC_AUTOCONF_VERSION 521 # ----------------------------- 522 AT_SETUP([autoconf: AC_AUTOCONF_VERSION]) 523 524 AT_DATA([configure.ac], 525 [[AC_INIT 526 version m4@&t@_defn([AC_AUTOCONF_VERSION]) version 527 AC_OUTPUT 528 ]]) 529 530 AT_CHECK_AUTOCONF 531 AT_CHECK([[grep 'version ]]AT_PACKAGE_VERSION[[ version' configure]], 532 0, [ignore]) 533 534 AT_CLEANUP 535 536 537 538 # autoconf: AC_PRESERVE_HELP_ORDER 539 # -------------------------------- 540 AT_SETUP([autoconf: AC_PRESERVE_HELP_ORDER]) 541 AT_KEYWORDS([m4@&t@_divert_text]) 542 543 AT_DATA_AUTOCONF([configure.ac], 544 [[AC_INIT 545 AC_PRESERVE_HELP_ORDER 546 AC_ARG_WITH([one], [ --with-one]) 547 AC_ARG_ENABLE([two], [ --enable-two]) 548 m4_divert_text([HELP_ENABLE], [arbitrary $text]) 549 AC_ARG_WITH([three], [ --with-three]) 550 AC_OUTPUT 551 ]]) 552 553 AT_CHECK_AUTOCONF 554 AT_CHECK_CONFIGURE([--help], [], [stdout]) 555 AT_CHECK([sed -n '/^Optional/,/^$/p' stdout], [], 556 [[Optional Features and Packages: 557 --disable-option-checking ignore unrecognized --enable/--with options 558 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) 559 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 560 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] 561 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) 562 --with-one 563 --enable-two 564 arbitrary $text 565 --with-three 566 567 ]]) 568 569 AT_CLEANUP 570 571 572 573 ## --------- ## 574 ## ifnames. ## 575 ## --------- ## 576 577 AT_SETUP([ifnames]) 578 579 AT_DATA([iftest1.c], 580 [[#ifdef DEF1 581 #ifndef DEF2 582 #if ! defined DEF3 && defined DEF4 /* but not defined DEF5 */ 583 # if SPACES 584 # if TABS 585 /* #if C_COMMENTS */ 586 // #if CXX_COMMENTS 587 #if LINE1 = \ 588 LINE2 589 #if (VAL1*VAL2)==VAL3+VAL4 /* Not VAL5 !!! */ 590 ]]) 591 592 AT_DATA([iftest2.c], 593 [[#ifdef IFTEST2 594 #if VAL1 595 ]]) 596 597 AT_CHECK([ifnames iftest1.c iftest2.c], 0, 598 [DEF1 iftest1.c 599 DEF2 iftest1.c 600 DEF3 iftest1.c 601 DEF4 iftest1.c 602 IFTEST2 iftest2.c 603 LINE1 iftest1.c 604 LINE2 iftest1.c 605 SPACES iftest1.c 606 TABS iftest1.c 607 VAL1 iftest1.c iftest2.c 608 VAL2 iftest1.c 609 VAL3 iftest1.c 610 VAL4 iftest1.c 611 ], []) 612 613 AT_CLEANUP 614 615 616 617 ## ------------ ## 618 ## autoheader. ## 619 ## ------------ ## 620 621 # autoheader is intensively used in its modern form throughout this 622 # test suite. But we also have to check that acconfig.h still works. 623 # autoheader uses autoconf --trace, so traces first. 624 625 AT_SETUP([autoheader]) 626 627 AT_DATA([acconfig.h], 628 [[/* Define this to whatever you want. */ 629 #undef this 630 ]]) 631 632 633 # 1. Check that `acconfig.h' is still honored. 634 AT_DATA([configure.ac], 635 [[AC_INIT 636 AC_CONFIG_HEADERS(config.h:config.hin) 637 AC_DEFINE(this, "whatever you want.") 638 ]]) 639 640 AT_CHECK_AUTOHEADER([], [], [], [ignore]) 641 AT_CHECK([cat config.hin], 0, 642 [[/* config.hin. Generated from configure.ac by autoheader. */ 643 /* Define this to whatever you want. */ 644 #undef this 645 646 /* Define to the address where bug reports for this package should be sent. */ 647 #undef PACKAGE_BUGREPORT 648 649 /* Define to the full name of this package. */ 650 #undef PACKAGE_NAME 651 652 /* Define to the full name and version of this package. */ 653 #undef PACKAGE_STRING 654 655 /* Define to the one symbol short name of this package. */ 656 #undef PACKAGE_TARNAME 657 658 /* Define to the home page for this package. */ 659 #undef PACKAGE_URL 660 661 /* Define to the version of this package. */ 662 #undef PACKAGE_VERSION 663 ]]) 664 665 666 # 2. Check that missing templates are a fatal error. 667 AT_DATA([configure.ac], 668 [[AC_INIT 669 AC_CONFIG_HEADERS(config.h:config.hin) 670 AC_DEFINE(that, "whatever you want.") 671 ]]) 672 673 # The test suite goes too fast for the cache time stamps... 674 # Pass --force. 675 AT_CHECK_AUTOHEADER([--force], [1], [], [ignore]) 676 677 678 # 3. Check TOP and BOTTOM. 679 AT_DATA([acconfig.h], 680 [[/* Top from acconfig.h. */ 681 @TOP@ 682 /* Middle from acconfig.h. */ 683 @BOTTOM@ 684 /* Bottom from acconfig.h. */ 685 ]]) 686 687 AT_DATA([configure.ac], 688 [[AC_INIT 689 AC_CONFIG_HEADERS(config.h:config.hin) 690 AH_TOP([Top1 from configure.ac.]) 691 AH_TOP([Top2 from configure.ac.]) 692 AH_TOP([The Cat in a h@t.]) 693 AH_VERBATIM([Middle], [Middle from configure.ac.]) 694 AH_VERBATIM([Mouse], [The Mouse in a h@t.]) 695 AH_BOTTOM([Bottom1 from configure.ac.]) 696 AH_BOTTOM([Bottom2 from configure.ac.]) 697 AH_BOTTOM([The Dog in a h@t.]) 698 699 AC_DEFINE([ANT], [@], [The Ant in a h@t.]) 700 ]]) 701 702 703 # Yes, that's right: the `middle' part of `acconfig.h' is still before 704 # the AH_TOP part. But so what, you're not supposed to use the two 705 # together. 706 # Ignore STDERR which is the longish complaint against autoheader junk 707 # files. 708 AT_CHECK_AUTOHEADER([--force], [], [], [ignore]) 709 AT_CHECK([cat config.hin], 0, 710 [[/* config.hin. Generated from configure.ac by autoheader. */ 711 /* Top from acconfig.h. */ 712 /* Middle from acconfig.h. */ 713 714 Top1 from configure.ac. 715 716 Top2 from configure.ac. 717 718 The Cat in a h@t. 719 720 /* The Ant in a h@t. */ 721 #undef ANT 722 723 Middle from configure.ac. 724 725 The Mouse in a h@t. 726 727 /* Define to the address where bug reports for this package should be sent. */ 728 #undef PACKAGE_BUGREPORT 729 730 /* Define to the full name of this package. */ 731 #undef PACKAGE_NAME 732 733 /* Define to the full name and version of this package. */ 734 #undef PACKAGE_STRING 735 736 /* Define to the one symbol short name of this package. */ 737 #undef PACKAGE_TARNAME 738 739 /* Define to the home page for this package. */ 740 #undef PACKAGE_URL 741 742 /* Define to the version of this package. */ 743 #undef PACKAGE_VERSION 744 745 Bottom1 from configure.ac. 746 747 Bottom2 from configure.ac. 748 749 The Dog in a h@t. 750 /* Bottom from acconfig.h. */ 751 ]]) 752 753 AT_CLEANUP 754 755 756 # autoheader should see through m4 macros, just like autoconf 757 # http://lists.gnu.org/archive/html/bug-autoconf/2009-06/msg00000.html 758 AT_SETUP([autoheader and macros]) 759 760 AT_DATA([configure.ac], 761 [[AC_INIT 762 AC_CONFIG_HEADER([config.h]) 763 m4_define([PETER], [SIMSALABIM]) 764 m4_define([PAUL], [OPENSESAME]) 765 AC_DEFINE([PETER], [10], [Peter's public info]) 766 AC_DEFINE_UNQUOTED([PAUL], [`expr 4 + 6`], [Paul's public info]) 767 AC_OUTPUT 768 ]]) 769 770 AT_CHECK_AUTOCONF 771 AT_CHECK_AUTOHEADER 772 AT_CHECK([grep -c SIMSALABIM configure config.h.in], [0], 773 [[configure:1 774 config.h.in:1 775 ]]) 776 AT_CHECK([grep -c OPENSESAME configure config.h.in], [0], 777 [[configure:1 778 config.h.in:1 779 ]]) 780 AT_CHECK([grep -c PETER configure config.h.in], [1], 781 [[configure:0 782 config.h.in:0 783 ]]) 784 AT_CHECK([grep -c PAUL configure config.h.in], [1], 785 [[configure:0 786 config.h.in:0 787 ]]) 788 789 AT_CLEANUP 790 791 792 793 794 ## ------------ ## 795 ## autoupdate. ## 796 ## ------------ ## 797 798 # Check that AC_CANONICAL_SYSTEM and AC_OUTPUT are properly updated. 799 AT_SETUP([autoupdate]) 800 801 AT_DATA([configure.ac], 802 [[AC_INIT(Test, 1.0) 803 AC_CANONICAL_SYSTEM 804 # The doc says 27 is a valid fubar. 805 fubar=27 806 AC_OUTPUT(Makefile, echo $fubar, fubar=$fubar) 807 ]]) 808 809 AT_DATA([expout], 810 [[AC_INIT([Test],[1.0]) 811 AC_CANONICAL_TARGET 812 # The doc says 27 is a valid fubar. 813 fubar=27 814 AC_CONFIG_FILES([Makefile]) 815 AC_CONFIG_COMMANDS([default],[echo $fubar],[fubar=$fubar]) 816 AC_OUTPUT 817 ]]) 818 819 # Checking `autoupdate'. 820 AT_CHECK_AUTOUPDATE 821 AT_CHECK([cat configure.ac], 0, [expout]) 822 # Checking that `autoupdate' is idempotent 823 AT_CHECK_AUTOUPDATE 824 AT_CHECK([cat configure.ac], 0, [expout]) 825 826 AT_CLEANUP 827 828 829 # autoupdating AC_LINK_FILES 830 # -------------------------- 831 AT_SETUP([autoupdating AC_LINK_FILES]) 832 833 AT_DATA([configure.ac], 834 [[AC_INIT 835 AC_LINK_FILES(dst1 dst2, src1 src2) 836 AC_OUTPUT 837 ]]) 838 839 AT_DATA([dst1], dst1 840 ) 841 AT_DATA([dst2], dst2 842 ) 843 844 # Checking `autoupdate'. 845 AT_CHECK_AUTOUPDATE([], 0, [], ignore) 846 AT_CHECK_AUTOCONF 847 AT_CHECK_CONFIGURE 848 AT_CHECK([cat src1], 0, [dst1 849 ]) 850 AT_CHECK([cat src2], 0, [dst2 851 ]) 852 853 AT_CLEANUP 854 855 856 # autoupdating AC_PREREQ 857 # ---------------------- 858 AT_SETUP([autoupdating AC_PREREQ]) 859 860 # Produce `AC_PREREQ(<AUTOUPDATE VERSION>)'. 861 AT_CHECK([autoupdate --version | sed 's/.*) //;q'], 0, [stdout]) 862 autoupdate_version=`cat stdout` 863 [echo "AC_PREREQ([$autoupdate_version])" >expout] 864 865 AT_CHECK([echo "AC_PREREQ(1.0)" | autoupdate -], 866 0, [expout], []) 867 868 AT_CHECK([echo "AC_PREREQ($autoupdate_version)" | autoupdate -], 869 0, [expout], []) 870 871 AT_CHECK([echo "AC_PREREQ(999.99)" | autoupdate -], 872 63, [], [ignore]) 873 874 AT_CLEANUP 875 876 877 # autoupdating AU_ALIAS 878 # --------------------- 879 AT_SETUP([autoupdating AU_ALIAS]) 880 881 AT_DATA([configure.ac], 882 [[AC_INIT 883 AC_DEFUN([FOO], [$#]) 884 AU_ALIAS([BAZ],[FOO]) 885 test "FOO:FOO():FOO(x) BAZ:BAZ():BAZ(x)" = "0:1:1 0:1:1" || exit 1 886 AC_PROG_CC 887 AC_STDC_HEADERS 888 AC_OUTPUT 889 ]]) 890 891 # Checking `autoupdate'. 892 AT_CHECK_AUTOUPDATE 893 AT_CHECK_AUTOCONF 894 AT_CHECK_CONFIGURE 895 AT_CHECK([grep 'AC_HEADER_STDC[(]' configure.ac], 1, [ignore], [ignore]) 896 AT_CHECK([grep 'AC_HEADER_STDC' configure.ac], 0, [ignore], [ignore]) 897 898 AT_CLEANUP 899 900 901 # autoupdating OLD to NEW 902 # ----------------------- 903 904 # The example taken from the code comments. 905 AT_SETUP([autoupdating OLD to NEW]) 906 907 AT_DATA([aclocal.m4], 908 [[AU_DEFUN([OLD], [NEW([$1, $2], m4@&t@_eval([$1 + $2]))]) 909 AC_DEFUN([NEW], [echo "sum($1) = $2"]) 910 ]]) 911 912 AT_DATA([configure.ac], 913 [[AC_INIT 914 OLD(1, 2) 915 NEW([0, 0], [0]) 916 ]]) 917 918 # Checking `autoupdate'. 919 AT_CHECK_AUTOUPDATE 920 AT_CHECK_AUTOCONF 921 AT_CHECK_CONFIGURE 922 AT_CHECK([[grep 'NEW(\[1, 2], *\[3])' configure.ac]], 0, [ignore], [ignore]) 923 AT_CHECK([[grep 'NEW(\[0, 0], *\[0])' configure.ac]], 0, [ignore], [ignore]) 924 925 AT_CLEANUP 926 927 928 # autoupdating macros recursively 929 # ------------------------------- 930 931 AT_SETUP([autoupdating macros recursively]) 932 933 AT_XFAIL_IF([:]) 934 935 AT_DATA([configure.ac], 936 [[AC_INIT 937 AC_PROG_CC 938 AC_TRY_COMPILE([], [choke me], [echo bogus1], 939 [AC_TRY_COMPILE([], [return 0;], [echo good], [echo bogus2])]) 940 AC_OUTPUT 941 ]]) 942 943 # Checking `autoupdate'. 944 AT_CHECK_AUTOUPDATE 945 AT_CHECK([grep changequote configure.ac], [1]) 946 AT_CHECK([grep TRY_COMPILE configure.ac], [1]) 947 AT_CHECK_AUTOCONF 948 AT_CHECK_CONFIGURE 949 950 AT_CLEANUP 951 952 953 # autoupdating AC_HELP_STRING 954 # --------------------------- 955 AT_SETUP([autoupdating AC_HELP_STRING]) 956 957 AT_DATA([configure.ac], 958 [[AC_INIT 959 AC_ARG_ENABLE([foo], [AC_HELP_STRING([--enable-foo], [foo bar])], [:], [:]) 960 ]]) 961 962 # Checking `autoupdate'. 963 AT_CHECK_AUTOUPDATE([], [], [], [ignore]) 964 AT_CHECK_AUTOCONF 965 AT_CHECK_CONFIGURE([], [], [], [ignore]) 966 AT_CHECK([[grep '\[--enable-foo], *\[foo bar]' configure.ac]], 0, [ignore], [ignore]) 967 968 AT_CLEANUP 969 970 971 # autoupdating with m4sugar 972 # ------------------------- 973 AT_SETUP([autoupdating with m4sugar]) 974 975 AT_DATA([aclocal.m4], 976 [[AU_DEFUN([OLD], 977 [m4@&t@_pushdef([foo], [bar])dn@&t@l 978 echo "foo $1 foo" 979 m4@&t@_popdef([foo])dn@&t@l 980 ]) 981 ]]) 982 983 touch foo.in 984 985 AT_DATA([configure.ac], 986 [[AC_PREREQ(2.54) 987 m4_define([gnumeric_version_epoch], [1]) 988 AC_INIT 989 OLD([ bla bla ]) 990 AC_FOREACH([name], [n1 n2], 991 [echo name 992 ]) 993 AC_CHECKING([for feature]) 994 AC_MSG_RESULT_UNQUOTED([`echo done`]) 995 996 AC_OUTPUT([foo]) 997 ]]) 998 999 # Checking `autoupdate'. 1000 AT_CHECK_AUTOUPDATE([], [], [], [ignore]) 1001 AT_CHECK_AUTOCONF 1002 AT_CHECK_CONFIGURE([], [], [], [ignore]) 1003 1004 AT_CLEANUP 1005 1006 1007 # autoupdating with m4_pushdef 1008 # ---------------------------- 1009 AT_SETUP([autoupdating with m4@&t@_pushdef]) 1010 1011 AT_XFAIL_IF([:]) 1012 1013 touch foo.in 1014 AT_DATA([configure.ac], 1015 [[AC_INIT 1016 AC_PROG_CC 1017 # temporarily override this macro 1018 m4@&t@_pushdef([AC_MSG_RESULT_UNQUOTED], [:]) 1019 AC_C_BIGENDIAN 1020 m4@&t@_popdef([AC_MSG_RESULT_UNQUOTED]) 1021 AC_OUTPUT 1022 ]]) 1023 1024 # Checking `autoupdate'. 1025 AT_CHECK_AUTOUPDATE([], [], [], [ignore]) 1026 AT_CHECK([grep changequote configure.ac], [1]) 1027 AT_CHECK([grep [pushdef.*AC_MSG_RESULT_UNQUOTED] configure.ac], [0], [ignore]) 1028 AT_CHECK_AUTOCONF 1029 AT_CHECK_CONFIGURE([], [], [], [ignore]) 1030 1031 AT_CLEANUP 1032 1033 1034 # autoupdating with AC_REQUIRE 1035 # ---------------------------- 1036 AT_SETUP([autoupdating with AC_REQUIRE]) 1037 1038 AT_XFAIL_IF([:]) 1039 1040 AT_DATA([configure.ac], 1041 [[AC_DEFUN([MACRO], 1042 [AC_REQUIRE([AC_DECL_SYS_SIGLIST]) 1043 AC_CHECK_DECLS([_sys_siglist], [], [], [#include <signal.h>]) 1044 ]) 1045 1046 AC_INIT 1047 MACRO 1048 AC_OUTPUT 1049 ]]) 1050 1051 # Checking `autoupdate'. 1052 AT_CHECK_AUTOUPDATE([], [], [], [ignore]) 1053 AT_CHECK_AUTOCONF 1054 AT_CHECK_CONFIGURE([], [], [], [ignore]) 1055 1056 AT_CLEANUP 1057 1058 1059 # autoupdating with complex quoting 1060 # --------------------------------- 1061 AT_SETUP([autoupdating with complex quoting]) 1062 1063 AT_XFAIL_IF([:]) 1064 1065 AT_DATA([configure.ac], 1066 [[m4_define([MACRO], 1067 [[#define STRING "hello, world\n" 1068 ]]) 1069 1070 AC_INIT 1071 AC_TRY_COMPILE([#include <stdio.h> 1072 ]MACRO[], [printf (STRING);], 1073 [], [AS_EXIT([1])]) 1074 AC_OUTPUT 1075 ]]) 1076 1077 # Checking `autoupdate'. 1078 AT_CHECK_AUTOUPDATE([], [], [], [ignore]) 1079 AT_CHECK_AUTOCONF 1080 AT_CHECK([grep MACRO configure], [1]) 1081 AT_CHECK_CONFIGURE([], [], [], [ignore]) 1082 1083 AT_CLEANUP 1084 1085 1086 # autoupdating AC_LANG_SAVE 1087 # ------------------------- 1088 AT_SETUP([autoupdating AC_LANG_SAVE]) 1089 1090 AT_DATA([configure.ac], 1091 [[AC_INIT 1092 AC_LANG_SAVE 1093 AC_LANG_RESTORE 1094 AC_LANG_SAVE 1095 AC_LANG_RESTORE 1096 ]]) 1097 1098 # Checking `autoupdate'. 1099 AT_CHECK_AUTOUPDATE([], [], [], [ignore]) 1100 AT_CHECK_AUTOCONF 1101 AT_CHECK_CONFIGURE([], [], [], [ignore]) 1102 1103 AT_CLEANUP 1104 1105 1106 # autoupdating AC_FOREACH 1107 # ----------------------- 1108 AT_SETUP([autoupdating AC_FOREACH]) 1109 1110 AT_DATA([aclocal.m4], 1111 [[AU_DEFUN([OLD], [AC_FOREACH([myvar], [4 5 6], [' myvar'])]) 1112 ]]) 1113 1114 AT_DATA([configure.ac], 1115 [[AC_INIT 1116 echo AC_FOREACH([myvar], [1 2 3], [' myvar'])OLD 1117 ]]) 1118 1119 # Checking `autoupdate'. 1120 AT_CHECK_AUTOUPDATE 1121 AT_CHECK([[grep 'echo 1 2 3 4 5 6' configure.ac]], 1, [ignore], [ignore]) 1122 AT_CHECK([[grep 'm4@&t@_foreach_w' configure.ac]], 0, [ignore], [ignore]) 1123 AT_CHECK_AUTOCONF 1124 AT_CHECK_CONFIGURE([], [0], [stdout]) 1125 AT_CHECK([[grep ' 1 2 3 4 5 6' stdout]], 0, [ignore], [ignore]) 1126 1127 AT_CLEANUP 1128 1129 1130 # autoupdating with aclocal and m4_include 1131 # ---------------------------------------- 1132 AT_SETUP([autoupdating with aclocal and m4@&t@_include]) 1133 1134 # We use aclocal. 1135 AT_CHECK([aclocal --version || exit 77], [], [ignore], [ignore]) 1136 1137 mkdir m4 aclocal 1138 AT_DATA([configure.in], 1139 [[AC_INIT(x,0) 1140 AC_UNCHANGED_MACRO 1141 AC_OLD_MACRO 1142 AC_OUTPUT 1143 ]]) 1144 AT_DATA([m4/stuff.m4], 1145 [[AU_ALIAS([AC_OLD_MACRO], [AC_NEW_MACRO]) 1146 AC_DEFUN([AC_NEW_MACRO], [echo hi]) 1147 AC_DEFUN([AC_UNCHANGED_MACRO], [echo one]) 1148 ]]) 1149 cp m4/stuff.m4 aclocal/stuff.m4 1150 AT_CHECK([aclocal -I aclocal], [0], [ignore], [ignore]) 1151 # Checking `autoupdate'. 1152 AT_CHECK_AUTOUPDATE 1153 AT_CHECK([aclocal -I m4], [0], [ignore], [ignore]) 1154 AT_CHECK_AUTOUPDATE 1155 1156 AT_CLEANUP 1157 1158 1159 # Keeping autom4te.cfg complete 1160 # ----------------------------- 1161 1162 AT_SETUP([autom4te preselections]) 1163 : ${sleep='sleep 1'} # Command to force different time stamps. 1164 # If this test should run on FAT file systems and older w32, 1165 # then setting $sleep correctly needs to be revisited. 1166 1167 # We use aclocal and automake. Skip broken automake wrappers. 1168 AT_CHECK([automake --version || exit 77], [], [stdout], [ignore]) 1169 AT_CHECK([[grep '[1-9]\.[0-9]' stdout || exit 77]], [], [ignore]) 1170 AT_CHECK([test ! -f $HOME/.autom4te.cfg || exit 77], [], [ignore], [ignore]) 1171 1172 AT_DATA([configure.in], 1173 [[AC_INIT(GNU foo, 1.0) 1174 AM_INIT_AUTOMAKE 1175 AC_CONFIG_FILES([Makefile]) 1176 AC_OUTPUT 1177 ]]) 1178 1179 AT_DATA([Makefile.am], 1180 [[AUTOMAKE_OPTIONS = foreign 1181 ]]) 1182 1183 $sleep # `aclocal.m4' should be strictly younger than its inputs 1184 1185 # If Autoconf is too old, or the user has turned caching off, skip: 1186 AT_CHECK([aclocal || { ret=$?; test $ret -eq 63 && ret=77; exit $ret; }], 1187 [], [], [ignore]) 1188 AT_CHECK([test -d autom4te.cache || exit 77]) 1189 AT_CHECK([autoconf]) 1190 1191 # If this test fails due to missing entries in lib/autom4te.in, then 1192 # comparing the old and new requests is a good place to start debugging: 1193 cp autom4te.cache/requests old-requests 1194 echo newer >newer 1195 $sleep # if `configure' is regenerated, we want it to be strictly newer, 1196 # to catch the error consistently. 1197 AT_CHECK([aclocal], [], [], [ignore]) 1198 AT_CHECK([automake --no-force --add-missing], [], [], [ignore]) 1199 AT_CHECK([autoconf]) 1200 AT_CHECK([test "`find configure -newer newer`" = "" || 1201 { diff old-requests autom4te.cache/requests; exit 1; }], 1202 [], [], [], 1203 [extract_version=['s/^[^0-9]*\([0-9][^ ]*\).*/\1/;q'] 1204 automake_version=`automake --version | sed "$extract_version"` 1205 used_automake_version=`sed "$extract_version" "$abs_top_srcdir/Makefile.in"` 1206 AT_CHECK([if test "$automake_version" = "$used_automake_version"; ]dnl 1207 [then exit 1; else exit 77; fi])]) 1208 AT_CLEANUP 1209 1210 1211 # autom4te cache creation 1212 # ----------------------- 1213 # Ensure autom4te fails when it cannot create the cache directory 1214 # or create files there. 1215 AT_SETUP([autom4te cache creation]) 1216 1217 AT_CHECK([test ! -f $HOME/.autom4te.cfg || exit 77], [], [ignore], [ignore]) 1218 1219 # Work in a subdirectory so autotest can scribble in the toplevel. 1220 mkdir sub 1221 chmod a-w sub 1222 1223 AT_DATA([configure.ac], 1224 [[AC_INIT 1225 ]]) 1226 1227 AT_DATA([.autom4te.cfg], 1228 [[begin-language: "Autoconf-without-aclocal-m4" 1229 args: --cache=sub/autom4te.cache 1230 end-language: "Autoconf-without-aclocal-m4" 1231 ]]) 1232 1233 # Do not try this when we are root or on systems without permissions. 1234 # A failed redirection may cause a status of 2 with FreeBSD sh. 1235 AT_CHECK([(: > sub/some-file) || exit 1 && exit 77], 1, [ignore], [ignore]) 1236 1237 # Failure to create cache directory. 1238 AT_CHECK_AUTOCONF([], [1], [ignore], [stderr]) 1239 AT_CHECK([grep 'cannot create .*autom4te.cache' stderr], [0], [ignore]) 1240 AT_CHECK([test -f configure], [1]) 1241 1242 chmod u+w sub 1243 AT_CHECK_AUTOCONF 1244 1245 rm -f configure sub/autom4te.cache/* 1246 chmod a-w sub/autom4te.cache 1247 1248 # Failure to create a file in the cache directory. 1249 AT_CHECK_AUTOCONF([], [1], [ignore], [stderr]) 1250 AT_CHECK([grep 'cannot open.*autom4te.cache' stderr], [0], [ignore]) 1251 1252 AT_CLEANUP 1253 1254 1255 # autom4te cache locking 1256 # ---------------------- 1257 1258 AT_SETUP([autom4te cache locking]) 1259 1260 # Cannot use AT_CHECK here, autotest internals could be messed up. 1261 1262 (echo AC_INIT; sleep 2; echo) \ 1263 | (autom4te --language=autoconf -o configure -; echo $? >&2 ) 2>errlog & 1264 AT_CHECK([echo AC_INIT | autom4te --language=autoconf -o configure -]) 1265 wait 1266 1267 # Ignore additional output from shell verbose or xtrace mode. 1268 AT_CHECK([grep 'cannot rename' errlog], [1]) 1269 AT_CHECK([grep '^0$' errlog], [], [ignore]) 1270 AT_CHECK_CONFIGURE 1271 1272 AT_CLEANUP 1273 1274 1275 # autotools and file names containing whitespace 1276 # ---------------------------------------------- 1277 1278 AT_SETUP([autotools and whitespace in file names]) 1279 1280 # We use aclocal. 1281 AT_CHECK([aclocal --version || exit 77], [], [ignore], [ignore]) 1282 1283 x= 1284 export x 1285 rm -f a b 1286 for funny in \ 1287 'with funny '\'' $x & #! name ' \ 1288 'with funny \ '\'' \'\'' " <a >b * ? name ' #" 1289 do 1290 funny=`func_sanitize_file_name "$funny"` 1291 file=" file $funny" 1292 dir=`func_sanitize_dir_name " dir $funny"` 1293 TMPDIR=" tmp$dir" 1294 export TMPDIR 1295 1296 # skip if we cannot create such a file or directory 1297 AT_CHECK([mkdir "$dir" "$TMPDIR" && touch "$file.in" || exit 77]) 1298 1299 cat >"$file.in" <<'END' 1300 [AC_INIT(x,0) 1301 m4@&t@_include([foo.m4]) 1302 AC_CONFIG_HEADERS([config.h:config.hin]) 1303 AC_MACRO 1304 AC_OUTPUT] 1305 END 1306 cat >"$dir"/foo.m4 <<'END' 1307 [AC_DEFUN([AC_MACRO], [echo hi])] 1308 END 1309 1310 AT_CHECK_AUTOHEADER([-B "$dir" "$file.in"]) 1311 AT_CHECK_AUTOHEADER([--force -I "$dir" "$file.in"]) 1312 AT_CHECK_AUTOUPDATE([-B "$dir" "$file.in"]) 1313 AT_CHECK_AUTOUPDATE([--force -I "$dir" "$file.in"]) 1314 AT_CHECK_AUTOUPDATE([-B "$dir" - < "$file.in"], [], [ignore]) 1315 AT_CHECK_AUTOCONF([-B "$dir" -o "$file" "$file.in"]) 1316 AT_CHECK_AUTOCONF([-I "$dir" -o "$file" "$file.in"]) 1317 # In autoconf, these exercise a slightly different code path: 1318 AT_CHECK_AUTOCONF([--prepend-include="$dir" -o "$file" "$file.in"]) 1319 AT_CHECK_AUTOCONF([--include="$dir" -o "$file" "$file.in"]) 1320 AT_CHECK([autoscan -B "$dir"], [], [], [ignore]) 1321 AT_CHECK([autoscan --force -I "$dir"], [], [], [ignore]) 1322 # autoreconf requires a sane input file name. Also, disable aclocal. 1323 mv -f "$file.in" configure.in 1324 AT_DATA([aclocal.m4]) 1325 AT_CHECK([autoreconf -B "$dir"]) 1326 AT_CHECK([autoreconf --force -I "$dir"]) 1327 1328 cat >"$file.c" <<'END' 1329 #if FOO 1330 #endif 1331 END 1332 AT_CHECK([ifnames "$file.c"], [], [ignore]) 1333 1334 test ! -f b 1335 done 1336 1337 AT_CLEANUP 1338