1GNU Autoconf NEWS - User visible changes. 2 3* Noteworthy changes in release 2.69 (2012-04-24) [stable] 4 5** Autoconf now requires perl 5.6 or better (but generated configure 6 scripts continue to run without perl). 7 8* Noteworthy changes in release 2.68b (2012-03-01) [beta] 9 Released by Eric Blake, based on git versions 2.68.*. 10 11** Autoconf-generated configure scripts now unconditionally re-execute 12 themselves with $CONFIG_SHELL, if that's set in the environment. 13 14** The texinfo documentation no longer specifies "front-cover" or 15 "back-cover" texts, so that it may now be included in Debian's 16 "main" section. 17 18** Support for the Go programming language has been added. The new macro 19 AC_LANG_GO sets variables GOC and GOFLAGS. 20 21** AS_LITERAL_IF again treats '=' as a literal. Regression introduced in 22 2.66. 23 24** The macro AS_EXECUTABLE_P, present since 2.50, is now documented. 25 26** Macros 27 28- AC_PROG_LN_S and AS_LN_S now fall back on 'cp -pR' (not 'cp -p') if 'ln -s' 29 does not work. This works better for symlinks to directories. 30 31- New macro AC_HEADER_CHECK_STDBOOL. 32 33- New and updated macros for Fortran support: 34 35 AC_FC_CHECK_BOUNDS to enable array bounds checking 36 AC_F77_IMPLICIT_NONE and AC_FC_IMPLICIT_NONE to disable implicit integer 37 AC_FC_MODULE_EXTENSION to compute the Fortran 90 module name extension 38 AC_FC_MODULE_FLAG for the Fortran 90 module search path flag 39 AC_FC_MODULE_OUTPUT_FLAG for the Fortran 90 module output directory flag 40 AC_FC_PP_SRCEXT for preprocessed Fortran source files extensions 41 AC_FC_PP_DEFINE for the Fortran preprocessor define flag 42 43* Noteworthy changes in release 2.68 (2010-09-22) [stable] 44 Released by Eric Blake, based on git versions 2.67.*. 45 46** AC_MSG_ERROR (and AS_ERROR) can once again be followed immediately by 47 `dnl'. Regression introduced in 2.66. 48 49** AC_INIT again allows URLs with '?' for its BUG-REPORT argument. 50 Regression introduced in 2.66. 51 52** AC_REPLACE_FUNCS again allows a non-literal argument, such as a shell 53 variable that expands to a list of functions to check. Regression 54 introduced in 2.66. 55 56** AT_BANNER() with empty argument will cause visual separation from previous 57 test category. 58 59** The macros AC_PREPROC_IFELSE, AC_COMPILE_IFELSE, AC_LINK_IFELSE, and 60 AC_RUN_IFELSE now warn if the first argument failed to use 61 AC_LANG_SOURCE or AC_LANG_PROGRAM to generate the conftest file 62 contents. A new macro AC_LANG_DEFINES_PROVIDED exists if you have 63 a compelling reason why you cannot use AC_LANG_SOURCE but must 64 avoid the warning. 65 66** The macro m4_define_default is now documented. 67 68** Symlinked config.cache files are supported; configure now tries to 69 update non-symlinked cache files atomically, so that concurrent configure 70 runs do not leave behind broken cache files. It is still unspecified 71 which subset or union of results is cached though. 72 73** Autotest testsuites should not contain long text lines any more, and be 74 portable even when very many test groups are used. 75 76** AT_CHECK semantics with respect to the Autotest variable $at_status and 77 shell execution environment of the arguments are documented now. 78 79** AC_FC_LIBRARY_LDFLAGS now tolerates output from newer gfortran. 80 81** Newly obsolete macros 82 The following macros have been marked obsolete. New programs 83 should use the corresponding Gnulib modules. Gnulib not only 84 detects a larger set of portability problems with these functions, 85 but also provides complete workarounds. 86 87 AC_FUNC_ERROR_AT_LINE AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK 88 AC_FUNC_MKTIME AC_FUNC_STRTOD 89 90 91* Major changes in Autoconf 2.67 (2010-07-21) [stable] 92 Released by Eric Blake, based on git versions 2.66.*. 93 94** AC_CONFIG_SUBDIRS with more than one subdirectory at a time works again. 95 Regression introduced in 2.66. 96 97** AC_CHECK_SIZEOF of a pointer type works again. Regression introduced in 98 2.66. 99 100** New macro AC_FC_LINE_LENGTH to accept long Fortran source code lines. 101 102** AC_PREPROC_IFELSE now keeps the preprocessed output in the conftest.i 103 file for inspection by the commands in the ACTION-IF-TRUE argument. 104 105** AC_INIT again allows parentheses and other characters that are literal 106 in single- or double-quoted strings, and in quoted and unquoted 107 here-documents, for its PACKAGE and VERSION arguments. Regression 108 introduced in 2.66. 109 110** autoreconf passes warning flags to new enough versions of aclocal. 111 112** Running an Autotest testsuite in parallel mode no longer triggers a 113 race condition that could cause the testsuite run to end early, 114 fixing a sporadic failure in autoconf's own testsuite. Bug present 115 since introduction of parallel tests in 2.63b. 116 117 118* Major changes in Autoconf 2.66 (2010-07-02) [stable] 119 Released by Eric Blake, based on git versions 2.65.*. 120 121** AC_FUNC_MMAP works in C++ mode again. Regression introduced in 2.65. 122 123** Use of m4_divert without a named diversion now issues a syntax warning, 124 since it is seldom right to change diversions behind autoconf's back. 125 126** The macros AC_TYPE_INT8_T, AC_TYPE_INT16_T, AC_TYPE_INT32_T, and 127 AC_TYPE_INT64_T work again. Regression introduced in 2.65. 128 129** AC_PROG_INSTALL correctly uses `shtool' again. Regression introduced 130 in 2.64. 131 132** Autoconf should work on EBCDIC hosts. 133 134** AC_CHECK_DECL and AC_CHECK_DECLS accept optional function argument types 135 for overloaded C++ functions. 136 137** AS_SET_CATFILE accepts nonliterals in its variable name argument now. 138 139** Autotest testsuites accept an option --recheck to rerun tests that 140 failed or passed unexpectedly during the last non-debug testsuite run. 141 142** AC_ARG_ENABLE and AC_ARG_WITH now also accept `+' signs in `--enable-*' 143 and `--with-*' arguments, converting them to underscores for the variable 144 names. 145 146** In configure scripts, loading CONFIG_SITE no longer searches PATH, 147 and problems in loading the configuration site files are diagnosed. 148 149** Autotest testsuites may optionally provide colored test results. 150 151** The previously undocumented Autotest macros AT_ARG_OPTION and 152 AT_ARG_OPTION_ARG have seen bug fixes and are documented now. 153 AT_ARG_OPTION has been changed in that the negative of a long option 154 --OPTION is now --no-OPTION rather than --noOPTION. 155 156** The macro AS_LITERAL_IF is slightly more conservative; text 157 containing shell quotes are no longer treated as literals. 158 Furthermore, a new macro, AS_LITERAL_WORD_IF, adds an additional 159 level of checking that no whitespace occurs in literals. 160 161** The macros AS_TR_SH and AS_TR_CPP no longer expand their results. 162 163** The following macros are now documented: 164 AS_BOX 165 166** New macro AC_FC_FIXEDFORM to accept fixed-form Fortran. 167 168 169* Major changes in Autoconf 2.65 (2009-11-21) [stable] 170 Released by Eric Blake, based on git versions 2.64.*. 171 172** Autoconf is now licensed under the General Public License version 3 173 or later (GPLv3+). As with earlier versions, the license includes 174 an exception clause so that you may release a configure script 175 generated by autoconf under the license of your own program. 176 177** New macros to support Objective C++. 178 AC_PROG_OBJCXX AC_PROG_OBJCXXCPP 179 180** The following undocumented autoconf macros, removed in Autoconf 2.64, 181 have been reinstated: 182 AH_CHECK_HEADERS 183 184 These macros are present only for backwards compatibility purposes. 185 186** The macro AC_LANG_COMPILER no longer fails on embedded systems that 187 lack fopen in the C library, such as AVR or RTEMS (regression 188 introduced in 2.64). 189 190** The AC_FC_FREEFORM macro no longer suffers from a whitespace bug that 191 made it fail with some Fortran compilers (regression introduced in 192 2.64). 193 194** The AC_TYPE_UINT64_T and AC_TYPE_INT64_T macros have been fixed to no 195 longer mistakenly select a 32-bit type on some compilers (bug present 196 since macros were introduced in 2.59c). 197 198** The AC_FUNC_MMAP macro has been fixed to be portable to systems like 199 Cygwin (bug present since macro was introduced in 2.0). 200 201** The following documented autotest macros are new: 202 AT_CHECK_EUNIT 203 204** The following m4sugar macros now quote their expansion: 205 m4_toupper m4_tolower 206 207** The following m4sugar macros are new: 208 m4_escape 209 210** The m4sugar macro m4_text_wrap now copes with embedded quoting without 211 requiring quadrigraphs. For uses like AC_ARG_VAR([a], [[b c]]), 212 this gives the intuitive behavior of "[b c]" in the output (2.63 213 gave the output of "[b], [c]", and 2.64 encountered a failure). 214 215** The `$tmp' temporary directory used in config.status is documented for 216 public use now. 217 218** config.status now provides a --config option to produce the configuration. 219 220** Many cache variables used by Autoconf's macros are now documented. 221 222** Configure scripts work better on DJGPP by avoiding a bug present in 223 the DJGPP port of bash 2.04 in handling 'return' in a shell 224 function (regression introduced in 2.64). 225 226* Major changes in Autoconf 2.64 (2009-07-26) [stable] 227 Released by Eric Blake, based on git versions 2.63b.*. 228 229** Autoconf now requires GNU M4 1.4.6 or later. Earlier versions of M4 230 have a bug in regular expression handling that interferes with some 231 of the speedups provided since Autoconf 2.63. GNU M4 1.4.13 or 232 later is recommended. 233 234** AS_IF and AS_CASE have been taught to avoid syntax errors even when 235 given arguments that expand to just whitespace. 236 237** The following documented autoconf macros are new: 238 AC_ERLANG_SUBST_ERTS_VER 239 240** The autoheader tool now understands m4 macro arguments passed to 241 AC_DEFINE and AC_DEFINE_UNQUOTED. 242 243** Ensure AT_CHECK can support commands that include a # given with 244 proper m4 quoting. For shell comments, this is a new feature; for 245 non-shell comments, this fixes a regression introduced in 2.63b. 246 Additionally, AT_CHECK correctly supplies shell escapes for 247 metacharacters occurring in m4 macro expansions within the expected 248 stdout and stderr parameters. 249 250** The macro AT_CHECK now understands the concept of hard failure. If 251 a test exits with an unexpected status 99, cleanup actions for the 252 test are inhibited and the test is treated as a failure regardless 253 of AT_XFAIL_IF. It also understands the new directives 254 ignore-nolog, stdout-nolog, and stderr-nolog. 255 256** The following documented autotest macros are new: 257 AT_CHECK_UNQUOTED AT_FAIL_IF AT_SKIP_IF 258 259** The following documented m4sugar macros are new: 260 m4_argn m4_copy_force m4_default_nblank m4_default_nblank_quoted 261 m4_ifblank m4_ifnblank m4_rename_force 262 263** The autoconf testsuite now exercises all Erlang macros. 264 265* Major changes in Autoconf 2.63b (2009-03-31) [beta] 266 Released by Eric Blake, based on git versions 2.63.*. 267 268** The manual is now shipped under the terms of the GNU FDL 1.3. 269 270** AC_REQUIRE now detects the case of an outer macro which first expands 271 then later indirectly requires the same inner macro. Previously, 272 this case led to silent out-of-order expansion (bug present since 273 2.50); it now issues a syntax warning, and duplicates the expansion 274 of the inner macro to guarantee dependencies have been met. See 275 the manual for advice on how to refactor macros in order to avoid 276 the bug in earlier autoconf versions and avoid increased script 277 size in the current version. 278 279** AC_DEFUN_ONCE has improved semantics. Previously, a macro declared 280 with AC_DEFUN_ONCE warned on a second invocation; and out-of-order 281 expansion was still possible. Now, dependencies are guaranteed, 282 and subsequent invocations are a silent no-op. This makes 283 AC_DEFUN_ONCE an ideal macro for silencing AC_REQUIRE warnings. 284 285** The following macros are now defined with AC_DEFUN_ONCE. This means 286 a subtle change in semantics; previously, an AC_DEFUN macro could 287 expand one of these macros multiple times or surround the macro 288 inside shell conditional text to bypass the effects of these 289 macros, but now the macro will expand exactly once, and prior to 290 the start of any enclosing AC_DEFUN macro: 291 AC_CANONICAL_BUILD AC_CANONICAL_HOST AC_CANONICAL_TARGET 292 AC_HEADER_ASSERT AC_PROG_INSTALL AC_PROG_MKDIR_P 293 AC_USE_SYSTEM_EXTENSIONS 294 295** AC_LANG_ERLANG works once again (regression introduced in 2.61a). 296 297** AC_HEADER_ASSERT is fixed so that './configure --enable-assert' no 298 longer mistakenly disables assertions. 299 300** AC_INIT now takes an optional fifth parameter that can be used to 301 set AC_PACKAGE_URL, a URL for the package's home page; the URL is 302 used in `configure --help' and is also available via AC_DEFINE. 303 304** Autotest testsuites accept an option --jobs[=N] for parallel testing. 305 This feature is still in testing, and may not work on every 306 platform, help in improving it would be appreciated. 307 308** Autotest testsuites do not attempt to write startup error messages 309 to the log file before that is opened (regression introduced in 2.63). 310 311** Configure scripts now use shell functions. This feature leads to 312 smaller configure files and faster execution. 313 314** Present But Cannot Be Compiled: Autoconf will now proceed with 315 the compiler's result if a header is present but cannot be compiled. 316 The warning is still printed, and you should really fix it by 317 providing a fourth parameter to AC_CHECK_HEADER/AC_CHECK_HEADERS. 318 319** Autoreconf added aclocal to the set of programs affected by the 320 `autoreconf -I dir' option. 321 322** The following documented m4sugar macros are new: 323 m4_chomp m4_chomp_all m4_cleardivert m4_curry m4_default_quoted 324 m4_esyscmd_s m4_map_args m4_map_args_pair m4_map_args_sep 325 m4_map_args_w m4_set_map m4_set_map_sep m4_stack_foreach 326 m4_stack_foreach_lifo m4_stack_foreach_sep 327 m4_stack_foreach_sep_lifo 328 329** The following m4sugar macros are documented now, but in some cases 330 with slightly different semantics than what the previous 331 undocumented version had: 332 m4_copy m4_dumpdefs m4_rename m4_version_prereq 333 334** The m4sugar macro m4_expand has been taught to handle unterminated 335 comments and shell case statements. As a result, it is used 336 internally in more places, such as AC_DEFINE and AT_CHECK. Most 337 uses of AC_DEFINE and AT_CHECK should not behave any differently; 338 however, it may be necessary to add double-quoting around 339 unbalanced `(' where single-quoting used to be sufficient. 340 341** The following documented m4sh macros are new: 342 AS_INIT_GENERATED AS_LINENO_PREPARE AS_ME_PREPARE AS_SET_STATUS 343 AS_VAR_APPEND AS_VAR_ARITH AS_VAR_COPY 344 345** The following m4sh macros are documented now, but in some cases 346 with slightly different semantics than what the previous 347 undocumented version had: 348 AS_ECHO AS_ECHO_N AS_ESCAPE AS_EXIT AS_LITERAL_IF AS_UNSET 349 AS_VAR_IF AS_VAR_POPDEF AS_VAR_PUSHDEF AS_VAR_SET AS_VAR_SET_IF 350 AS_VAR_TEST_SET AS_VERSION_COMPARE 351 352** The m4sh macros AS_IF and AS_CASE can now be used in shell lists. 353 The responsibility for supplying a trailing newline now belongs to 354 the call site, but since most users did not add dnl, this generally 355 results in fewer empty lines in configure. 356 357 358* Major changes in Autoconf 2.63 (2008-09-09) [stable] 359 Released by Eric Blake, based on git versions 2.62.*. 360 361** AC_C_BIGENDIAN does not mistakenly report "universal" for some 362 bigendian hosts, a regression introduced with universal binary 363 support in 2.62. 364 365** AC_PATH_X now includes /lib64 and /usr/lib64 in its list of default 366 library directories. 367 368** AC_USE_SYSTEM_EXTENSIONS no longer conflicts with an external 369 AC_DEFINE([__EXTENSIONS__]). This fixes a regression introduced in 370 2.62 when using macros such as AC_AIX that were made obsolete in 371 favor of the more portable AC_USE_SYSTEM_EXTENSIONS. 372 373** AC_CHECK_TARGET_TOOLS is usable in the non-cross-compile case. 374 375** Newly obsolete macros 376 The following macro has been marked obsolete, since current porting 377 targets can safely assume C89 semantics that signal handlers return 378 void. We have no current plans to remove the macro. 379 380 AC_TYPE_SIGNAL 381 382** The macros m4_map and m4_map_sep now ignore any list elements 383 consisting of just empty quotes, and m4_map_sep now expands its 384 separator. This fixes a regression in 2.62 when these macros were 385 first documented, for the sake of clients expecting the semantics 386 that these macros had prior to that time. The new macros m4_mapall 387 and m4_mapall_sep, along with extra quoting of the separator, can 388 be used to get the semantics that m4_map_sep had in 2.62. 389 390** Clients of m4_expand, such as AS_HELP_STRING and AT_SETUP, can now 391 handle properly quoted but otherwise unbalanced parentheses (for 392 some macros, this fixes a regression in 2.62). 393 394** Two new quadrigraphs have been introduced: @{:@ for (, and @:}@ for ), 395 allowing the output of unbalanced parentheses in more contexts. 396 397** The following m4sugar macros are new: 398 m4_cleardivert m4_joinall m4_mapall m4_mapall_sep m4_reverse 399 m4_set_add m4_set_add_all m4_set_contains m4_set_contents 400 m4_set_delete m4_set_difference m4_set_dump m4_set_empty 401 m4_set_foreach m4_set_intersection m4_set_list m4_set_listc 402 m4_set_remove m4_set_size m4_set_union 403 404** The following m4sugar macros now accept multiple arguments, as is the 405 case with underlying m4: 406 m4_defn m4_popdef m4_undefine 407 408** The following m4sugar macros now guarantee linear scaling; they 409 previously had linear scaling with m4 1.6 but quadratic scaling 410 when using m4 1.4.x. All macros built on top of these also gain 411 the scaling improvements. 412 m4_bmatch m4_bpatsubsts m4_case m4_cond m4_do m4_dquote_elt 413 m4_foreach m4_join m4_list_cmp m4_map m4_map_sep m4_max 414 m4_min m4_shiftn 415 416** AT_KEYWORDS once again performs expansion on its argument, such that 417 AT_KEYWORDS([m4_if([$1], [], [default])]) no longer complains about 418 the possibly unexpanded m4_if [regression introduced in 2.62]. 419 420** Config header templates `#undef UNDEFINED /* comment */' do not lead to 421 nested comments any more; regression introduced in 2.62. 422 423 424* Major changes in Autoconf 2.62 (2008-04-05) [stable] 425 Released by Eric Blake, based on git versions 2.61a.*. 426 427** Many optimizations have been applied to make overall execution faster. 428 429** Autotest now makes use of shell functions. 430 431** config.status now uses awk instead of sed also for config headers. 432 433 - As a side effect, AC_DEFINE and AC_DEFINE_UNQUOTED now handle multi-line 434 values, i.e., backslash-newline combinations are handled correctly. 435 Further, for config headers, the total size of values is not limited by 436 the POSIX length limit of text lines any more, only each single line. 437 438** New config variable `top_build_prefix'. 439 440** New Autoconf macros: 441 AC_AUTOCONF_VERSION AC_OPENMP AC_PATH_PROGS_FEATURE_CHECK 442 443** AC_C_BIGENDIAN now supports universal binaries a la Mac OS X. 444 445** AC_C_RESTRICT now prefers to #define 'restrict' to a variant spelling 446 like '__restrict' if the variant spelling is available, as this is 447 more likely to work when mixing C and C++ code. 448 449** AC_CHECK_ALIGNOF's type argument T is now documented better: it must 450 be a string of tokens such that "T y;" is a valid member declaration 451 in a struct. 452 453** AC_CHECK_SIZEOF now accepts objects as well as types: the general rule 454 is that sizeof (X) works, then AC_CHECK_SIZEOF (X) should work. 455 456** AC_CHECK_TYPE and AC_CHECK_TYPES now work on any C type-name; formerly, 457 they did not work for function types. In C++, they now work on any 458 type-id that can be the operand of sizeof; this is similar to C, 459 except it excludes anonymous struct and union types. Formerly, 460 some (but not all) C++ types involving anonymous struct and union 461 were accepted, though this was not documented. 462 463** AC_CONFIG_LINKS now prefers to link against files in the build tree 464 if found, and it works to link against a file of the same name in 465 the source tree, even if both trees coincide. 466 467** AC_INIT no longer alters $@; regression introduced in 2.60. 468 469** AC_USE_SYSTEM_EXTENSIONS now defines _ALL_SOURCE for Interix platforms. 470 471** AS_HELP_STRING no longer underquotes its first argument; it also handles 472 the case where the first argument contains single-quoted commas. 473 For example, "AS_HELP_STRING([-a, [--arg[=foo]]], [bar])" produces: 474 " -a, --arg[=foo] bar" 475 Additionally, the macro now takes two additional arguments, 476 indent-column and wrap-column; these should not normally be needed, 477 but can be used to fine-tune how the output text is wrapped. 478 479** AC_PROG_INSTALL now requires an install program that can install multiple 480 files into a target directory. 481 482** The command 'autoconf -' now correctly processes a file from stdin. 483 484** 'autoreconf -m' now honors $MAKE. 485 486** For all of the directory arguments for 'configure', such as '--prefix' 487 or '--bindir', trailing slashes are stripped. As an example, if 488 tab completion in the user's shell appends trailing slashes, the 489 command './configure --prefix=/usr/' will still result in an 490 expanded libdir value of /usr/lib, not /usr//lib. 491 492** `configure --help=recursive' now works in read-only trees and from 493 unconfigured build trees. 494 495** If precious variables differ only in whitespace, then the cache consistency 496 check warns instead of fails, and reuses the old value. 497 498** AT_BANNER is now documented. 499 500** AT_SETUP now handles macro expansions properly when calculating line 501 length. 502 503** Autotest now determines $srcdir correctly. 504 505** Testsuites built by autotest now accept a -C/--directory=DIR option 506 to adjust the working directory prior to creating files. 507 508** Autoconf now requires GNU M4 1.4.5 or later. Earlier versions of M4 have 509 a bug in macro tracing that interferes with the interaction between 510 Autoconf and Automake. GNU M4 1.4.11 or later is recommended. The 511 configure search for a working M4 is improved. 512 513** For portability with the eventual M4 2.0, macros should no longer use 514 anything larger than $9 to refer to arguments. 515 516** Documentation for m4sugar is improved. 517 518 - The following macros were previously available as undocumented 519 interfaces; the macros are now documented as stable interfaces. 520 521 __oline__ m4_assert m4_bmatch m4_bpatsubsts m4_car m4_case 522 m4_cdr m4_default m4_divert_once m4_divert_pop m4_divert_push 523 m4_divert_text m4_do m4_errprintn m4_fatal m4_flatten 524 m4_ifndef m4_ifset m4_ifval m4_ifvaln m4_location 525 m4_n m4_shiftn m4_strip m4_warn 526 527 - The following macros were previously available as undocumented 528 interfaces, but had bug fixes or semantic changes as part of this 529 release. Packages that relied on the undocumented behavior 530 should be analyzed to make sure they will still work with the 531 new documented behavior. 532 533 m4_cmp m4_list_cmp m4_join m4_map m4_map_sep m4_sign 534 m4_text_box m4_text_wrap m4_version_compare 535 536 - The m4_wrap macro used to have unspecified order, but now 537 guarantees FIFO order. m4_wrap_lifo was added to guarantee LIFO 538 order. 539 540 - Packages using the undocumented m4sugar macro m4_PACKAGE_VERSION 541 should consider using the new AC_AUTOCONF_VERSION instead. 542 543 - m4sugar macros that are not documented in the manual are still 544 deemed experimental, and should not be used outside of Autoconf. 545 546** The m4sugar macros m4_append and m4_append_uniq, first documented in 547 2.60, have been fixed to treat both the string and the separator 548 arguments consistently with regards to quoting. Prior to this fix, 549 m4_append_uniq could mistakenly duplicate entries if the expansion 550 of the separator resulted in a different string (for example, if it 551 contained quotes, a comma, or a macro name). However, it means 552 that programs previously using 553 m4_append([name], [string], [[, ]]) 554 are now using a four-character separator instead of the intended 555 comma and space. If you need portability to earlier versions of 556 Autoconf, you can insert the following snippet after AC_INIT but 557 before any other macro expansions, to enforce the new semantics: 558 m4_pushdef([m4_append], [m4_define([$1], 559 m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) 560 Additionally, m4_append_uniq now takes optional parameters that can 561 be used to take action depending on whether anything was appended, 562 and warns if a non-empty separator occurs within the string being 563 appended, since that can lead to duplicates. 564 565** The following m4sugar macros are new: 566 m4_append_uniq_w m4_apply m4_combine m4_cond m4_count 567 m4_dquote_elt m4_echo m4_expand m4_ignore m4_make_list m4_max 568 m4_min m4_newline m4_shift2 m4_shift3 m4_unquote m4_wrap_lifo 569 570** Warnings are now generated by default when an installer invokes 571 'configure' with an unknown --enable-* or --with-* option. 572 These warnings can be disabled with the new AC_DISABLE_OPTION_CHECKING 573 macro, or by invoking 'configure' with --disable-option-checking. 574 575** Existing obsolete macros 576 The documentation for the following macros is adjusted to make it 577 more clear that they have previously been marked obsolete, as their 578 functionality can be accomplished by other macros. We have no 579 current plans to remove them from Autoconf. 580 581 AC_ENABLE AC_STRUCT_ST_BLKSIZE AC_STRUCT_ST_RDEV AC_WITH 582 583** Newly obsolete macros 584 The following macros have been marked obsolete, as they only 585 perform a subset of AC_USE_SYSTEM_EXTENSIONS. We have no current 586 plans to remove them. 587 588 AC_AIX AC_GNU_SOURCE AC_ISC_POSIX AC_MINIX 589 590** AC_C_LONG_DOUBLE is obsolescent. 591 The documentation now says that AC_C_LONG_DOUBLE is obsolescent: it 592 tests for problems that are so old that it is no longer of 593 practical importance on current systems. New programs need not use 594 AC_C_LONG_DOUBLE. We have no current plans to remove it. 595 596** AC_DIAGNOSE, AC_WARNING, and AC_FATAL are obsolescent. 597 The documentation now favors the use of M4sugar macros m4_warn and 598 m4_fatal, since the naming makes it more obvious that the 599 diagnostics are associated with M4 expansion (ie. when running 600 `autoconf'), and offers less confusion with the AC_MSG_ERROR, 601 AC_MSG_FAILURE, and AC_MSG_WARN macros which manage diagnostics 602 when running `configure'. We have no current plans to remove these 603 macros. 604 605 606* Major changes in Autoconf 2.61a (2006-12-11) 607 608** AC_FUNC_FSEEKO was broken in 2.61; it didn't make fseeko and ftello visible 609 on many platforms. This has been fixed. 610 611** AC_FUNC_SETVBUF_REVERSED is now obsolete. It is still defined for backward 612 compatibility but it does nothing. The macro was already 613 obsolescent, as the last systems to have the problem were those 614 based on SVR2, which became obsolete in 1987. The macro had bugs 615 on some modern systems and could no longer be maintained reliably 616 due to lack of ancient systems to test it on. 617 618** config.status now uses awk instead of sed for most substitutions, for speed. 619 620 - As a side effect multi-line values of substituted variables no 621 longer have a small limit in total size, though for portability 622 each line should not exceed the POSIX length limit for text lines. 623 624 - It is now documented that Makefile.in should not contain 625 overlapping variable occurrences, e.g., @VAR1@VAR2@. 626 Autoconf's behavior was always iffy in such cases, and the 627 awk implementation has changed the behavior. 628 629** Many uses of 'echo' have been rewritten so that Autoconf-generated 630 scripts have fewer problems with strings or file names containing 631 embedded special characters such as backslash or leading "-". This 632 was implemented by using `printf '%s\n' "$foo"' instead of `echo 633 "$foo"' when printf works. Due to the implementation technique 634 used, Autoconf-generated scripts now run considerably more slowly 635 on ancient implementations lacking printf. However, this should 636 not be a problem, since Autoconf-generated scripts in practice 637 invariably find a more-modern shell these days. 638 639 640* Major changes in Autoconf 2.61 (2006-11-17) 641 642** New macros AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS. 643 644** AC_ARG_ENABLE and AC_ARG_WITH now allow '.' in feature and package names. 645 646 647* Major changes in Autoconf 2.60b (2006-10-22) 648 649** BIN_SH 650 Autoconf-generated shell scripts no longer export BIN_SH, due to 651 configuration hassles with this. Installers who need BIN_SH in 652 their environment should set it before invoking 'configure' and 653 'make'. As far as we know, this affects only Unixware installations. 654 655** Obsolescent macros 656 The documentation now says that the following macros are obsolescent, 657 as they are superseded by Gnulib: 658 659 AC_FUNC_FNMATCH AC_FUNC_FNMATCH_GNU AC_FUNC_GETLOADVG AC_REPLACE_FNMATCH 660 661 New programs should use the Gnulib counterparts of these macros. 662 We have no current plans to remove them from Autoconf. 663 664** AC_COMPUTE_INT no longer caches or reports results. 665 666** AC_CHECK_DECL now also works with aggregate objects. 667 668** AC_USE_SYSTEM_EXTENSIONS now defines _TANDEM_SOURCE for NonStop platforms. 669 670** GNU M4 1.4.7 or later is now recommended. 671 672** m4_mkstemp 673 New M4sugar macro, which is more secure than the POSIX M4 maketemp. 674 675** m4_maketemp 676 Now an alias for m4_mkstemp. 677 678* Major changes in Autoconf 2.60a (2006-08-25) 679 680** GNU M4 1.4.6 or later is now recommended. 681 682** The check for C99 now tests for varargs macros, as documented. 683 It also tests that the preprocessor supports 64-bit integers. 684 685** Autoconf now uses constructs like "#ifdef HAVE_STDLIB_H" rather than 686 "#if HAVE_STDLIB_H", so that it now works with "gcc -Wundef -Werror". 687 688** The functionality of the undocumented _AC_COMPUTE_INT is now provided 689 by a public and documented macro, AC_COMPUTE_INT. The parameters to the 690 two macros are different, so autoupdate will not change the old private name 691 to the new one. _AC_COMPUTE_INT may be removed in a future release. 692 693** AC_TYPE_LONG_LONG_INT and AC_TYPE_UNSIGNED_LONG_LONG_INT now require 694 that long long types be at least 64 bits wide, as C99 and tradition 695 requires. Formerly, they accepted implementations of any width. 696 697 698* Major changes in Autoconf 2.60 699 700 Released 2006-06-23, by Ralf Wildenhues. 701 702** Autoconf no longer depends on whether m4wrap is FIFO (as Posix requires) 703 or LIFO (as in GNU M4 1.4.x). GNU M4 2.0 is expected to conform to Posix 704 here, so m4wrap/m4_wrap users should no longer depend on LIFO behavior. 705 706** Provide a way to turn off warnings about the changed directory variables. 707 708* Major changes in Autoconf 2.59d 709 710 Released 2006-06-05, by Ralf Wildenhues. 711 712** GNU make now recommended for VPATH builds 713 INSTALL now suggests VPATH builds (e.g., "sh ../srcdir/configure") 714 only if you use GNU make. In practice, other 'make' implementations 715 have too many subtle incompatibilities in their support for VPATH. 716 Many packages (including Autoconf itself) are portable to other 717 'make' implementations, but some packages are not, and recommending 718 GNU make keeps the installation instructions simpler. 719 720** Even more safety checks for the new Directory variables: 721 Warn about suspicious `${datarootdir}' found in config files output. 722 723** AC_TRY_COMMAND, AC_TRY_EVAL, ac_config_guess, ac_config_sub, ac_configure 724 These never-documented macros and variables have been marked with 725 comments saying that they may be removed in a future release, 726 because their use can lead to unintended code being executed. 727 If you need functionality that only these macros or variables 728 currently supply, please write bug-autoconf@gnu.org. 729 730** AC_SUBST, AC_DEFINE 731 Literal arguments to these are passed to m4_pattern_allow now. 732 733** AC_PROG_CC_STDC 734 Passing 'ac_cv_prog_cc_stdc=no' to 'configure' now sets ac_cv_prog_cc_c99 735 and ac_cv_prog_cc_c89 to 'no' as well, for backward compatibility with 736 obsolete K&R tests in the Automake test suite. 737 738** AC_PROG_CXX_C_O 739 New macro. 740 741** AC_PROG_MKDIR_P 742 New macro. 743 744** AS_MKDIR_P 745 Now more robust with special characters in file names, or when 746 multiple processes create the same directory at the same time. 747 748** Obsolescent macros 749 The documentation now says that the following macros are obsolescent: 750 they test for problems that are so old that they are no longer of 751 practical importance on current systems. 752 753 AC_C_BACKSLASH_A AC_FUNC_MEMCMP AC_HEADER_DIRENT 754 AC_C_CONST AC_FUNC_SELECT_ARGTYPES AC_HEADER_STAT 755 AC_C_PROTOTYPES AC_FUNC_SETPGRP AC_HEADER_STDC 756 AC_C_STRINGIZE AC_FUNC_SETVBUF_REVERSED AC_HEADER_SYS_WAIT 757 AC_C_VOLATILE AC_FUNC_STAT AC_HEADER_TIME 758 AC_FUNC_CLOSEDIR_VOID AC_FUNC_STRFTIME AC_ISC_POSIX 759 AC_FUNC_GETPGRP AC_FUNC_UTIME_NULL AC_PROG_GCC_TRADITIONAL 760 AC_FUNC_LSTAT AC_FUNC_VPRINTF AC_STRUCT_TM 761 762 New programs need not use these macros. We have no current plans to 763 remove them. 764 765** autoreconf 766 For compatibility with future Libtool 2.0, autoreconf will invoke 767 libtoolize with the option `--ltdl' now, if LT_CONFIG_LTDL_DIR is 768 used. 769 770* Major changes in Autoconf 2.59c 771 772 Released 2006-04-12, by Ralf Wildenhues. 773 774** The configure command now redirects standard input from /dev/null, 775 to help avoid problems with subsidiary commands that might mistakenly 776 read standard input. AS_ORIGINAL_STDIN_FD points to the original 777 standard input before this redirection, if you really want configure to 778 read from standard input. 779 780** Directory variables adjusted to recent changes in the GNU Coding Standards. 781 The following directory variables are new: 782 783 datarootdir read-only architecture-independent data root [PREFIX/share] 784 localedir locale-specific message catalogs [DATAROOTDIR/locale] 785 docdir documentation root [DATAROOTDIR/doc/PACKAGE] 786 htmldir html documentation [DOCDIR] 787 dvidir dvi documentation [DOCDIR] 788 pdfdir pdf documentation [DOCDIR] 789 psdir ps documentation [DOCDIR] 790 791 The following variables have new default values: 792 793 datadir read-only architecture-independent data [DATAROOTDIR] 794 infodir info documentation [DATAROOTDIR/info] 795 mandir man documentation [DATAROOTDIR/man] 796 797 This means that if you use any of `@datadir@', `@infodir@', or 798 `@mandir@' in a file, you will have to ensure `${datarootdir}' is 799 defined in this file. As a temporary measure, if any of those are 800 found but no mention of `datarootdir', the substitutions will be 801 replaced with values that do not contain `${datarootdir}', and a 802 warning will be issued. 803 804** @top_builddir@ is now a dir name: it is always nonempty and doesn't have 805 a trailing slash. Similar change will be made to ac_top_builddir in a 806 future release; the old style value, which matches (../)*, is (and will 807 continue to be) available as ac_top_build_prefix. 808 809** AC_C_TYPEOF 810 New macro to check for support of 'typeof' syntax a la GNU C. 811 812** AC_CHECK_DECLS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_HEADERS_ONCE 813 New "once-only" variants of commonly-used macros, to make 'configure' 814 smaller and faster in common cases. 815 816** AC_FUNC_STRTOLD 817 New macro to check for strtold with C99 semantics. 818 819** AC_HEADER_ASSERT 820 New macro that lets builder disable assertions at 'configure'-time. 821 822** AC_PATH_X 823 Now checks for X11/Xlib.h and XrmInitialize (X proper) rather than 824 X11/Intrinsic.h and XtMalloc (Xt). 825 826** AC_PRESERVE_HELP_ORDER 827 New macro that causes `configure' to display help strings for AC_ARG_ENABLE 828 and AC_ARG_WITH arguments in one region, in the order defined. The default 829 behavior is to group options of each classes separately. 830 831** AC_PROG_CC, AC_PROG_CXX 832 No longer automatically arrange to declare the 'exit' function of C, 833 when a C++ compiler is used. Standard Autoconf macros no longer use 834 'exit', so this is no longer an issue for them. If you use C++, and 835 want to call 'exit', you'll have to arrange for its declaration 836 yourself. But we now suggest you return from 'main' instead. 837 838** AC_PROG_CC_C89, AC_PROG_CC_C99 839 New macros for ISO C99 support. AC_PROG_CC_C89 and AC_PROG_CC_C99 840 check for ANSI C89 and ISO C99 support respectively. 841 842** AC_PROG_CC_STDC 843 Has been unobsoleted, and will check if the compiler supports ISO 844 C99, falling back to ANSI C89 if not. ac_cv_prog_cc_stdc is 845 retained for backwards compatibility, assuming the value of 846 ac_cv_prog_cc_c99 or ac_cv_prog_cc_c89 (whichever is valid, in 847 that order). 848 849** AC_STRUCT_DIRENT_D_INO, AC_STRUCT_DIRENT_D_TYPE 850 New macros for checking commonly-used members of struct dirent. 851 852** AC_SUBST 853 The substituted value can now contain newlines. 854 855** AC_SUBST_FILE 856 The substitution now occurs only when @variable@ is on a line by itself, 857 optionally surrounded by spaces and tabs. The whole line is replaced. 858 859** AC_TYPE_LONG_DOUBLE, AC_TYPE_LONG_DOUBLE_WIDER 860 New macros to check for long double, and whether it is wider than double. 861 The old macro AC_C_TYPE_LONG_DOUBLE has been marked as obsolete; 862 applications should switch to the new macro. 863 864** AC_TYPE_INT8_T, AC_TYPE_INT16_T, AC_TYPE_INT32_T, AC_TYPE_INT64_T, 865 AC_TYPE_INTMAX_T, AC_TYPE_INTPTR_T, AC_TYPE_LONG_LONG_INT, AC_TYPE_SSIZE_T, 866 AC_TYPE_UINT8_T, AC_TYPE_UINT16_T, AC_TYPE_UINT32_T, AC_TYPE_UINT64_T, 867 AC_TYPE_UINTMAX_T, AC_TYPE_UINTPTR_T, AC_TYPE_UNSIGNED_LONG_LONG_INT 868 New macros to check for C99 and POSIX types. 869 870** AC_USE_SYSTEM_EXTENSIONS 871 New macro to enable extensions to Posix. 872 873** AH_HEADER 874 New macro which is defined to the name of the first declared config header 875 or undefined if no config headers have been declared yet. 876 877** AS_HELP_STRING 878 The macro correctly handles quadrigraphs now. 879 880** AS_BOURNE_COMPATIBLE, AS_SHELL_SANITIZE, AS_CASE 881 These macros are new or published now. 882 883** AT_COPYRIGHT 884 New macro for copyright notices in testsuite files. 885 886** ALLOCA, LIBOBJS, LTLIBOBJS 887 Object names added to these variables are now prefixed with `${LIBOBJDIR}', 888 as in `${LIBOBJDIR}alloca.o'. LIBOBJDIR is meant to be defined from 889 `Makefile.in' in case the object files lie in a different directory. 890 The LIBOBJDIR feature is experimental. 891 892** autoreconf 893 Supports --no-recursive now. 894 895** New macros to support Erlang/OTP. 896 New macros for configuring paths to Erlang tools and libraries: 897 AC_ERLANG_PATH_ERLC, AC_ERLANG_NEED_ERLC, AC_ERLANG_PATH_ERL, 898 AC_ERLANG_NEED_ERL, AC_ERLANG_CHECK_LIB, AC_ERLANG_SUBST_ROOT_DIR, 899 AC_ERLANG_SUBST_LIB_DIR. 900 901 New macros for configuring installation of Erlang libraries: 902 AC_ERLANG_SUBST_INSTALL_LIB_DIR, AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR. 903 904** The manual now mentions Gnulib more prominently. 905 906** New macros to support Objective C. 907 AC_PROG_OBJC, AC_PROG_OBJCPP. 908 909* Major changes in Autoconf 2.59b 910 911 Released 2004-08-20, by Paul Eggert. 912 913** AC_CHECK_ALIGNOF 914 New macro that computes the default alignment of a type. 915 916** AC_CHECK_TOOL, AC_PATH_TOOL, AC_CHECK_TOOLS 917 When cross-compiling, these macros will give a warning if the tool 918 is not prefixed. In the future, unprefixed cross tools will not 919 be detected; please consult the info documentation for information 920 about the reason of this change. 921 922** AC_CHECK_TARGET_TOOL, AC_PATH_TARGET_TOOL, AC_CHECK_TARGET_TOOLS 923 New macros that detect programs whose name is prefixed with the 924 target type, if the build type and target type are different. 925 926** AC_REQUIRE_AUX_FILE 927 New trace macro that declares expected auxiliary files. 928 929** AC_PROG_GREP 930 New macro that tests for a grep program that accepts as a long a line 931 as possible. 932 933** AC_PROG_EGREP, AC_PROG_FGREP 934 These macros now require AC_PROG_GREP, and try EGREP="$GREP -E" and 935 FGREP="$GREP -F" respectively if possible, or else run a path search for 936 a program that accepts as long a line as possible. 937 938** AC_PROG_SED 939 New macro that tests for a sed program that truncates as few characters 940 as possible. 941 942* Major changes in Autoconf 2.59 943 944 Released 2003-11-04, by Akim Demaille 945 946** ac_abs_builddir etc. 947 Absolute file names were actually relative in 2.58. 948 949* Major changes in Autoconf 2.58 950 951 Released 2003-11-04, by Akim Demaille 952 953** core.* 954 core.* files are no longer removed, as they may be valid user files. 955 956** autoreconf and auxiliary directory 957 Autoreconf creates the auxiliary directory if needed. This is 958 especially useful for initial "bootstrapping" of fresh CVS checkouts. 959 960** AC_CONFIG_MACRO_DIR 961 Use this macro to declare the directory for local M4 macros for aclocal. 962 963** AC_LIBOBJS 964 No longer includes twice the same file in LIBOBJS if invoked 965 multiple times. 966 967** AC_CONFIG_COMMANDS 968 The directory for its first argument is automatically created. For 969 instance, with 970 971 AC_CONFIG_COMMANDS([src/modules.hh], [...]) 972 973 $top_builddir/src/ is created if needed. 974 975** Autotest and local.at 976 The optional file local.at is always included in Autotest test suites. 977 978** Warnings 979 The warnings are always issued, including with cached runs. 980 This became a significant problem since aclocal and automake can 981 run autoconf behind the scene. 982 983** autoheader warnings 984 The warnings of autoheader can be turned off, using --warning. 985 For instance, -Wno-obsolete disables the complaints about acconfig.h 986 and other deprecated constructs. 987 988** New macros 989 AC_C_RESTRICT, AC_INCLUDES_DEFAULT, AC_LANG_ASSERT, AC_LANG_WERROR, 990 AS_SET_CATFILE. 991 992** AC_DECL_SYS_SIGLIST 993 Works again. 994 995** AC_FUNC_MKTIME 996 Now checks that mktime is the inverse of localtime. 997 998** Improve DJGPP portability 999 The Autoconf tools and configure behave better under DJGPP. 1000 1001** Present But Cannot Be Compiled 1002 New FAQ section dedicated to the mystic 1003 1004 configure: WARNING: pi.h: present but cannot be compiled 1005 configure: WARNING: pi.h: check for missing prerequisite headers? 1006 configure: WARNING: pi.h: proceeding with the preprocessor's result 1007 messages. 1008 1009** Concurrent executions of autom4te 1010 autom4te now locks its internal files, which enables concurrent 1011 executions of autom4te, likely to happen if automake, autoconf, 1012 autoheader etc. are run simultaneously. 1013 1014** Libtool 1015 Use of Libtool 1.5 and higher is encouraged. Compatibility with 1016 Libtool pre-1.4 is not checked. 1017 1018** Autotest 1019 Testsuites no longer rerun failed tests in verbose mode; instead, 1020 failures are logged while the test is run. 1021 1022 In addition, expected failures can be marked as such. 1023 1024* Major changes in Autoconf 2.57 1025 1026 Released 2002-12-03 by Paul Eggert. 1027 1028Bug fixes for problems with AIX linker, with freestanding C compilers, 1029with GNU M4 limitations, and with obsolete copies of GNU documents. 1030 1031The Free Documentation License has been upgraded from 1.1 to 1.2. 1032 1033* Major changes in Autoconf 2.56 1034 1035 Released 2002-11-15 by Akim Demaille. 1036 1037One packaging problem fixed (config/install-sh was not executable). 1038 1039* Major changes in Autoconf 2.55 1040 1041 Released 2002-11-14 by Akim Demaille. 1042 1043Release tips: 1044 1045 Have your configure.ac checked by autoscan ("autoscan"). 1046 Try the warning options ("autoreconf -fv -Wall"). 1047 1048** Documentation 1049 1050- AC_CHECK_HEADER, AC_CHECK_HEADERS 1051 More information on proper use. 1052 1053- Writing Test Programs 1054 1055 This sections explains how to write good test sources to use with 1056 AC_COMPILE_IFELSE etc. It documents AC_LANG_PROGRAM and so forth. 1057 1058- AC_FOO_IFELSE vs. AC_TRY_FOO 1059 1060 Explains why Autoconf moves from AC_TRY_COMPILE etc. to 1061 AC_COMPILE_IFELSE and AC_LANG_PROGRAM etc. 1062 1063** autoreconf 1064 1065- Is more robust to different Gettext installations. 1066 1067- Produces messages (when --verbose) to be understood by Emacs' 1068 compile mode. 1069 1070- Supports -W/--warnings. 1071 1072- -m/--make 1073 Once the GNU Build System reinstalled, run `./config.status 1074 --recheck && ./config.status && make' if possible. 1075 1076** autom4te 1077 1078- Supports --cache, and --no-cache. 1079 1080- ~/.autom4te.cfg makes it possible to disable the caching mechanism 1081 (autom4te.cache). See `Customizing autom4te' in the documentation. 1082 1083** config.status 1084 Supports --quiet. 1085 1086** Obsolete options 1087 1088 Support for the obsoleted options -m, --macrodir, -l, --localdir is 1089 dropped in favor of the safer --include/--prepend-include scheme. 1090 1091** Macros 1092 1093- New macros 1094 AC_COMPILER_IFELSE, AC_FUNC_MBRTOWC, AC_HEADER_STDBOOL, 1095 AC_LANG_CONFTEST, AC_LANG_SOURCE, AC_LANG_PROGRAM, AC_LANG_CALL, 1096 AC_LANG_FUNC_TRY_LINK, AC_MSG_FAILURE, AC_PREPROC_IFELSE. 1097 1098- Obsoleted 1099 Obsoleted macros are kept for Autoconf backward compatibility, but 1100 should be avoided in configure.ac. Running autoupdate is advised. 1101 AC_DECL_SYS_SIGLIST. 1102 1103- AC_DEFINE/AC_DEFINE_UNQUOTED 1104 1105 We have to stop using the old compatibility scheme --that tried to 1106 avoid useless backslashes-- because Libtool 1.4.3 contains a 1107 1108 AC_DEFINE([error_t], [int], 1109 [Define to a type to use for \`error_t' if it is not 1110 otherwise available.]) 1111 1112 We have to quote the single quotes and backslashes with \. The old 1113 compatibility scheme saw that ` was backslashed, and therefore did 1114 not quote the single quote... Failure. Hence, Autoconf 2.54 is not 1115 compatible with Libtool. Autoconf 2.55 is, but in some cases might 1116 produce more \ than wanted. 1117 1118 Please, note that in the future the same problem will happen with 1119 AC_MSG_*: use `autoreconf -f -Wall'. 1120 1121** Bug Fixes 1122 1123- Portability of the Autoconf package to Solaris. 1124 1125- Spurious warnings caused by config.status. 1126 This bug is benign, but painful: on some systems (typically 1127 FreeBSD), warnings such as: 1128 1129 config.status: creating Makefile 1130 mv: Makefile: set owner/group (was: 1357/0): Operation not permitted 1131 1132 could be issued. This is fixed. 1133 1134- Parallel Builds 1135 Simultaneous executions of config.status are possible again. 1136 1137- Precious variables accumulation 1138 1139 config.status could stack several copies of the precious variables 1140 assignments. 1141 1142 1143** Plans for later versions 1144 1145- ./configure <host> 1146 1147 The compatibility hooks with the old scheme will be completely 1148 removed. Please, advice/use `--build', `--host', and `--target' 1149 only. 1150 1151- AC_CHECK_HEADER, AC_CHECK_HEADERS 1152 1153 The tests will be stricter, please make sure your invocations are 1154 valid. 1155 1156- shell functions 1157 1158 Shell functions will gradually be introduced, probably starting with 1159 Autotest. If you know machines which are in use that you suspect 1160 *not* to support shell functions, please run the test suite of 1161 Autoconf 2.55 on it, and report the results to 1162 bug-autoconf@gnu.org. 1163 1164- AC_MSG_* 1165 1166 Special characters in AC_MSG_* need not be quoted. Currently, 1167 Autoconf has heuristics to decide when a string is escaped, or has 1168 to be escaped. This scheme is fragile, and will be removed; the 1169 only risk is uglified messages. Please, run `autoreconf -f -Wall' 1170 to find occurrences that will be affected. 1171 1172* Major changes in Autoconf 2.54 1173 1174 Released 2002-09-13 by Akim Demaille. 1175 1176** Executables 1177 1178- autoreconf no longer changes the version of the gettext/po/intl 1179 support files. It now adds the files the correspond to the 1180 AM_GNU_GETTEXT_VERSION declared in configure.ac. 1181 1182 Warning: It now relies on the 'autopoint' program, which is part 1183 of GNU gettext 0.11.4 and newer. 1184 1185 Please note that you need to have a GNU gettext version that 1186 corresponds at least to the AM_GNU_GETTEXT_VERSION declared 1187 in configure.ac. You can upgrade to newer GNU gettext versions, 1188 though, without needing to change configure.ac. 1189 1190- The -I DIR or --include=DIR option now appends DIR to the include path 1191 instead of prepending; this is for consistency with other GNU tools. 1192 The new -B DIR or --prepend-include=DIR option has the old behavior. 1193 1194** Macros 1195 1196- AC_OUTPUT 1197 Now handles all the gory details about LIBOBJS and LTLIBOBJS. 1198 Please, remove lines such as 1199 1200 # This is necessary so that .o files in LIBOBJS are also 1201 # built via the ANSI2KNR-filtering rules. 1202 LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'` 1203 1204 and read the `AC_LIBOBJ vs LIBOBJS' section. Do not define U in 1205 your Makefiles either. 1206 1207- AC_CONFIG_LINKS now makes copies if it can't make links. 1208 1209- AC_FUNC_FNMATCH now tests only for POSIX compatibility, reverting to 1210 Autoconf 2.13 behavior. The new macro AC_FUNC_FNMATCH_GNU also 1211 tests for GNU extensions to fnmatch, and replaces fnmatch if needed. 1212 1213- AC_FUNC_SETVBUF_REVERSED no longer fails when cross-compiling. 1214 1215- AC_PROG_CC_STDC is integrated into AC_PROG_CC. 1216 1217- AC_PROG_F77 default search no longer includes cf77 and cfg77. 1218 1219- New macros 1220 1221 AC_C_BACKSLASH_A, AC_CONFIG_LIBOBJ_DIR, AC_GNU_SOURCE, 1222 AC_PROG_EGREP, AC_PROG_FGREP, AC_REPLACE_FNMATCH, 1223 AC_FUNC_FNMATCH_GNU, AC_FUNC_REALLOC, AC_TYPE_MBSTATE_T. 1224 1225- AC_FUNC_GETLOADAVG 1226 looks for getloadavg.c in the CONFIG_LIBOBJ_DIR. 1227 1228- AC_FUNC_MALLOC 1229 Now defines HAVE_MALLOC to 0 if `malloc' does not work, and asks 1230 for an AC_LIBOBJ replacement. 1231 1232** Bug fixes 1233 1234- Spurious complaints from `m4_bmatch' about invalid regular 1235 expressions are suppressed. 1236 1237- Empty top_builddirs are properly handled. 1238 1239- AC_CHECK_MEMBER works correctly when the member is an aggregate. 1240 1241- AC_PATH_PROG 1242 Now colon in the optional path arguments are properly handled. 1243 1244** Improved portability 1245 1246- Both Autoconf the package, and the scripts it produces, should run 1247 more reliably with Zsh. Bear in mind it is the default Bourne shell 1248 on Darwin. 1249 1250- Autoconf and the scripts it produces no longer assume the existence of 1251 the obsolescent commands egrep and fgrep. 1252 1253** Documentation 1254 1255- Limitations of Make 1256 More of them. 1257 1258- GNATS 1259 The GNATS base moved to 1260 http://bugs.gnu.org/cgi-bin/gnatsweb.pl?database=autoconf 1261 (It is no longer available, though.) 1262 1263** Misc. 1264 1265- config.log 1266 Now contains the list of output variables and files (AC_SUBST, 1267 AC_SUBST_FILES). 1268 1269* Major changes in Autoconf 2.53 1270 1271 Released 2002-03-08 by Akim Demaille. 1272 1273** Requirements 1274 1275 Perl 5.005_03 or later is required: autom4te is written in Perl and is 1276 needed by autoconf. autoheader, autoreconf, ifnames, and autoscan are 1277 rewritten in Perl. 1278 1279** Documentation 1280 1281- AC_INIT 1282 Argument requirements, output variables, defined macros. 1283- M4sugar, M4sh, Autotest 1284 First sketch. 1285- Double quoting macros 1286 AC_TRY_CPP, AC_TRY_COMPILE, AC_TRY_LINK and AC_TRY_RUN. 1287- Licensing 1288 The Autoconf manual is now distributed under the terms of the GNU FDL. 1289- Section `Hosts and Cross-Compilation' 1290 Explains the rationale for the 2.5x changes in the cross-compilation 1291 chain, and in the relationships between build, host, and target 1292 types. 1293 Emphasizes that `cross-compilation' == `--host is given'. 1294 If you are working on compilers etc., be sure to read this section. 1295- Section `AC_LIBOBJ vs. LIBOBJS' 1296 Explains why assigning LIBOBJS directly is now an error. 1297 Details how to update the code. 1298 1299** configure 1300 1301- $LINENO 1302 Now used instead of hard coded line numbers. 1303 This eases the comparison of `configure's, and diminishes the 1304 pressure over control version archives. 1305 Automatic replacement for shells that don't support this feature. 1306- New output variables 1307 @builddir@, @top_builddir@, @abs_srcdir@, @abs_top_srcdir@, @abs_builddir@, 1308 @abs_top_builddir@. 1309 1310** Emacs 1311 1312 Autoconf and Autotest modes are provided. 1313 1314** Executables 1315 1316- autom4te 1317 New, used by the Autoconf suite to cache and speed up most processing. 1318- --force, -f 1319 Supported by autom4te, autoconf and autoheader. 1320- --include, -I 1321 Replaces --autoconf-dir and --localdir in autoconf, autoheader, 1322 autoupdate, and autoreconf. 1323- autoreconf 1324 No longer passes --cygnus, --foreign, --gnits, --gnu, --include-deps: 1325 automake options are to be given via AUTOMAKE_OPTIONS. 1326- autoreconf 1327 Runs gettextize and libtoolize when appropriate. 1328- autoreconf 1329 --m4dir is no longer supported. 1330- autoreconf 1331 Now runs only in the specified directories, defaulting to `.', 1332 but understands AC_CONFIG_SUBDIRS for dependent directories. 1333 Before, it used to run on all the `configure.ac' found in the 1334 current tree. 1335 Independent packages are properly updated. 1336 1337** Bug fixes 1338 1339- The top level $prefix is propagated to the AC_CONFIG_SUBDIRS configures. 1340- AC_TRY_RUN 1341 Under the user pressure, $? is finally available. Probably a mistake. 1342- AC_F77_LIBRARY_LDFLAGS now supports the HP/UX f90 compiler. 1343- Precious variables accumulation 1344 config.status could stack several copies of the precious variables 1345 assignments. 1346- AC_PATH_PROG and family. 1347 Works properly when given a literal path. 1348- AC_FUNC_SETPGRP 1349 Somewhere since 2.13, the result had been reversed. 1350 1351** C Macros 1352 1353- AC_C_BIGENDIAN supports the cross-compiling case. 1354- AC_C_BIGENDIAN accepts ACTION-IF-TRUE, ACTION-IF-FALSE, and 1355 ACTION-IF-UNKNOWN arguments. All are optional, and the default 1356 for ACTION-IF-TRUE is to define WORDS_BIGENDIAN like AC_C_BIGENDIAN 1357 always did. 1358- AC_C_LONG_DOUBLE now succeeds only if `long double' has more range or 1359 precision than `double'. 1360 1361** Generic macros 1362 1363- AC_INIT 1364 It now defines the preprocessor symbols PACKAGE_NAME, 1365 PACKAGE_TARNAME, PACKAGE_VERSION, PACKAGE_STRING, and 1366 PACKAGE_BUGREPORT. 1367 1368- AC_INIT 1369 Admits a fourth optional parameter: the tar name. 1370 1371- AC_CONFIG_COMMANDS, HEADERS, FILES, LINKS. 1372 Provide the user with srcdir, ac_srcdir, ac_top_srcdir, ac_builddir, 1373 ac_top_builddir, ac_abs_srcdir, ac_abs_top_srcdir, ac_abs_builddir, 1374 ac_abs_top_builddir. 1375 1376- AC_CONFIG_COMMANDS, HEADERS, FILES, LINKS and AC_OUTPUT. 1377 Are much less expensive when using long lists of files. 1378 1379- AC_PREFIX_PROGRAM 1380 Works with shell variables, and non alphanumeric names. 1381 1382** Library macros 1383 1384- AC_FUNC_STRERROR_R now sets STRERROR_R_CHAR_P, not HAVE_WORKING_STRERROR_R, 1385 because POSIX 1003.1-200x draft 7 says strerror_r returns int, not char *. 1386 1387- AC_FUNC_STRTOD substitutes POW_LIB. 1388 1389- AC_FUNC_STRNLEN 1390 New. 1391 1392* Major changes in Autoconf 2.52 1393 1394 Released 2001-07-18 by Akim Demaille. 1395 1396** Documentation 1397- AC_ARG_VAR 1398- Quadrigraphs 1399 This feature was present in autoconf 2.50 but was not documented. 1400 For example, `@<:@' is translated to `[' just before output. This 1401 is useful when writing strings that contain unbalanced quotes, or 1402 other hard-to-quote constructs. 1403- m4_pattern_forbid, m4_pattern_allow 1404- Tips for upgrading from 2.13. 1405- Using autoscan to maintain a configure.ac. 1406 1407** Default includes 1408- Now include stdint.h. 1409- sys/types.h and sys/stat.h are guarded. 1410- strings.h is included if available, and not conflicting with string.h. 1411 1412** Bug fixes 1413- The test suite is more robust and presents less false failures. 1414- Invocation of GNU M4 now robust to POSIXLY_CORRECT. 1415- configure accepts --prefix='' again. 1416- AC_CHECK_LIB works properly when its first argument is not a 1417 literal. 1418- HAVE_INTTYPES_H is defined only if not conflicting with sys/types.h. 1419- build_, host_, and target_alias are AC_SUBST as in 2.13. 1420- AC_ARG_VAR properly propagates precious variables inherited from the 1421 environment to ./config.status. 1422- Using --program-suffix/--program-prefix is portable. 1423- Failures to detect the default compiler's output extension are less 1424 likely. 1425- `config.status foo' works properly when `foo' depends on variables 1426 set in an AC_CONFIG_THING INIT-CMD. 1427- autoheader is more robust to broken input. 1428- Fixed Fortran name-mangling and link tests on a number of systems, 1429 e.g. NetBSD; see AC_F77_DUMMY_MAIN, below. 1430 1431** Generic macros 1432- AC_CHECK_HEADER and AC_CHECK_HEADERS support a fourth argument to 1433 specify pre-includes. In this case, the headers are compiled with 1434 cc, not merely preprocessed by cpp. Therefore it is the _usability_ 1435 of a header which is checked for, not just its availability. 1436- AC_ARG_VAR refuses to run configure when precious variables have 1437 changed. 1438- Versions of compilers are dumped in the logs. 1439- AC_CHECK_TYPE recognizes use of `foo_t' as a replacement type. 1440 1441** Specific Macros 1442- AC_PATH_XTRA only adds -ldnet to $LIBS if it's needed to link. 1443- AC_FUNC_WAIT3 and AC_SYS_RESTARTABLE_SYSCALLS are obsoleted. 1444- AM_FUNC_ERROR_AT_LINE, AM_FUNC_FNMATCH, AM_FUNC_MKTIME, 1445 AM_FUNC_OBSTACK, and AM_FUNC_STRTOD are now activated. 1446 Be sure to read `Upgrading from Version 2.13' to understand why 1447 running `autoupdate' is needed. 1448- AC_F77_DUMMY_MAIN, AC_F77_MAIN: new macros to detect whether 1449 a main-like routine is required/possible when linking C/C++ with 1450 Fortran. Users of e.g. AC_F77_WRAPPERS should be aware of these. 1451- AC_FUNC_GETPGRG behaves better when cross-compiling. 1452 1453* Major changes in Autoconf 2.51 1454There was no release of Autoconf 2.51 since some packagers had used 1455this version number without permission to ship intermediary versions 1456of 2.50. The version was skipped to avoid confusion. 1457 1458* Major changes in Autoconf 2.50 1459 1460 Released 2001-05-21 by Akim Demaille. 1461 1462** Lots of bug fixes 1463There have been far too many to enumerate them here. Check out 1464ChangeLog if you really want to know more. 1465 1466** Improved documentation 1467In particular, portability issues are better covered. 1468 1469** Use of Automake 1470All the standard GNU Makefile targets are supported. The layout has 1471changed: m4/ holds the M4 extensions Autoconf needs for its 1472configuration, doc/ contains the documentation, and tests/ contains 1473the test suite. 1474 1475** Man pages are provided 1476For autoconf, autoreconf, autoupdate, autoheader, autoscan, ifnames, 1477config.guess, config.sub. 1478 1479** autoconf 1480- --trace 1481 Provides a safe and powerful means to trace the macro uses. This 1482 provide the parsing layer for tools which need to `study' 1483 configure.in. 1484 1485- --warnings 1486 Specify what category of warnings should be enabled. 1487 1488- When recursing into subdirectories, try for configure.gnu before 1489 configure to adapt for packages not using autoconf on case-insensitive 1490 file systems. 1491 1492- Diagnostics 1493 More errors are now caught (circular AC_REQUIRE dependencies, 1494 AC_DEFINE in the action part of an AC_CACHE_CHECK, too many pops 1495 etc.). In addition, their location and call stack are given. 1496 1497** autoupdate 1498autoupdate is much more powerful, and is able to provide the glue code 1499which might be needed to move from an old macro to its newer 1500equivalent. 1501 1502You are strongly encouraged to use it to modernize both your 1503`configure.in' and your .m4 extension files. 1504 1505** autoheader 1506The internal machinery of autoheader has completely changed. As a 1507result, using `acconfig.h' should be considered to be obsoleted, and 1508you are encouraged to get rid of it using the AH macros. 1509 1510** autoreconf 1511Extensive overhaul. 1512 1513** Fortran 77 compilers 1514Globally, the support for Fortran 77 is considerably improved. 1515 1516Support for automatically determining a Fortran 77 compiler's 1517name-mangling scheme. New CPP macros F77_FUNC and F77_FUNC_ are 1518provided to wrap C/C++ identifiers, thus making it easier and more 1519transparent for C/C++ to call Fortran 77 routines, and Fortran 77 to 1520call C/C++ routines. See the Texinfo documentation for details. 1521 1522** Test suite 1523The test suite no longer uses DejaGNU. It should be easy to submit 1524test cases in this new framework. 1525 1526** configure 1527- --help, --help=long, -hl 1528 no longer dumps useless items. 1529- --help=short, -hs 1530 lists only specific options. 1531- --help=recursive, -hr 1532 displays the help of all the embedded packages. 1533- Remembers environment variables when reconfiguring. 1534 The previous scheme to set envvar before running configure was 1535 ENV=VAL ./configure 1536 what prevented configure from remembering the environment in which 1537 it was run, therefore --recheck was run in an inconsistent 1538 environment. Now, one should run 1539 ./configure ENV=VAR 1540 and then --recheck will work properly. Variables declared with 1541 AC_ARG_VAR are also preserved. 1542- cross-compilation 1543 $build defaults to `config.guess`, $host to $build, and then $target 1544 to $host. 1545 Cross-compilation is a global status of the package, it no longer 1546 depends upon the current language. 1547 Cross compilation is enabled iff the user specified `--host'. 1548 `configure' now fails if it can't run the executables it compiles, 1549 unless cross-compilation is enabled. 1550- Cache file 1551 The cache file is disabled by default. The new options 1552 `--config-cache', `-C' set the cache to `config.cache'. 1553 1554** config.status 1555- faster 1556 Much faster on most architectures. 1557- concurrent executions 1558 It is safe to use `make -j' with config.status. 1559- human interface improved 1560 It is possible to invoke 1561 ./config.status foobar 1562 instead of the former form (still valid) 1563 CONFIG_COMMANDS= CONFIG_HEADERS= CONFIG_LINKS= \ 1564 CONFIG_FILES=foobar:foo.in:bar.in \ 1565 ./config.status 1566 The same holds for configuration headers and links. 1567 You can instantiate unknown files and headers: 1568 ./config.status --header foo.h:foo.h.in --file bar:baz 1569- has a useful --help 1570- accepts special file name "-" for stdin/stdout 1571 1572 1573** Identity Macros 1574- AC_COPYRIGHT 1575 Specify additional copyright information. 1576 1577- AC_INIT 1578 Now expects the identity of the package as argument. 1579 1580** General changes. 1581- Uniform quotation 1582 Most macros, if not all, now strictly follow the `one quotation 1583 level' rule. This results in a more predictable expansion. 1584 1585- AC_REQUIRE 1586 A sly bug in the AC_REQUIRE machinery, which could produce incorrect 1587 configure scripts, was fixed by Axel Thimm. 1588 1589** Setup Macros 1590- AC_ARG_VAR 1591 Document and ask for the registration of an envvar. 1592 1593- AC_CONFIG_SRCDIR 1594 Specifies the file which `configure' should look for when trying to 1595 find the source tree (used to be handled by AC_INIT). 1596 1597- AC_CONFIG_COMMANDS 1598 To add new actions to config.status. Should be used instead of 1599 AC_OUTPUT_COMMANDS. 1600 1601- AC_CONFIG_LINKS 1602 Replaces AC_LINK_FILES. 1603 1604- AC_CONFIG_HEADERS, AC_CONFIG_COMMANDS, AC_CONFIG_SUBDIRS, 1605 AC_CONFIG_LINKS, and AC_CONFIG_FILES 1606 They now obey sh: you should no longer use shell variables as 1607 argument. Instead of 1608 1609 test "$package_foo_enabled" = yes && $my_subdirs="$my_subdirs foo" 1610 AC_CONFIG_SUBDIRS($my_subdirs) 1611 1612 write 1613 1614 if test "$package_foo_enabled" = yes; then 1615 AC_CONFIG_SUBDIRS(foo) 1616 fi 1617 1618- AC_HELP_STRING 1619 To format an Autoconf macro's help string so that it looks pretty 1620 when the user executes `configure --help'. 1621 1622 1623** Generic Test Macros 1624- AC_CHECK families 1625 The interface of the AC_CHECK families of macros (decl, header, 1626 type, member, func) is now uniform. They support the same set of 1627 default includes. 1628 1629- AC_CHECK_DECL, AC_CHECK_DECLS 1630 To check whether a symbol is declared. 1631 1632- AC_CHECK_SIZEOF, AC_C_CHAR_UNSIGNED. 1633 No longer need a cross-compilation default. 1634 1635- AC_CHECK_TYPE 1636 The test it performs is much more robust than previously, and makes 1637 it possible to test builtin types in addition to typedefs. 1638 It is now schizophrenic: 1639 - AC_CHECK_TYPE(TYPE, REPLACEMENT) 1640 remains for backward compatibility, but its use is discouraged. 1641 - AC_CHECK_TYPE(TYPE, IF-FOUND, IF-NOT-FOUND, INCLUDES) 1642 behaves exactly like the other AC_CHECK macros. 1643 1644- AC_CHECK_TYPES 1645 Checks whether given types are supported by the system. 1646 1647- AC_CHECK_MEMBER, AC_CHECK_MEMBERS 1648 Check for given members in aggregates (e.g., pw_gecos in struct 1649 passwd). 1650 1651- AC_PROG_CC_STDC 1652 Checks if the compiler supports ISO C, included when needs special 1653 options. 1654 1655- AC_PROG_CPP 1656 Checking whether the preprocessor indicates missing includes by the 1657 error code. stderr is checked by AC_TRY_CPP only as a fallback. 1658 1659- AC_LANG 1660 Takes a language as argument and replaces AC_LANG_C, 1661 AC_LANG_CPLUSPLUS and AC_LANG_FORTRAN77. 1662 1663- AC_LANG_PUSH, AC_LANG_POP 1664 Are preferred to AC_LANG_SAVE, AC_LANG_RESTORE. 1665 1666** Specific Macros 1667- AC_FUNC_CHOWN, AC_FUNC_MALLOC, AC_FUNC_STRERROR_R, 1668 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, AC_FUNC_STAT, AC_FUNC_LSTAT, 1669 AC_FUNC_ERROR_AT_LINE, AC_FUNC_OBSTACK, AC_FUNC_STRTOD, AC_FUNC_FSEEKO. 1670 New. 1671 1672- AC_FUNC_GETGROUPS 1673 Sets GETGROUPS_LIBS. 1674 1675- AC_FUNC_GETLOADAVG 1676 Defines `HAVE_STRUCT_NLIST_N_UN_N_NAME' instead of `NLIST_NAME_UNION'. 1677 1678- AC_PROG_LEX 1679 Now integrates `AC_DECL_YYTEXT' which is obsoleted. 1680 1681- AC_SYS_LARGEFILE 1682 Arrange for large-file support. 1683 1684- AC_EXEEXT, AC_OBJEXT 1685 You are no longer expected to use them: their computation is 1686 performed by default. 1687 1688** C++ compatibility 1689 Every macro has been revisited in order to support at best CC=c++. 1690 1691Major changes in Autoconf 2.14: 1692 There was no release of GNU Autoconf 2.14. 1693 1694Major changes in Autoconf 2.13: 1695 1696 Released 1999-05-01 by Ben Elliston. 1697 1698* Support for building on 32-bit Windows systems where the only available C or 1699 C++ compiler is the Microsoft Visual C++ command line compiler 1700 (`cl'). Additional support for building on 32-bit Windows systems which are 1701 using the Cygwin or Mingw32 environments. 1702* Support for alternative object file and executable file extensions. 1703 On 32-bit Windows, for example, these are .obj and .exe. These are discovered 1704 using AC_OBJEXT and AC_EXEEXT, which substitute @OBJEXT@ and 1705 @EXEEXT@ in the output, respectively. 1706* New macros: AC_CACHE_LOAD, AC_CACHE_SAVE, AC_FUNC_SELECT_ARGTYPES, 1707 AC_VALIDATE_CACHED_SYSTEM_TUPLE, AC_SEARCH_LIBS, AC_TRY_LINK_FUNC, 1708 AC_C_STRINGIZE, AC_CHECK_FILE(S), AC_PROG_F77 (and friends). 1709* AC_DEFINE now has an optional third argument for a description to be 1710 placed in the config header input file (e.g. config.h.in). 1711* The C++ code fragment compiled for the C++ compiler test had to be 1712 improved to include an explicit return type for main(). This was 1713 causing failures on systems using recent versions of the EGCS C++ 1714 compiler. 1715* Fixed an important bug in AC_CHECK_TYPE that would cause a configure 1716 script to report that `sometype_t' was present when only `type_t' 1717 was defined. 1718* Merge of the FSF version of config.guess and config.sub to modernize 1719 these scripts. Add support for a few new hosts in config.guess. 1720 Incorporate latest versions of install-sh, mkinstalldirs and 1721 texinfo.tex from the FSF. 1722* autoreconf is capable of running automake if necessary (and 1723 applicable). 1724* Support for Fortran 77. See the Texinfo documentation for details. 1725* Bug fixes and workarounds for quirky bugs in vendor utilities. 1726 1727Major changes in Autoconf 2.12: 1728 1729 Released 1996-11-26 by David J. MacKenzie 1730 1731* AC_OUTPUT and AC_CONFIG_HEADER can create output files by 1732 concatenating multiple input files separated by colons, like so: 1733 AC_CONFIG_HEADER(config.h:conf.pre:config.h.in:conf.post) 1734 AC_OUTPUT(Makefile:Makefile.in:Makefile.rules) 1735 The arguments may be shell variables, to compute the lists on the fly. 1736* AC_LINK_FILES and AC_CONFIG_SUBDIRS may be called multiple times. 1737* New macro AC_OUTPUT_COMMANDS adds more commands to run in config.status. 1738* Bug fixes. 1739 1740Major changes in Autoconf 2.11: 1741 1742 Released November 18th, 1996, by David J. MacKenzie 1743 1744* AC_PROG_CC and AC_PROG_CXX check whether the compiler works. 1745 They also default CFLAGS/CXXFLAGS to "-g -O2" for gcc, instead of "-g -O". 1746* AC_REPLACE_FUNCS defines HAVE_foo if the system has the function `foo'. 1747* AC_CONFIG_HEADER expands shell variables in its argument. 1748* New macros: AC_FUNC_FNMATCH, AC_FUNC_SETPGRP. 1749* The "checking..." messages and the source code for test programs that 1750 fail are saved in config.log. 1751* Another workaround has been added for seds with small command length limits. 1752* config.sub and config.guess recognize more system types. 1753* Bug fixes. 1754 1755Major changes in Autoconf 2.10: 1756 1757 Released May 7th, 1996, by Roland McGrath 1758 1759* Bug fixes. 1760* The cache variable names used by `AC_CHECK_LIB(LIB, FUNC, ...)' has 1761 changed: now $ac_cv_lib_LIB_FUNC, previously $ac_cv_lib_LIB. 1762 1763Major changes in Autoconf 2.9: 1764 1765 Released March 16th, 1996, by Roland McGrath 1766 1767* Bug fixes. 1768 1769Major changes in Autoconf 2.8: 1770 1771 Released March 8th, 1996, by Roland McGrath 1772 1773* Bug fixes. 1774 1775Major changes in Autoconf 2.7: 1776 1777 Released November 22nd, 1995, by David J. MacKenzie 1778 1779* Bug fixes. 1780 1781Major changes in Autoconf 2.6: 1782 1783 Released November 20th, 1995, by David J. MacKenzie 1784 1785* Bug fixes. 1786 1787Major changes in Autoconf 2.5: 1788 1789 Released November 17th, 1995, by Roland McGrath 1790 1791* New configure options --bindir, --libdir, --datadir, etc., with 1792 corresponding output variables. 1793* New macro: AC_CACHE_CHECK, to make using the cache easier. 1794* config.log contains the command being run as well as any output from it. 1795* AC_CHECK_LIB can check for libraries with "." or "/" or "+" in their name. 1796* AC_PROG_INSTALL doesn't cache a name for install-sh, for sharing caches. 1797* AC_CHECK_PROG, AC_PATH_PROG, AC_CHECK_PROGS, AC_PATH_PROGS, and 1798 AC_CHECK_TOOL can search a path other than $PATH. 1799* AC_CHECK_SIZEOF takes an optional size to use when cross-compiling. 1800 1801Major changes in Autoconf 2.4: 1802 1803 Released June 14th, 1995, by David J. MacKenzie 1804 1805* Fix a few bugs found by Emacs testers. 1806 1807Major changes in Autoconf 2.3: 1808 1809 Released March 27th, 1995, by David J. MacKenzie 1810 1811* Fix the cleanup trap in several ways. 1812* Handle C compilers that are picky about option placement. 1813* ifnames gets the version number from the right directory. 1814 1815Major changes in Autoconf 2.2: 1816 1817 Released March 8th, 1995, by David J. MacKenzie 1818 1819* The ifnames utility is much faster but requires a "new awk" interpreter. 1820* AC_CHECK_LIB and AC_HAVE_LIBRARY check and add the new 1821 library before existing libs, not after, in case it uses them. 1822* New macros: AC_FUNC_GETPGRP, AC_CHECK_TOOL. 1823* Lots of bug fixes. 1824* Many additions to the TODO file :-) 1825 1826Major changes in Autoconf 2.1: 1827 1828 Released November 4th, 1994, by David J. MacKenzie 1829 1830* Fix C++ problems. 1831* More explanations in the manual. 1832* Fix a spurious failure in the testsuite. 1833* Clarify some warning messages. 1834* autoreconf by default only rebuilds configure and config.h.in files 1835 that are older than any of their particular input files; there is a 1836 --force option to use after installing a new version of Autoconf. 1837 1838Thanks to everybody who's submitted changes and additions to Autoconf! 1839I've incorporated many of them, and am still considering others for 1840future releases -- but I didn't want to postpone this release indefinitely. 1841 1842Caution: don't indiscriminately rebuild configure scripts with 1843Autoconf version 2. Some configure.in files need minor adjustments to 1844work with it; the documentation has a chapter on upgrading. A few 1845configure.in files, including those for GNU Emacs and the GNU C 1846Library, need major changes because they relied on undocumented 1847internals of version 1. Future releases of those packages will have 1848updated configure.in files. 1849 1850It's best to use GNU M4 1.3 (or later) with Autoconf version 2. 1851Autoconf now makes heavy use of M4 diversions, which were implemented 1852inefficiently in GNU M4 releases before 1.3. 1853 1854Major changes in Autoconf 2.0: 1855 1856 Released October 26th, 1994, by David J. MacKenzie 1857 1858** New copyright terms: 1859* There are no restrictions on distribution or use of configure scripts. 1860 1861** Documentation: 1862* Autoconf manual is reorganized to make information easier to find 1863 and has several new indexes. 1864* INSTALL is reorganized and clearer and is now made from Texinfo source. 1865 1866** New utilities: 1867* autoscan to generate a preliminary configure.in for a package by 1868 scanning its source code for commonly used nonportable functions, 1869 programs, and header files. 1870* ifnames to list the symbols used in #if and #ifdef directives in a 1871 source tree. 1872* autoupdate to update a configure.in to use the version 2 macro names. 1873* autoreconf to recursively remake configure and configuration header 1874 files in a source tree. 1875 1876** Changed utilities: 1877* autoheader can take pieces of acconfig.h to replace config.h.{top,bot}. 1878* autoconf and autoheader can look for package-local definition files 1879 in an alternate directory. 1880 1881** New macros: 1882* AC_CACHE_VAL to share results of tests between configure runs. 1883* AC_DEFUN to define macros, automatically AC_PROVIDE them, and ensure 1884 that macros invoked with AC_REQUIRE don't interrupt other macros. 1885* AC_CONFIG_AUX_DIR, AC_CANONICAL_SYSTEM, AC_CANONICAL_HOST, AC_LINK_FILES to 1886 support deciding unguessable features based on the host and target types. 1887* AC_CONFIG_SUBDIRS to recursively configure a source tree. 1888* AC_ARG_PROGRAM to use the options --program-prefix, 1889 --program-suffix, and --program-transform-name to change the names 1890 of programs being installed. 1891* AC_PREFIX_DEFAULT to change the default installation prefix. 1892* AC_TRY_COMPILE to compile a test program without linking it. 1893* AC_CHECK_TYPE to check whether sys/types.h or stdlib.h defines a given type. 1894* AC_CHECK_LIB to check for a particular function and library. 1895* AC_MSG_CHECKING and AC_MSG_RESULT to print test results, on a single line, 1896 whether or not the test succeeds. They obsolete AC_CHECKING and AC_VERBOSE. 1897* AC_SUBST_FILE to insert one file into another. 1898* AC_FUNC_MEMCMP to check whether memcmp is 8-bit clean. 1899* AC_FUNC_STRFTIME to find strftime even if it's in -lintl. 1900* AC_FUNC_GETMNTENT to find getmntent even if it's in -lsun or -lseq. 1901* AC_HEADER_SYS_WAIT to check whether sys/wait.h is POSIX.1 compatible. 1902 1903** Changed macros: 1904* Many macros renamed systematically, but old names are accepted for 1905 backward compatibility. 1906* AC_OUTPUT adds the "automatically generated" comment to 1907 non-Makefiles where it finds @configure_input@ in an input file, to 1908 support files with various comment syntaxes. 1909* AC_OUTPUT does not replace "prefix" and "exec_prefix" in generated 1910 files when they are not enclosed in @ signs. 1911* AC_OUTPUT allows the optional environment variable CONFIG_STATUS to 1912 override the file name "config.status". 1913* AC_OUTPUT takes an optional argument for passing variables from 1914 configure to config.status. 1915* AC_OUTPUT and AC_CONFIG_HEADER allow you to override the input-file names. 1916* AC_OUTPUT automatically substitutes the values of CFLAGS, CXXFLAGS, 1917 CPPFLAGS, and LDFLAGS from the environment. 1918* AC_PROG_CC and AC_PROG_CXX now set CFLAGS and CXXFLAGS, respectively. 1919* AC_PROG_INSTALL looks for install-sh or install.sh in the directory 1920 specified by AC_CONFIG_AUXDIR, or srcdir or srcdir/.. or 1921 srcdir/../.. by default. 1922* AC_DEFINE, AC_DEFINE_UNQUOTED, and AC_SUBST are more robust and smaller. 1923* AC_DEFINE no longer prints anything, because of the new result reporting 1924 mechanism (AC_MSG_CHECKING and AC_MSG_RESULT). 1925* AC_VERBOSE pays attention to --quiet/--silent, not --verbose. 1926* AC_ARG_ENABLE and AC_ARG_WITH support whitespace in the arguments to 1927 --enable- and --with- options. 1928* AC_CHECK_FUNCS and AC_CHECK_HEADERS take optional shell commands to 1929 execute on success or failure. 1930* Checking for C functions in C++ works. 1931 1932** Removed macros: 1933* AC_REMOTE_TAPE and AC_RSH removed; too specific to tar and cpio, and 1934 better maintained with them. 1935* AC_ARG_ARRAY removed because no one was likely using it. 1936* AC_HAVE_POUNDBANG replaced with AC_SYS_INTERPRETER, which doesn't 1937 take arguments, for consistency with all of the other specific checks. 1938 1939** New files: 1940* Comes with config.sub and config.guess, and uses them optionally. 1941* Uses config.cache to cache test results. An alternate cache file 1942 can be selected with the --cache-file=FILE option. 1943* Uses optional shell scripts $prefix/share/config.site and 1944 $prefix/etc/config.site to perform site or system specific initializations. 1945* configure saves compiler output to ./config.log for debugging. 1946* New files autoconf.m4 and autoheader.m4 load the other Autoconf macros. 1947* acsite.m4 is the new name for the system-wide aclocal.m4. 1948* Has a DejaGnu test suite. 1949 1950Major changes in Autoconf 1.11: 1951 1952* AC_PROG_INSTALL calls install.sh with the -c option. 1953* AC_SET_MAKE cleans up after itself. 1954* AC_OUTPUT sets prefix and exec_prefix if they weren't set already. 1955* AC_OUTPUT prevents shells from looking in PATH for config.status. 1956 1957Plus a few other bug fixes. 1958 1959Major changes in Autoconf 1.10: 1960 1961* autoheader uses config.h.bot if present, analogous to config.h.top. 1962* AC_PROG_INSTALL looks for install.sh in srcdir or srcdir/.. and 1963 never uses cp. 1964* AC_PROG_CXX looks for cxx as a C++ compiler. 1965 1966Plus several bugs fixed. 1967 1968Major changes in Autoconf 1.9: 1969 1970* AC_YYTEXT_POINTER replaces AC_DECLARE_YYTEXT. 1971* AC_SIZEOF_TYPE generates the cpp symbol name automatically, 1972 and autoheader generates entries for those names automatically. 1973* AC_FIND_X gets the result from xmkmf correctly. 1974* AC_FIND_X assumes no X if --without-x was given. 1975* AC_FIND_XTRA adds libraries to the variable X_EXTRA_LIBS. 1976* AC_PROG_INSTALL finds OSF/1 installbsd. 1977 1978Major changes in Autoconf 1.8: 1979 1980** New macros: 1981* New macros AC_LANG_C, AC_LANG_CPLUSPLUS, AC_LANG_SAVE, AC_LANG_RESTORE, 1982 AC_PROG_CXX, AC_PROG_CXXCPP, AC_REQUIRE_CPP 1983 for checking both C++ and C features in one configure script. 1984* New macros AC_CHECKING, AC_VERBOSE, AC_WARN, AC_ERROR for printing messages. 1985* New macros AC_FIND_XTRA, AC_MMAP, AC_SIZEOF_TYPE, AC_PREREQ, 1986 AC_SET_MAKE, AC_ENABLE. 1987 1988** Changed macros: 1989* AC_FIND_X looks for X in more places. 1990* AC_PROG_INSTALL defaults to install.sh instead of cp, if it's in srcdir. 1991 install.sh is distributed with Autoconf. 1992* AC_DECLARE_YYTEXT has been removed because it can't work, pending 1993 a rewrite of quoting in AC_DEFINE. 1994* AC_OUTPUT adds its comments in C format when substituting in C files. 1995* AC_COMPILE_CHECK protects its ECHO-TEXT argument with double quotes. 1996 1997** New or changed command line options: 1998* configure accepts --enable-FEATURE[=ARG] and --disable-FEATURE options. 1999* configure accepts --without-PACKAGE, which sets withval=no. 2000* configure accepts --x-includes=DIR and --x-libraries=DIR. 2001* Giving --with-PACKAGE no argument sets withval=yes instead of withval=1. 2002* configure accepts --help, --version, --silent/--quiet, --no-create options. 2003* configure accepts and ignores most other Cygnus configure options, and 2004 warns about unknown options. 2005* config.status accepts --help, --version options. 2006 2007** File names and other changes: 2008* Relative srcdir values are not made absolute. 2009* The values of @prefix@ and @exec_prefix@ and @top_srcdir@ get substituted. 2010* Autoconf library files are installed in ${datadir}/autoconf, not ${datadir}. 2011* autoheader optionally copies config.h.top to the beginning of config.h.in. 2012* The example Makefile dependencies for configure et al. work better. 2013* Namespace cleanup: all shell variables used internally by Autoconf 2014 have names beginning with `ac_'. 2015 2016More big improvements are in process for future releases, but have not 2017yet been (variously) finished, integrated, tested, or documented enough 2018to release yet. 2019 2020Major changes in Autoconf 1.7: 2021 2022* New macro AC_OBSOLETE. 2023* Bugs in Makefile.in fixed. 2024* AC_LONG_FILE_NAMES improved. 2025 2026Major changes in Autoconf 1.6: 2027 2028* New macro AC_LONG_64_BITS. 2029* Multiple .h files can be created. 2030* AC_FIND_X looks for X files directly if it doesn't find xmkmf. 2031* AC_ALLOCA defines C_ALLOCA if using alloca.c. 2032* --with-NAME can take a value, e.g., --with-targets=sun4,hp300bsd. 2033* Unused --no-create option to configure removed. 2034* autoheader doesn't change the timestamp of its output file if 2035 the file didn't change. 2036* All macros that look for libraries now use AC_HAVE_LIBRARY. 2037* config.status checks three optional environment variables to 2038 modify its behavior. 2039* The usual bug fixes. 2040 2041Major changes in Autoconf 1.5: 2042 2043* New macros AC_FIND_X, AC_OFF_T, AC_STAT_MACROS_BROKEN, AC_REVISION. 2044* autoconf and autoheader scripts have GNU standards conforming 2045 --version and --help options (they print their message and exit). 2046* Many bug fixes. 2047 2048Major changes in Autoconf 1.4: 2049 2050* New macros AC_HAVE_POUNDBANG, AC_TIME_WITH_SYS_TIME, AC_LONG_DOUBLE, 2051 AC_GETGROUPS_T, AC_DEFINE_UNQUOTED. 2052* autoconf and autoheader use the M4 environment variable to determine the 2053 name of the M4 program to use. 2054* The --macrodir option to autoconf and autoheader specifies the directory 2055 in which acspecific.m4, acgeneral.m4, etc. reside if not the default. 2056* autoconf and autoheader can take `-' as their file names, which means to 2057 read stdin as input. 2058* Resulting configure scripts can take a --verbose option which causes them 2059 to print the results of their tests. 2060* AC_DEFINE quotes its second argument in such a way that spaces, magic 2061 shell characters, etc. will be preserved during various stages of 2062 expansion done by the shell. If you don't want this, use 2063 AC_DEFINE_UNQUOTED instead. 2064* Much textual processing done with external calls to tr and sed have been 2065 internalized with builtin M4 `patsubst' and `translit' calls. 2066* AC_OUTPUT doesn't hardwire the file names it outputs. Instead, you can 2067 set the shell variables `gen_files' and `gen_config' to the list of 2068 file names to output. 2069* AC_DECLARE_YYTEXT does an AC_SUBST of `LEX_OUTPUT_ROOT', which may be 2070 "lex.yy" or "lexyy", depending on the system. 2071* AC_PROGRAMS_CHECK takes an optional third arg. If given, it is used as 2072 the default value. 2073* If AC_ALLOCA chooses alloca.c, it also defines STACK_DIRECTION. 2074* AC_CONST works much more reliably on more systems. 2075* Many bug fixes. 2076 2077Major changes in Autoconf 1.3: 2078 2079configure no longer requires awk for packages that use a config.h. 2080Support handling --with-PACKAGE options. 2081New `autoheader' script to create `config.h.in' from `configure.in'. 2082Ignore troublesome -lucb and -lPW when searching for alloca. 2083Rename --exec_prefix to --exec-prefix for GNU standards conformance. 2084Improve detection of STDC library. 2085Add AC_HAVE_LIBRARY to check for non-default libraries. 2086Function checking should work with future GNU libc releases. 2087 2088Major changes in Autoconf 1.2: 2089 2090The --srcdir option is now usually unnecessary. 2091Add a file containing sample comments describing CPP macros. 2092A comment in config.status tells which host it was configured on. 2093Substituted variable values can now contain commas. 2094Fix bugs in various feature checks. 2095 2096Major changes in Autoconf 1.1: 2097 2098Added AC_STRCOLL macro. 2099Made AC_GETLOADAVG check for more things. 2100AC_OUTPUT argument is now optional. 2101Various bug fixes. 2102 2103----- 2104 2105Copyright (C) 1993-1996, 1998-2012 Free Software Foundation, Inc. 2106 2107Copying and distribution of this file, with or without modification, 2108are permitted in any medium without royalty provided the copyright 2109notice and this notice are preserved. This file is offered as-is, 2110without warranty of any kind. 2111 2112Local Variables: 2113mode: outline 2114End: 2115