Akim Demaille [Tue, 23 May 2000 14:50:43 +0000 (14:50 +0000)]
Modernize AC_EXEEXT and AC_OBJEXT.
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.
Akim Demaille [Tue, 23 May 2000 14:47:33 +0000 (14:47 +0000)]
Simplify the interface: users shouldn't need to explicitly check
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.
Akim Demaille [Tue, 23 May 2000 14:15:27 +0000 (14:15 +0000)]
* doc/autoconf.texi (Exiting from Shell Scripts): Move contents
into...
(Limitations of Builtins): this new node.
Document limitations of `exit', `export' and `case'.
Welcome the documentation of `test' from...
(Limitations of Usual Tools): here.
Akim Demaille [Tue, 23 May 2000 09:52:05 +0000 (09:52 +0000)]
Load the additions *before* running AC_INIT.
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.
Akim Demaille [Mon, 22 May 2000 15:31:54 +0000 (15:31 +0000)]
Reading the ChangeLog revealed that the recent update of
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/.
Akim Demaille [Mon, 22 May 2000 13:31:00 +0000 (13:31 +0000)]
Add `configure --config-cache', `-C' as a shortcut for
`--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.
Akim Demaille [Mon, 22 May 2000 10:29:46 +0000 (10:29 +0000)]
More MS-DOS support.
* 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/.
Akim Demaille [Mon, 22 May 2000 08:46:23 +0000 (08:46 +0000)]
* acspecific.m4 (AC_FUNC_CHOWN): New macro, based on Jim
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.
Akim Demaille [Mon, 22 May 2000 08:05:40 +0000 (08:05 +0000)]
More than one argument to `configure' builds a broken
`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.
Akim Demaille [Fri, 19 May 2000 13:16:06 +0000 (13:16 +0000)]
* acgeneral.m4 (AC_PACKAGE): Rename as _AC_INIT_PACKAGE.
(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.
Akim Demaille [Fri, 19 May 2000 13:07:13 +0000 (13:07 +0000)]
* acgeneral.m4: Simplify all the unjustified `[\$]foo' into
`\$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.
Akim Demaille [Fri, 19 May 2000 12:55:02 +0000 (12:55 +0000)]
* aclang.m4 (AC_PROG_CC_GNU, AC_PROG_CXX_GNU, AC_PROG_F77_GNU):
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.
Akim Demaille [Fri, 19 May 2000 12:40:45 +0000 (12:40 +0000)]
Either we cross-compile the whole package, or we don't.
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.
Akim Demaille [Fri, 19 May 2000 12:20:41 +0000 (12:20 +0000)]
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): Prefer
case $foo in
*[^-a-zA-Z0-9_]*) AC_ACTION;;
esac
over
if echo "$foo" | grep '[^-a-zA-Z0-9_]' >/dev/null 2>&1; then
AC_ACTION
fi
Akim Demaille [Fri, 19 May 2000 12:11:47 +0000 (12:11 +0000)]
* acgeneral.m4 (AC_SPECIALIZE): Avoid a useless `indir'.
(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.
Akim Demaille [Fri, 12 May 2000 11:29:07 +0000 (11:29 +0000)]
* doc/autoconf.texi (Invoking config.status): Move the
documentation of the envvar CONFIG_(FILES, HEADERS, COMMANDS,
LINKS) to
(Obsolete config.status Use): here.
Akim Demaille [Thu, 11 May 2000 16:56:13 +0000 (16:56 +0000)]
AC_CONFIG_SUBDIRS needs two lists: one, ac_subdirs_all, which
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.
Akim Demaille [Thu, 11 May 2000 15:45:34 +0000 (15:45 +0000)]
The Associated Rewriters are even prouder to present...
.
|
|
/-+ / + )===( U T O U P D A T E I V
// \
=========
_//_ _\_ The ``Eiffel Tower'' Release
* autoupdate.sh: Complete rewrite. See that file for a detailed
explanation. Basically, simulate the name spaces thanks to
`autoconf --trace' and auxiliary files.
No longer use `autoupdate.m4', remove the dependencies.
Synchronize the options and `--help'.
* doc/autoconf.texi (Invoking autoupdate): Humanoupdate.
* autoupdate.m4: Delete.
* tests/Makefile.am (FILTER_MACROS): Add `AC_OUTPUT'.
Since `AC_OUTPUT' is now AU_DEFUN'd, it is extracted for testing,
while it was not before.
* tests/tools.m4 (autoupdate): Re-enable. Adjust the expected
output with the right quotation (yeah!).
Pass `-m $top_srcdir': autoupdate want the `.m4' files, not the
frozen files.
* Makefile.am (nodistpkgdataDATA): Move `acversion.m4' to
(distpkgdataDATA): here, so that all the `.m4' files are in the
source hierarchy, not split across src and build.
* acversion.m4.in: Update to today's standards.
* Makefile.am: Adjust.
Akim Demaille [Thu, 11 May 2000 14:29:00 +0000 (14:29 +0000)]
* libm4.m4: Be robust to multiple inclusion.
Have the first `changequote' robust to the current quotation
system.
Always quote the first argument of `define'.
Akim Demaille [Thu, 11 May 2000 14:05:52 +0000 (14:05 +0000)]
The Associated Rewriters are proud to present...
^
/ 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.
Akim Demaille [Thu, 11 May 2000 12:41:33 +0000 (12:41 +0000)]
Replace AC_LANG_SAVE/AC_LANG_RESTORE with AC_LANG_PUSH/AC_LANG_POP.
* 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.
Akim Demaille [Thu, 11 May 2000 08:31:16 +0000 (08:31 +0000)]
* acspecific.m4 (_AC_CHECK_HEADER_DIRENT): Use more modern
Autoconf idioms.
(_AC_CHECK_HEADERS_DIRENT): Removed, instead...
(AC_HEADER_DIRENT): Handle the loop.
Akim Demaille [Thu, 11 May 2000 07:59:08 +0000 (07:59 +0000)]
Merge AC_DECL_YYTEXT into AC_PROG_LEX.
* 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.
Akim Demaille [Wed, 10 May 2000 16:52:35 +0000 (16:52 +0000)]
Update and polish the documentation.
* doc/autoconf.texi: Use @sc where upper case names were used.
Remove a few useless `dnl'.
Convert some `dnl' into comments.
Promote `$(foo)' in Makefiles, not `${foo}'.
Promote `$foo' in shell scripts, not `${foo}'.
Promote `foo = bar' in Makefiles, not `foo=bar'.
(Language Choice): Document `AC_LANG', move `AC_LANG_C',
`AC_LANG_CPLUSPLUS' and `AC_LANG_FORTRAN77' to
(Old Macros): here.
* doc/install.texi: Fix a typo in the specification of the system
quadruples.
Akim Demaille [Wed, 10 May 2000 16:16:31 +0000 (16:16 +0000)]
* libm4.m4 (m4_foreach): Rewritten so that it does not require
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.
Akim Demaille [Wed, 10 May 2000 11:47:35 +0000 (11:47 +0000)]
* acgeneral.m4 (AC_LIBOBJ_DECL, AC_LIBOBJ): New macros.
(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.
Akim Demaille [Tue, 9 May 2000 09:45:04 +0000 (09:45 +0000)]
Let `config.status' use a private temp dir.
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.
Akim Demaille [Fri, 5 May 2000 13:29:47 +0000 (13:29 +0000)]
AC_CHECK_PROG macro fails if REJECT value is set under Digital
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 `"[$]@"'.
Akim Demaille [Wed, 3 May 2000 12:28:17 +0000 (12:28 +0000)]
* tests/tools.m4 (autoheader): Don't pass `-l at_srcdir' to
`autoheader', since `acconfig.h' is created in the build dir.
There's one empty line less in `config.h.in' than before when
using `acconfig.h'.
Akim Demaille [Wed, 3 May 2000 11:22:50 +0000 (11:22 +0000)]
Simplify the handling of `acconfig.h'.
* autoheader.sh: No longer try to select the needed paragraphs of
`acconfig.h', just dump everything into `config.h.in'.
Implement support for `--warnings'.
Warn the users that these auxiliary files are obsolete when `-W
obsolete'.
* doc/autoconf.texi (Invoking autoheader): Adjust.
Akim Demaille [Wed, 3 May 2000 08:53:06 +0000 (08:53 +0000)]
Don't double quote in AC_MSG_*.
* 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.
mawk suffers a severe performance loss when using `sub' with a
changing value. On the `configure' script of the fileutils:
mawk '{ sub (/foo/, foo++) }' -> 14s.
mawk '{ if ($0 ~ /foo/) sub (/foo/, foo++) }' -> 0.03s.
mawk '{ sub (/foo/, foo) }' -> 0.03s.
* autoconf.sh (task script, AWK script): Run `sub (__oline__,
oline)' only in the lines that match `__oline__'.
Suggested by Paul Eggert.
* acgeneral.m4 (_AC_INIT_HELP): Move --srcdir in the first
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.
* tests/atspecific.m4 (AT_TEST_MACRO): Don't check `env-after' if
the file does not exist, which may happen when a `configure' exits
brutally.
* tests/semantics.m4 (AC_CHECK_MEMBERS, AC_CHECK_TYPES): ANSI C++
forbids members named like their hosting struct, so don't do it.
* autoscan.pl: Reindent using 2 spaces, not 4.
Use `#' to denote Autoconf comments, not `dnl'.
Put a few `' here and there to avoid misfontification and
misindentation.
Use your base name when reporting errors.
(parse_args::usage): Use $0, use the same order as the other
executables.
(parse_args): Don't dump `--help' on cmd line errors.
* acgeneral.m4 (AC_PROVIDE_IF): Rename as...
(AC_PROVIDE_IFELSE): this. Change all callers.
Spread the use of AC_PROVIDE_IFELSE, no macro should know how
AC_PROVIDE names its internal variables.
* doc/autoconf.texi (Old Macro Names): Rename as...
(Old Macros): this. Change the @table enumeration into a list of
@defmac.
(AC_CHECKING, AC_CHECK_TYPE, AC_COMPILE_CHECK, AC_C_CROSS,
AC_DYNIX_SEQ, AC_HAVE_LIBRARY, AC_IRIX_SUN, AC_LINK_FILES,
AC_OUTPUT, AC_OUTPUT_COMMANDS, AC_SCO_INTL, AC_VERBOSE,
AC_XENIX_DIR): Move their descriptions into here.
Kill a few TeX warnings.
* acgeneral.m4: s/1>&/>&/g.
(AC_FD_LOG): New macro, replaces...
(AC_FD_CC): this. Provide an AU definition.
(_AC_ECHO_UNQUOTED, _AC_ECHO_N): Use m4_default.
At the end of `./configure', save the cache values, and the CPP
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.
Disable caching by default, so as not to cause problems when
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.