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