AC_CONFIG_COMMANDS, AC_CONFIG_FILES): Use a shell variable instead
of an m4 variable to store what must be done, so that sh
conditionals are honored.
(_AC_OUTPUT_LINKS, _AC_OUTPUT_HEADERS,
_AC_OUTPUT_COMMANDS, _AC_OUTPUT_FILES): Adjust.
* tests/semantics.m4: Test the four AC_CONFIG sisters.
* doc/autoconf.texi (Configuration Actions): Promote the use of
literals, show it works properly with sh conditionals.
| AC_DEFUN([TEST1], [REQUIRE([TEST2a])REQUIRE([TEST2b])])
| AC_DEFUN([TEST2a], [])
| AC_DEFUN([TEST2b], [REQUIRE([TEST3])])
| AC_DEFUN([TEST3], [REQUIRE([TEST2a])])
|
| AC_INIT
| TEST1
because it produces TEST3; TEST2a; TEST2b; TEST1.
Fix this bug, implement the solution provided by Axel Thimm,
and test AC_REQUIRE.
* acgeneral.m4: Document this implementation.
(_AC_DEFUN_PRO, _AC_DEFUN_EPI, AC_REQUIRE): Be sure that macros
are emitted in the same order as they are expanded.
(AC_REQUIRE): Forbid being calling out of an AC_DEFUN'd macro (in
particular the top level).
* tests/base.m4 (AC_REQUIRE): New test.
* acgeneral.m4 (AC_PRO, AC_EPI): Rename as _AC_DEFUN_PRO and
_AC_DEFUN_EPI.
Adjust dependencies.
(AC_DEFUN): Remove the not-to-be-released specializing mechanism.
(AC_SPECIALIZE): Remove for the same reasons.
Adjust dependencies.
(_AC_INIT_DEFAULTS, _AC_INIT_PARSE_ARGS, _AC_INIT_VERSION,
_AC_INIT_PREPARE, _AC_CANONICAL_SPLIT, _AC_CHECK_TYPE_NEW,
_AC_CHECK_TYPE_OLD): Define via `define' instead of `AC_DEFUN':
they are not related to AC_REQUIRE in any way.
* acspecific.m4 (AC_PROG_ECHO, _AC_DECL_YYTEXT, _AC_PATH_X_XMKMF,
_AC_PATH_X_DIRECT): Define via `define' instead of `AC_DEFUN'.
avoid cache variable conflicts between AC_CHECK_PROG invocations.
(AC_PATH_TOOL): Fix same bugs as in 6/9/00 fixes to AC_CHECK_TOOL.
Pass correct arguments to AC_CHECK_PATH (different from
AC_CHECK_PROG). Use AC_CHECK_PATH cache variable, not
AC_CHECK_PROG var, and use two variables for two invocations as
above. Quote AC_CHECK_* args.
* acgeneral.m4 (AC_OUTPUT_MAKE_DEFS) <confdef2opt.sed>: Reset the
t flag between each cycle.
* doc/autoconf.texi (Limitations of Usual Tools): Some about the t
flag in sed.
specified, we should still check whether PROG-TO-CHECK-FOR
actually works before returning it when the prefixed program is
not found. Also, fixed a bug where it failed to pass the PATH
argument in the second call to AC_CHECK_PROG.
(AC_F77_NAME_MANGLING): Removed useless comment.
(_AC_PROG_F77_GNU): Use `.f' not `.fpp' which is not properly
processed by Abysoft's Fortran compiler.
* acgeneral.m4 (_AC_COMPUTE_INT_COMPILE): Do not put two shell
variable assignments in one shell command.
* doc/autoconf.texi (Shell Substitutions): Document.
* acspecific.m4 (_AC_PATH_X_DIRECT): Hard code `X11/Intrinsic.h'
instead of using `ac_x_direct_test_include', likewise for `Xt' and
`ac_x_direct_test_lib', `XtMalloc' and
`ac_x_direct_test_function'.
Use `no', not `NO' for ac_x_includes and ac_x_libraries.
Adjust dependencies.
(_AC_PATH_X_DIRECT): Introduce ac_x_header_dirs to factor the list
of places where headers and libs might be.
(AC_PATH_XTRA): Don't quote the argument of `case'.
cannot produce object code.
* aclang.m4 (AC_PROG_F77): Remove f2c from the search list.
* doc/autoconf.texi: Excise mentions of f2c in AC_PROG_F77 docs.
is because the DJGPP `ln' emulates soft links for executables by
generating a stub that in turn calls the real program. This
feature also works with nonexistent files like in the Unix
spec. So `ln -s X conftestdata' will generate `conftestdata.exe'
which will attempt to call 'X.exe'. But this feature only works
for executables. Fix it.
* acspecific.m4 (AC_PROG_LN_S): Create a sample file and use it to
test `ln -s'.
Use this technology to compute `sizeof' even when cross-compiling.
Ideas and initial suggestion by Kaveh Ghazi.
Binary search by Bruno Haible.
* aclang.m4 (AC_LANG_BOOL_COMPILE_TRY,
AC_LANG_BOOL_COMPILE_TRY(C), AC_LANG_BOOL_COMPILE_TRY(C++),
AC_LANG_INT_SAVE, AC_LANG_INT_SAVE(C), AC_LANG_INT_SAVE(C++)): New
macros.
* acgeneral.m4 (_AC_COMPUTE_INT_COMPILE, _AC_COMPUTE_INT_RUN,
_AC_COMPUTE_INT): New.
(AC_CHECK_SIZEOF): Use them.
Check whether the type exists beforehand.
* tests/semantics.m4 (AC_CHECK_SIZEOF): Strengthen.
under FreeBSD.
Reported by Alec Wolman.
* acspecific.m4 (AC_FUNC_GETLOADAVG): Check for `getloadavg'
without any additional library.
Fixes Autoconf/109.
classes with `case'. Use `expr' instead.
Suggested by Paul Eggert.
* doc/autoconf.texi (Limitations of Builtins): Explain expr, the
`x' trick, and negated character classes.
* acgeneral.m4 (AC_CHECK_TOOLS): New.
* aclang.m4 (AC_PROG_CXX, AC_PROG_CC, AC_PROG_F77): Use new
AC_CHECK_TOOLS macro instead of AC_CHECK_PROGS so that a cross
compiler is found by default with --host.
* doc/autoconf.texi (Generic Programs, Manual Configuration):
Describe new AC_CHECK_TOOLS macro. Fix unclear working about
AC_CHECK_PROGS.
* tests/Makefile.am (FILTER_MACROS): Adjust.
* acspecific.m4 (AC_XENIX_DIR, AC_DYNIX_SEQ, AC_IRIX_SUN,
AC_SCO_INTL): Wake up a few zombies.
* doc/autoconf.texi: Adjust.
* tests/aclocal.m4 (AC_ENV_SAVE): Likewise.
(Special Shell Variables): Adjust.
(Shellology): New section. Introduce bash and zsh.
(Special Shell Variables): Some data on NULLCMD.
(Quotation Thumb Rule): Rename as
(Quotation Rule of Thumb): this.
* acgeneral.m4 (AC_SHELL_UNSET): Remove.
(AC_SHELL_UNSETENV): Rename as...
(AC_SHELL_UNSET): this.
(_AC_INIT_PREPARE_ENVIRONMENT): Prepare bash and zsh.
Adjust to AC_SHELL_UNSET.
AC_CANONICAL_SYSTEM was run, then the value of `$build' given by
the user was saved into `$build_alias', and `$build' was
normalized using `config.sub'.
Now, let `--build' set `$build_alias' so that scripts with or
without `AC_CANONICAL_BUILD' have the same semantics. This allows
to use `AC_CHECK_TOOL' without requiring `config.guess' and
`config.sub' (which was bizarre anyway).
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): --build, --host and --target
set `build_alias' etc.
After the option handling, set host to $host_alias etc. for
bugward compatibility.
(AC_CANONICALIZE): Mutate into...
(_AC_CANONICAL_SPLIT): this, which does not canonicalize, it just
computes `$foo_os' etc.
(_AC_CANONICAL_THING): Remove, too confusing.
(AC_CANONICAL_BUILD): Adjust.
Do not assign any value to `build_alias', just compute `build', and
`build_{cpy, vendor, os}'.
(AC_CANONICAL_HOST, AC_CANONICAL_TARGET): Likewise.
(AC_CHECK_TOOL_PREFIX): Fire your rule when `$host_alias' is
given, not when `$host != $build'.
* acgeneral.m4 (sinclude): Fix typo.
Now work with other languages than C and C++.
* acspecific.m4 (AC_EXEEXT, AC_OBJEXT): Use
AC_COMPILE_IFELSE/AC_LINK_IFELSE and AC_LANG_PROGRAM instead of
ad hoc code.
Use `$ac_ext' instead of listing `.c', `.C' etc.
Use AC_CACHE_CHECK.
* doc/autoconf.texi (System Services): Adjust.
for special environments.
* acspecific.m4 (AC_CYGWIN, AC_EMXOS2, AC_MINGW32): AU defined to
nothing. Replace them by...
(_AC_CYGWIN, _AC_EMXOS2, _AC_MINGW32): these, which are
automatically called by...
(AC_EXEEXT): this.
* doc/autoconf.texi (System Services, Obsolete Macros): Adjust.
This is important if you want to redefine AC_INIT or some of its
sub macros (eeerk!), or if you want to use user defined macros
before AC_INIT.
Suggested by Didier Verna.
* acgeneral.m4 (_AC_INIT): Don't include `acsite.m4' and
`aclocal.m4'.
* autoconf.sh (run_m4, run_m4f): Do it.
AC_FUNC_GETLOADAVG introduced a bug which already happened (see
Mon Nov 11 18:02:58 1996 David J MacKenzie).
* acgeneral.m4 (AC_CHECK_LIB): Use a less tempting name:
s/ac_save_LIBS/ac_check_lib_save_LIBS/.
`--cache-file=config.cache'.
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): Let `configure' support
`--config-cache' and `-C'.
Report them in `--help'.
Fix the display of missing argument.
(_AC_OUTPUT_SUBDIRS): Adjust.
* doc/install.texi (Invoking configure): Rename the node as
(Running configure scripts): this, the name of the chapter.
(Operation Controls): Rename as...
(Invoking configure): this.
Document the new options.
* doc/autoconf.texi (direntry): Huh? What is this `aclocal' doing
here? Point to `Invoking configure'.
(Cache Files): No need to document the disabling of the cache.
* acgeneral.m4 (_AC_OUTPUT_FILES): Fix the computation of
`ac_file_inputs' for `$ac_given_srcdir' containing a colon.
(AC_CHECK_MEMBERS, AC_PATH_PROG): s/ac_save_ifs/ac_save_IFS/.
Meyering's `chown.m4' serial 4.
(AC_FUNC_GETGROUPS): New macro, based on Jim Meyering's
`getgroups.m4' serial 3.
(AC_FUNC_MEMCMP): Updated, based on Jim Meyering's `memcmp.m4'
serial 3.
(AC_FUNC_MALLOC): New macro, based on Jim Meyering's
`malloc.m4' serial 3.
(AC_FUNC_MMAP): Include `stdlib.h' when `STDC_HEADERS'.
* acfunctions: Sort.
Add `chown' and `malloc', point `getgroups' to `AC_FUNC_GETGROUPS'
instead of `AC_TYPE_GETGROUPS'.
* doc/autoconf.texi (Particular Functions): Adjust.
`config.status'. Fix and test.
* acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Use
`$ac_configure_args' directly, no via a tmp variable.
* tests/torture.m4 (command line interface): Test with more than
one argument.
(AC_INIT): Dispatch your arguments either to _AC_INIT_PACKAGE or
to AC_CONFIG_SRCDIR.
(AU::AC_INIT): New.
* configure.in: Adjust.
Use `#', not `dnl'.
* doc/autoconf.texi (configure.in Layout): Document the new form
of AC_INIT.
Document AC_CONFIG_SRCDIR.
(Obsolete Macros): Document the old one.
`\$foo', the quotes are needed only for `\$[1]', `\$[@]' etc.
Prefer `$$1' to `[$]$1', `$foo' to `[$]foo', `$[1]' to `[$]1' etc.
* aclang.m4: Likewise.
* acspecific.m4: Likewise.
Rename as:
(_AC_PROG_CC_GNU, _AC_PROG_CXX_GNU, _AC_PROG_F77_GNU): these.
Compute the value of GCC, GXX and G77 here.
Set to `no' (instead of empty) if not the GNU compiler.
(AC_PROG_CC, AC_PROG_CXX, AC_PROG_F77): Adjust.
* doc/autoconf.texi: Adjust.
Using --host enables cross-compilation.
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): `--host' enables cross
compilation.
(AC_CANONICAL_BUILD): The help string should explicitly mention
cross compilation.
* aclang.m4 (AC_LANG(C), AC_LANG(C++), AC_LANG(Fortran 77)): Don't
set `cross_compiling'.
(AC_PROG_CC, AC_PROG_CXX, AC_PROG_F77): Run your `WORK' partner
only if not cross-compiling.
(AC_PROG_CC_WORKS, AC_PROG_CXX_WORKS, AC_PROG_F77_WORKS):
If does not work, don't assume an implicit cross-compilation:
fail.
* doc/autoconf.texi: Adjust.
(AC_CHECK_MEMBER, AC_CHECK_MEMBERS): Fix to work properly on
`struct f.g.h'.
* acspecific.m4 (AC_FUNC_GETLOADAVG): Use AC_CHECK_HEADERS and
AC_CHECK_MEMBERS instead of performing their task by hand.
contains all the possible subdirs for `--help=recursive', and
another, `subdirs' which can be built dynamically for launching
sub configurations.
* acgeneral.m4 (AC_CONFIG_SUBDIRS): Define `subdirs' dynamically.
Define `ac_subdirs_all' statically.
Warn if the argument is not a literal.
(AC_LIST_SUBDIRS): Rename as...
(_AC_LIST_SUBDIRS): this.
(_AC_INIT_HELP): Loop over `ac_subdirs_all', not `subdirs'.
(_AC_OUTPUT_SUBDIRS): Loop over `subdirs', not `AC_LIST_SUBDIRS'.
* doc/autoconf.texi (Subdirectories): Adjust.
* acgeneral.m4: Replace all the `test ! -d foo && bar' with
`test -d foo || bar'.
* Makefile.am (.m4.m4f): Stop hiding what you're doing.
Don't check for GNU m4, let it die.
^
/ U T O U P D A T E I I I
/===+ / It bells, It whistles...
* autoupdate.sh: Complete rewrite. See that file for a detailed
explanation.
* acgeneral.sh: Don't use AU_DEFINE, but AU_DEFUN.
(AC_OUTPUT_COMMANDS_CNT): Renamed as...
(_AC_OUTPUT_COMMANDS_CNT): this.
* aclang.m4 (_AC_LANG_CURRENT, AC_LANG_STACK): You two are the same
thing, which now we shall name `_AC_LANG'.
All users adjusted.
(AC_LANG_PUSH, AC_LANG_POP): New macros.
(AC_LANG_SAVE, AC_LANG_RESTORE): AU defined.
(AC_PROG_CC_WORKS, AC_PROG_CXXCPP, AC_PROG_CXX_WORKS,
AC_PROG_F77_WORKS, AC_F77_LIBRARY_LDFLAGS, AC_F77_NAME_MANGLING):
Use them.
(AC_F77_LIBRARY_LDFLAGS): Move the requirements at its top.
* doc/autoconf.texi (Language Choice): Document them.
(Old Macros): Welcome AC_LANG_SAVE and AC_LANG_RESTORE.
* acgeneral.m4 (AC_DECL_YYTEXT): Rename as
(_AC_DECL_YYTEXT): this.
(AC_PROG_LEX): Use it.
(AC_DECL_YYTEXT): New AU macro.
* doc/autoconf.texi: Adjust.
lists in between parens.
(m4_foreach_quoted): new copy of the previous `m4_foreach' which
is still used by `m4_wrap'.
* acgeneral.m4 (AC_INCLUDE, AC_INCLUDES): Removed.
(AC_FOREACH): Don't use parens with `m4_foreach'.
(AC_CHECK_MEMBER, AC_CHECK_DECLS, AC_CHECK_TYPES): Adjust the
description.
* acspecific.m4 (AC_STRUCT_TIMEZONE, AC_STRUCT_ST_BLKSIZE,
AC_STRUCT_ST_BLOCKS, AC_STRUCT_ST_RDEV): Adjust.
* autoconf.texi (AC_CHECK_MEMBER, AC_CHECK_DECLS, AC_CHECK_TYPES):
Adjust their documentation.
(AC_INCLUDE): Undocument.
* tests/semantics.m4: Adjust.
* tests/actest.m4: Rename as...
* tests/aclocal.m4: this.
* tests/atspecific.m4: No longer include actest.m4.
* tests/torture.m4: Likewise.
* tests/Makefile.am: Adjust.
(AC_REPLACE_FUNCS): Use AC_LIBOBJ.
* acspecific.m4 (AC_FUNC_MKTIME, AC_FUNC_MEMCMP,
AC_STRUCT_ST_BLOCKS): Use AC_LIBOBJ.
* doc/autoconf.texi : Adjust so that the user is not encouraged to
use LIBOBJS directly.
(Generic Functions): Document AC_LIBOBJ_DECL and AC_LIBOBJ.
Suggested by Jim Meyering.
* acgeneral.m4 (_AC_SHELL_TMPDIR): New macro.
(_AC_OUTPUT_CONFIG_STATUS): Use it.
Use more quoted here docs to improve readability.
Compute `$me' and use it in the error messages.
Define `$configure' and `$configure_args' to avoid continuously
mixing the uses of `configure' and `config.status' evaluation in a
single line.
Define `$SHELL' and use it.
Simplify all the unjustified `[$]foo' into `$foo', the quotes
are needed only for `$[1]', `$[@]' etc.
Replace all the uses of `ac_cs_root' with files in the tmp dir of
`config.status'.
Remove a few `rm' covered by the removal of the `$tmp' dir.
Let `config.status' support `--debug'.
(_AC_INIT_PREPARE): Avoid the leading space in `ac_configure_args'.
* doc/autoconf.texi (Invoking config.status): Adjust.
Unix 4.0x and 5.0 because `"$@"' expands into an empty parameter
(instead of nothing) when there are no positional parameters.
From Nicolas Joly.
* acgeneral.m4 (AC_CHECK_PROG, AC_CHECK_PROGS): Prefer
`$$1' to `[$]$1', `$foo' to `[$]foo', `$[1]' to `[$]1', and
`${1+"$[@]"}' to `"[$]@"'.
* acgeneral.m4 (_AC_SH_QUOTE): Don't double quote. Escape the
double quotes too.
(_AC_ECHO_UNQUOTED): Don't double quote :).
(_AC_ECHO, _AC_ECHO_N): Quote the call to _AC_SH_QUOTE.
The autoheader chain needs to be adjusted.
* acgeneral.m4 (AH_VERBATIM): Just pass two arguments to AH_OUTPUT
instead of trying to build what `autoheader' needs: let it handle
the format by itself.
* autoheader.m4: Adjust.
s,tmp/config.h,tmp/config.hin.
The adjustment revealed that `autoconf --trace' is not robust to
single quotes in its argument.
* autoconf.sh: Fix this issue.
Rename the escape `$*' as `$%'. Implement `$@'.
* doc/autoconf.texi: Adjust.
section.
Document --help=short and recursive.
Split the `Directory' section into `Installation directories' for
--prefix and --exec-prefix, and all the others into `Fine tuning
of the installation directories'.
In the latter, don't repeat `in DIR', the user understands, and it
comes out better.
Default for --exec-prefix is PREFIX.
Reported by Kathryn Hargreaves.
Move --host before --build.
Fix a test on `$ac_init_help' which was not updated.
values.
* acgeneral.m4 (_AC_CACHE_DUMP): New macro.
(AC_CACHE_SAVE, AC_OUTPUT): Use it.
(AC_OUTPUT): Dump confdefs.h into config.log.
(_AC_INIT_PREPARE::config.log): Name the package being configured
if you can.
newbies accidentally use a stale cache file.
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): Set cache_file to /dev/null
to disable caching by default.
(_AC_INIT_HELP): Adjust the --help message.
(AC_CACHE_LOAD, AC_CACHE_SAVE): Don't print "loading/updating
/dev/null" messages.
* autoconf.texi: Note that caching is disabled, how to enable it,
and that `./config.cache' is the traditional name of the cache file.
* install.texi: Likewise.
they don't break the second time you run configure).
* aclang.m4 (AC_F77_NAME_MANGLING): Extract f77_case,
f77_underscore from cache variable.
(AC_F77_WRAPPERS): Get rid of ac_cv_f77_wrappers, it's useless.
Simplify the nested case-esac into a single one.
Simplify the documentation strings of CPP symbols.
* autoheader.m4: Dispatch the prototypes next to there AC_
siblings.
(AH_TEMPLATE, AH_VERBATIM): Move to...
* acgeneral.m4: here.
(AH_OUTPUT): New macro.
* autoheader.sh: Run `autoconf --trace' instead of `m4 autoheader.m4'.
* autoheader.m4: Remove.
* Makefile.am: Adjust.
* tests/tools.m4 (AH_DEFUN): Remove, no longer makes sense.
* tests/actests.m4 (autoheader::AC_TATOOINE): Remove, was used by
the test above.
fnmatch ("/tmp", "[/\\]")
The backslash must not be last.
* acgeneral.m4 (_AC_INIT_HELP, AC_PATH_PROG, _AC_OUTPUT_FILES,
_AC_OUTPUT_LINKS, _AC_OUTPUT_SUBDIRS): Always make `\' be the
first character in all the `[]' of `case' patterns.
AC_LANG_CALL(FORTRAN77)): New macros.
(AC_TRY_LINK_FUNC): Use it.
(AC_TRY_CPP): Argument was output twice.
(AC_COMPILE_IFELSE, AC_LINK_IFELSE): Output $3 only if needed.
programs.
* acgeneral.m4 (_AC_LANG_DISPATCH): New macro.
(AC_LANG): Use it.
(AC_LANG_SOURCE, AC_LANG_SOURCE(C), AC_LANG_SOURCE(C++),
AC_LANG_SOURCE(FORTRAN77)): New macros.
(AC_TRY_COMPILER, AC_EGREP_CPP, AC_TRY_RUN_NATIVE): Use
AC_LANG_SOURCE.
be used before AC_INIT, but they do require it. But then, the
argument of the explicit AC_INIT call is lost.
* acgeneral.m4 (AC_CONFIG_SRCDIR): New macro.
(_AC_INIT_SRCDIR): Adjust.
(_AC_INIT): Pass your argument to AC_CONFIG_SRCDIR.
* libm4.m4 (m4_append, m4_list_append): Use m4_define, not define.
On my machine the former implementation takes 4mn 40s to run the
test suite. Using m4_define leads to 4mn 15s.
* acgeneral.m4 (_AC_SUBST): Use AC_EXPAND_ONCE (which uses
m4_define, not define). 4mn.
(_AC_DIVERT): Don't use m4_case. Starting from those 4mn, if you
just move NORMAL* first in m4_case, the test suite is run in 3mn.
If instead of using m4, you use an `associative array' plus a
wrapper (current implementation), it falls to 2mn.
* acgeneral.m4 (_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS,
_AC_OUTPUT_LINKS, _AC_OUTPUT_COMMANDS): Prefer
for i in : $is; do test $i = : && continue
over
for i in .. $is; do if test $i != ..; then
* acgeneral.m4 (_AC_INIT_SRCDIR): New macro, pulled out from...
(_AC_INIT_PREPARE): No longer compute `srcdir'.
(_AC_INIT): Use _AC_INIT_SRCDIR.
(AC_INIT): Don't forget to pass the argument to _AC_INIT.
* acgeneral.m4 (AC_PACKAGE): New macro.
(_AC_COPYRIGHT_SEPARATOR): Remove.
(AC_COPYRIGHT): Adjust.
(_AC_INIT_HELP, _AC_INIT_VERSION): Name the package you configure
when you want.
(_AC_INIT): Adjust.
* configure.in (AC_PACKAGE): Add.
of $ac_xdir. Not only is `test -e' not portable, but the test isn't
necessary at all; the following mkdir ends up accomplishing the
same goal. Suggestion from Alexandre Oliva.
arguments, AC_OUTPUT arguments 2 and 3 were not! Currently,
AC_OUTPUT over quotes too: stop that.
Reported by Martin Buchholz.
* doc/autoconf.texi (Output): Don't expand on the ternary
AC_OUTPUT.
* acgeneral.m4 (AC_OUTPUT): Don't over quote $2 and $3.
* acgeneral.m4 (_AC_INIT_PREPARE_ENVIRONMENT): New macro.
Handle the NLS envvars, and IFS.
(_AC_INIT_PREPARE): Use it, no longer set the NLS envvars.
(_AC_WHICH_A, AC_PATH_PROG): Rely on the default IFS.
* acspecific.m4 (AC_PROG_INSTALL, AC_FUNC_SELECT_ARGTYPES):
Likewise.
AC_TRY_LINK, AC_TRY_RUN_NATIVE): Simplify the removal of the
contest files: don't remove them before running the actions, just
remove them at the end of the macro.
* acspecific.m4 (AC_FUNC_SELECT_ARGTYPES): Use a single cache
variable instead of three.
Use AC_CACHE_CHECK.
Shorten the name of the var loops, they are no longer cached.
Include sys/types.h unconditionally.
`select' returns an int, fixes Autoconf/46.
Don't display parens in the user messages.
(AC_REVISION): Require AC_INIT, not _AC_INIT_BINSH.
(AC_INIT): Do what _AC_INIT_BINSH used to.
Don't require _AC_INIT_VERSION, just call it.
Rename as _AC_INIT.
(AC_INIT): New macro, single expansion wrapper around _AC_INIT.
(_AC_COPYRIGHT_SEPARATOR): New.
(AC_COPYRIGHT): Use it.
Require AC_INIT, not _AC_INIT_VERSION.
* doc/autoconf.texi (Versions): Promote as first section of
`Setup'.
Rename as `Notices'.
Document AC_COPYRIGHT.
Don't give false reasons for placing AC_REVISION before AC_INIT,
the place no longer matters.
CONFIG_FILES, we had to expand _AC_OUTPUT_FILES into the KILL
diversion, because it is AC_OUTPUT_FILES which undiverted the
AC_SUBST sed script at its proper place, otherwise it would have
been undiverted at the end of `configure', leading to an sh syntax
error.
Now that we no longer use a diversion, we don't need to call
AC_OUTPUT_FILES if useless.
(AC_OUTPUT_FILES): Rename as _AC_OUTPUT_FILES.
(AC_OUTPUT_LINKS): Rename as _AC_OUTPUT_LINKS.
Automake calls it, and usually users do too. If it happens,
`--program-prefix=g' actually prepend two (or more) `g'.
* acgeneral.m4 (AC_DEFUN_ONCE): New macro.
(AC_ARG_PROGRAM): AC_DEFUNed_ONCE. Or is it AC_DEFUN_ONCE'd? :).
No longer AC_EXPAND_ONCE the help string, the macro itself is
expanded at most once.
Rename the here-doc tag EOF_SED as EOF.
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): Stop global double quoting,
failed experiment.
Merge all the var=val AC_SUBST(var) into AC_SUBST(var, val).
(AC_SUBST): Implement support for 2nd arg.
* doc/autoconf.texi (Setting Output Variables): Adjust.
Suggested by Alexandre Oliva and Lars J. Aas
* libm4.m4 (ifndef): New macro.
* acgeneral.m4 (AC_DIVERT): New macro, maps a diversion name to
its value. The diversions now have a short name, e.g., `NOTICE',
instead of the former macros which had long names, e.g.,
`AC_DIVERSION_NOTICE'.
(AC_DIVERT_PUSH): Adjust.
(AC_DIVERT_POP): Use ifndef.
(AC_DIVERSION_CURRENT): Rename as `AC_DIVERT_DIVERSION' to stay
within the `AC_DIVERT' name domain.
Adjust all callers.
* acspecific.m4: Adjust all callers.
headers if they exist (needed for some missing prototypes) and
corrects the signal handler prototype/definition. The signal
handler prototype is now prepended with an `extern "C"' for C++
compilers since some platforms explicitly require an `extern "C"'
signal handler.
comment.
* libm4.m4 (m4_quote): s/$@/$*/.
* acgeneral.m4 (AC_COPYRIGHT): Prepend `# ' to the lines that goes
on the top of `configure'. Actually, prepend `@%:@ ' so that
there are as many evaluations on both sides.
(_AC_INIT_VERSION): No longer strip `# '.
`configure'. And after all, it suits to `configure --version' too.
* acgeneral.m4 (AC_DIVERSION_DEFAULTS, AC_DIVERSION_INIT_PREPARE):
New diversion numbers.
(AC_DIVERSION_INIT): Renamed as...
(AC_DIVERSION_INIT_PARSE_ARGS): this.
(AC_DIVERT_POP): Instead of going into wild endless loops when
there are more pops than pushes, die with dignity.
(AC_COPYRIGHT): New macro.
(_AC_INIT_NOTICE): Move definition of `ac_includes_default' from
here...
(_AC_INIT_PREPARE): to here.
(_AC_INIT_NOTICE): Remove.
(AC_INIT): Use it to install Autoconf's Copyright.
(_AC_INIT_DEFAULTS): New macro.
(AC_INIT): Use it.
(AC_PREFIX_DEFAULTS): Dump in AC_DIVERSION_DEFAULTS.
(_AC_INIT_PARSE_ARGS): Dump in AC_DIVERSION_INIT_PREPARE.
* acgeneral.m4 (AC_DIVERSION_DEFAULTS): New diversion number.
(_AC_INIT_NOTICE): Move definition of `ac_includes_default' from
here...
(_AC_INIT_PREPARE): to here.
(_AC_INIT_NOTICE): Play with your diversion yourself, don't let
(AC_INIT): do it for you.
(_AC_INIT_DEFAULTS): New macro.
(AC_INIT): Use it.
* acgeneral.m4 (AC_EXPAND_ONCE): AC_PROVIDE yourself, in case
there is no AC_DEFUN associated with the text to expand.
(_AC_ARG_ENABLE_HELP_PROLOGUE, _AC_ARG_WITH_HELP_PROLOGUE,
_AC_ARG_VAR_HELP_PROLOGUE): Remove, instead...
(AC_ARG_ENABLE, AC_ARG_WITH, AC_ARG_VAR): do it yourself.
`configure --help'.
* acgeneral.m4 (AC_DIVERSION_HELP_BEGIN, AC_DIVERSION_HELP_ENABLE,
AC_DIVERSION_HELP_WITH, AC_DIVERSION_HELP_VAR,
AC_DIVERSION_HELP_END): New diversion numbers.
(AC_EXPAND_ONCE): New macro.
(AC_PROVIDE_IF): New macro.
(AC_BEFORE, AC_REQUIRE): Use it.
(AC_REQUIRE): Don't use indir.
(_AC_ARG_ENABLE_HELP_PROLOGUE, _AC_ARG_WITH_HELP_PROLOGUE,
_AC_ARG_VAR_HELP_PROLOGUE): New macros.
(AC_ARG_ENABLE, AC_ARG_WITH, AC_ARG_VAR): Expand once the
_HELP_PROLOGUE macro which corresponds.
(_AC_INIT_HELP): Adjust to AC_DIVERSION_HELP_BEGIN and
AC_DIVERSION_HELP_END.
(_AC_INIT_NOTICE, _AC_INIT_HELP): Remove the sh code which handled
the optional help strings.
(_AC_INIT_PARSE_ARGS): this.
Move the display of help and version strings to...
(_AC_INIT_HELP, _AC_INIT_VERSION): here.
(AC_INIT): Adjust. Also, fix quotation.
Any character before the colon is accepted because network drives
can be assigned characters outside the [a-zA-Z] range. DOS-style
relative paths (?:foo/bar) are also considered absolute for
Autoconf's purposes since the path '../?:foo/bar' is invalid.
* acgeneral.m4 (AC_OUTPUT_FILES): Treat DOS-style paths (?:*') as
absolute.
(AC_OUTPUT_SUBDIRS): Likewise.
(AC_PATH_PROG): Make pattern for matching DOS-style paths the same
as that used in AC_OUTPUT_FILES and AC_OUTPUT_SUBDIRS.
(AC_CHECK_PROG): Use it. Use ifval.
(AC_CHECK_PROGS): Use ifval. Fix the quoting.
* tests/semantics.m4: Test AC_CHECK_PROG.
* tests/Makefile.am (EGREP_EXCLUDE): Add /AC_CHECK_PROGS?/.
They're back to save the world.
* acspecific.m4 (AC_PROG_CC_C_O, AC_PROG_F77_C_O,
AC_PROG_MAKE_SET, AC_TYPE_GETGROUPS, AC_FUNC_GETLOADAVG,
AC_FUNC_MKTIME, AC_STRUCT_TIMEZONE, AC_F77_LIBRARY_LDFLAGS): Blast
that jelly o' changequote. Set the quotes free.
`configure', not `config.status', hence use `conftest' for tmp
files, not `$ac_cs_root'.
Removed forgotten developer comment.
Double quoting the whole body is nicer than just the part that
needs to be.
From Dan Ackroyd.
* acgeneral.m4 (AC_INIT_PARSE_ARGS, AC_INIT_PREPARE,
AC_CACHE_SAVE, AC_PREFIX_PROGRAM, AC_OUTPUT,
_AC_OUTPUT_CONFIG_STATUS, AC_OUTPUT_MAKE_DEFS, AC_OUTPUT_FILES,
_AC_OUTPUT_HEADERS, AC_OUTPUT_LINKS, AC_OUTPUT_SUBDIRS): Quit
playing with changequotes, @BKL@ and Co.! Just quote properly.
Test it.
* acgeneral.m4 (AC_OUTPUT_HEADERS): Renamed as...
(_AC_OUTPUT_HEADERS): this. All callers changed.
Don't mess with changequote, just quote properly.
Bug 1. Because of the `#' in `ac_dA', the quotes <<>> were not
removed, and therefore the sed script contained `<<define>>'
instead of `define'. Now that the block is properly quoted, there
is no need to quote `define'.
Bug 2. Once a `#define' substitution performed, we were branching
to the top of the sed script (`t top'). This resulted in an
endless substitution of `#define foo 1' to `#define foo 1'.
Branching is not enough: you also have to fetch the next input
line, i.e., use `t' instead of `t t' in ac_dD, and don't output
`: top' in `config.defines'.
Though it was correct for `#undef' templates, just apply the same
transformation to `ac_uD' and `config.undefs'.
Bug 3. Don't try to preserve what was behind the value in the
template, since on
#define NAME "bar baz"
it leads to
#define NAME 1 baz"
Now `ac_dB' catches everything behind the NAME (making sure there
is at least a space) and `ac_dC' only outputs a space.
* tests/torture.m4: Check that various forms of `#define' header
templates are properly handled.
* acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): It is smarter to use a
quoted here doc to output the section providing defaults for
CONFIG_*.
Don't rm the CONFIG_FILES here but in..
(AC_OUTPUT_FILES) [test -n "$CONFIG_FILES"]: here.
Hm, actually, no, just don't remove them at all, let the newly
created files replace the old ones, exactly as in
AC_OUTPUT_HEADERS.
From Graham Jenkins.
`AC_CHECK_TYPE',
Based on ideas from Paul Eggert and Alexandre Oliva.
* acgeneral.m4 (AC_CHECK_TYPE_INTERNAL): Renamed as
(_AC_CHECK_TYPE_NEW): this.
(AC_CHECK_TYPES): Adjusted.
(AC_CHECK_TYPE): Renamed as
(_AC_CHECK_TYPE_OLD): This. Adjusted to _AC_CHECK_TYPE_NEW.
No longer support extra includes, stick to 2.13's interface.
(_AC_CHECK_TYPE_BUILTIN_P): New macro.
(AC_CHECK_TYPE): New macro.
* autoheader.m4 (autoheader::AC_CHECK_TYPE): Renamed as...
(autoheader::_AC_CHECK_TYPE_OLD): this.
* tests/atspecific.m4 (TEST_MACRO): Skip /^_AC_/ macros.
* tests/semantics.m4: Test the choices of AC_CHECK_TYPE (wrt _NEW
or _OLD implemenation).
* doc/autoconf.texi (Generic Types): Reorganized. Explain
everything about AC_CHECK_TYPE and Co.
AC_LINK_FILES($from, $to)
`$from' and `$to' can be lists, hence `AC_CONFIG_LINKS($to:$from)'
is wrong.
Reported by H.J. Lu.
* acgeneral.m4 (AC_LINK_FILES): Replace the m4-glue code from
AC_LINK_FILES to AC_CONFIG_LINKS, with sh-glue code.
Give a detailed update message.
(_AC_LINK_FILES_CNT): New variable. Initialize.
* tests/tools.m4 (autoupdate): No longer exercise `autoupdate'
with AC_LINK_FILES.
`configure' and `config.status'.
* acgeneral.m4 (AC_OUTPUT_CONFIG_STATUS): Renamed as...
(_AC_OUTPUT_CONFIG_STATUS): this.
Change the error messages from
value: invalid feature name
to
invalid feature: value
Invite the user to try --help for invalid options.
(AC_INIT_PARSE_ARGS): Likewise.
(_AC_OUTPUT_COMMANDS): This. All callers changed.
Disable the verbose message until Automake uses the new features
of `config.status'.
Reported by Jim Meyering.
* acgeneral.m4 (AC_INIT_PARSE_ARGS, getopt loop): Always define
ac_optarg as the rhs of the first `=', not only on `-.*=', so that
`configure var=val' defines ac_optarg=val.
Improve the robustness to shell special characters:
- Use grep when checking that shell variable names are valid.
- Quote the quotes in ac_optarg before `eval var='$ac_optarg''.
- Quote the quotes when building ac_configure_args.
* tests/torture.m4: Test that `./configure foo=bar' works properly.
* acgeneral.m4 (AU_DEFINE): New macros, pulled out from AU_DEFUN.
Defines a macro in `autoupdate::' with all the required wrapping
for `autoupdate'.
(AU_DEFUN): Use it.
(AC_OUTPUT): When dispatching your arguments, use ifval, not
ifset!
Dispath actions to AC_CONFIG_COMMANDS not AC_OUTPUT_COMMANDS, to
avoid unneeded warnings for obsolete use of AC_OUTPUT_COMMANDS.
(autoupdate::AC_OUTPUT): New macro.
* doc/autoconf.texi (Writing configure.in, the example): Don't
advocate AC_OUTPUT with args.
(Output, AC_OUTPUT with args): Simplify the documentation, and
provide the translation into the new scheme.
Propagate what remained into the proper sections.
* acgeneral.m4 (AC_OUTPUT_COMMANDS): AU_DEFUNed in terms of
AC_CONFIG_COMMANDS.
(AC_OUTPUT_COMMANDS_CNT): New variable, declared both in
`autoconf::' and `autoupdate::'.
(AC_OUTPUT): Register your arguments to AC_OUTPUT_COMMANDS only if
there are to avoid spurious `run autoupdate' messages.
* doc/autoconf.texi (Libraries): Document the changes.
are none.
* acgeneral.m4 (AC_OUTPUT): Don't register $1 to `AC_CONFIG_FILES'
if $1 is empty.
Normalize the names of the sections in `config.status --help'.
* acgeneral.m4 (_AC_CONFIG_COMMANDS_INIT): New macro which will
collect the `INIT-CMDS'.
(AC_CONFIG_COMMANDS, AC_CONFIG_LINKS, AC_CONFIG_HEADERS,
AC_CONFIG_FILES): Use it, and also temporarily divert to -1
instead of spamming dnl everywhere.
(AC_OUTPUT_CONFIG_STATUS): Make sure to output the INIT-CMDS
before the other sections, it'd be a pity to initialize after the
use :).
* doc/autoconf.texi (Configuration Actions): New section,
documenting the common behavior of AC_CONFIG_FILES,
AC_CONFIG_HEADERS, macro AC_CONFIG_COMMANDS, and AC_CONFIG_LINKS.
(Configuration Files): Document $2 and $3 of AC_CONFIG_FILES.
(Configuration Headers): Document $2 and $3 of AC_CONFIG_HEADERS.
(Configuration Commands): Document $2 and $3 of AC_CONFIG_COMMANDS.
(Configuration Links): Document $2 and $3 of AC_CONFIG_FILES.
* acgeneral.m4 (AC_UNGNITS): Renamed as...
(_AC_VERSION_UNLETTER): this. All callers changed.
Implement the scheme proposed by Alexandre Oliva:
Nl -> (N+1).-1.(l#)
(_AC_VERSION_COMPARE): New macro.
(AC_PREREQ): Use it.
yourself, in order to give better error messages.
(AC_CONFIG_IF_MEMBER): Adapted to the above change.
Quote some regexp active characters ([+.*]).
Suggested by Alexandre Oliva.
* doc/autoconf.texi (Common Behavior): New section, to document
the common behavior of the macros.
(Standard Symbols): New subsection. Describes the transformation
of the AC_DEFINEd names.
(Default Includes): New subsection. Obvious content.
All the ``callers'' updated.
while loops which are breaking conftest.defines and
conftest.undefs into smaller snippets: just use the proper
condition for the while.
Suggested by Alexandre Oliva.
* doc/autoconf.texi (Concept Index): New section.
Various entries added.
(Typedefs): Renamed as...
(Types): this. Pay attention to not limiting the documentation to
the typedefs.
(Particular Types): Mention the equivalent generic test.
Promote the GNU coding style at various places.
given in the prologue of acobsolete.m4.
* acgeneral.m4 (Prologue): Enter the `autoconf' name space.
(AU_DEFUN): New macro.
* autoupdate.m4: New file.
Disable the name spaces `autoconf', and `libm4'. Disable libm4.
* Makefile.am: Tuned to support the changes above.
* autoupdate.sh: Model after autoconf.sh.
Can run on several files at once (for instance m4/*.m4).
Don't touch files that are up to date.
Run m4 on autoupdate.m4f instead of playing with sed.
Use AU_DEFUN.
* acgeneral.m4 (AC_LINK_FILES, AC_ENABLE, AC_WITH): Use AU_DEFUN,
remove the call to AC_OBSOLETE.
* acspecific.m4 (AC_CYGWIN32): Likewise.
* acoldnames.m4: Replaced all the definitions via `define' or
`AC_DEFUN' to use `AU_DEFUN'.
* acoldnames.m4: Use `#', not `dnl'.
Don't spread `dnl' everywhere, anyway, we are in a divert(-1).
* autoconf.m4: Likewise.
* autoheader.m4: Likewise.
output can be problematic with autoupdate.
* acgeneral.m4 (AC_INIT_NOTICE): Output ac_includes_default.
(Default includes section): No longer dump ac_includes_default in
AC_DIVERSION_INIT.
* autoconf.sh: Give your name while reporting errors.
Don't spit --help for errors on arguments.
* autoreconf.sh: Likewise.
* autoheader.sh: Likewise.
More temporary files that one can browse when debugging.
Don't ${var}, just $var.
Don't dump --help when the arguments are invalid.
(config_h): Use the empty value instead of `undefined' to check
that it is defined.
* acspecific.m4: Formatting changes.
yourself. This allows to see everything that is AC_PROVIDEd via
autoconf --trace.
(AC_SPECIALIZE): define'd, not AC_DEFUN'd.
(AC_PROVIDE): Use define with a single arg, instead of an empty $2.
* acgeneral.m4 (AC_TRY_COMPILER, AC_TRY_LINK_FUNC, AC_CHECK_LIB,
AC_TRY_COMPILE, AC_TRY_LINK, AC_TRY_RUN_NATIVE, AC_CHECK_FUNC):
Use AC_LANG_CASE instead of ifelse (AC_LANG, ...).
(AC_TRY_LINK_FUNC): Quote the body the the AC_DEFUN (whoa, how
could this survive so long?!?).
* doc/autoconf.texi (Header Templates): Promote #if over #ifdef;
and #undef over #define in templates.
* acspecific.m4 (AC_DECL_SYS_SIGLIST, AC_FUNC_MMAP,
AC_FUNC_SETPGRP, AC_FUNC_VFORK, AC_FUNC_SELECT_ARGTYPES): Use #if,
not #ifdef and #ifndef, indent CPP directives.
default headers in the INIT section of configure: the reason is
that AC_INCLUDES_DEFAULT is called unquoted, and this results in
an un expected behavior. Thanks to Roman V. Shaposhnick for the
details.
The current implementation is not satisfying: the default headers
are defined in the INIT section even if they are not used.
* acgeneral.m4 (Prologue of AC_INCLUDES_DEFAULTS): Dump the
definition of ac_includes_default in the INIT section of
configure.
(AC_INCLUDES_DEFAULTS): Use it.
test.
* acgeneral.m4 (AC_CHECK_SIZEOF): Don't over quote $1, some []
were left in the C code, and had the macro fail.
Use AC_INCLUDES_DEFAULT.
* doc/autoconf.texi: Mention default includes. Explain stdio.h
must always be given.
* tests/atspecific.m4 (TEST_MACRO): Updated the list of
exceptions.
(AT_CHECK_DEFINES): New macro, to check the content of config.h.
* tests/semantics.m4: All the tests are updated to use
AT_CHECK_DEFINES.
Test AC_CHECK_SIZEOF, AC_CHECK_HEADERS, and AC_CHECK_FUNCS.