mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-27 01:49:56 +08:00
372 lines
14 KiB
Plaintext
372 lines
14 KiB
Plaintext
-*- outline -*-
|
|
|
|
Things it might be nice to do someday. I haven't evaluated all of
|
|
these suggestions... their presence here doesn't imply my endorsement.
|
|
-djm
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Make AC_CHECK_LIB check whether the function is already available
|
|
before checking for the library. This might involve adding another
|
|
kind of cache variable to indicate whether a given function needs a
|
|
given library. The current ac_cv_func_ variables are intended to
|
|
indicate whether the function is in the default libraries, but
|
|
actually also take into account whatever value LIBS had when they
|
|
were checked for.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Add AC_PROG_CC_POSIX to replace the current ad-hoc macros for AIX,
|
|
Minix, ISC, etc.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Use AC_EGREP_CPP instead of AC_TRY_LINK to detect structures and members.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Make AC_CHECK_FUNC[S] automatically use any particular macros for the
|
|
listed functions.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Support creating both config.h and DEFS in the same configure.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Select the right CONFIG_SHELL automatically (for Ultrix, Lynx especially.)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Doc: Add concept index.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Doc: Centralize information on POSIX, MS-DOS, cross-compiling, and
|
|
other important topics.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Split up AC_SUBST substitutions using a loop to accomodate shells
|
|
with severely limited here document sizes, if it turns out to be a problem.
|
|
I'm not sure whether the limit is on lines or bytes; if bytes, it
|
|
will be less of a problem than it was with the long lines used for
|
|
creating a header file.
|
|
There has also been a report that HPUX and OSF/1 seds only allow 100
|
|
commands.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Allow [ and ] in egrep patterns and AC_DEFINE args.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Add a Makefile generator that supports the standard GNU targets.
|
|
(Being worked on.)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Mike Haertel's suggestions:
|
|
|
|
** Provide header files containing decls for alloca, strings, etc.
|
|
|
|
** Cross compiling:
|
|
|
|
*** Error messages include instructions for overriding defaults using
|
|
config.site.
|
|
|
|
*** Distribute a config.site corresponding to a hypothetical bare POSIX system with c89.
|
|
|
|
*** Cache consistency checking: ignore cache if environment
|
|
(CC or PATH) differs.
|
|
|
|
** Site defaults:
|
|
|
|
*** Convention for consistency checking of env vars and options in config.site so config.site can print obnoxious messages if it doesn't like options or env vars that users use.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* autoscan: Tell the files that caused inclusion of each macro,
|
|
in a dnl comment. (Seems to be hard.)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Look at user contributed macros:
|
|
prototypes
|
|
IEEE double precision math
|
|
shared libraries
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
For AC_TYPE_SIGNAL signal handlers, provide a way for code to know
|
|
whether to do "return 0" or "return" (int vs void) to avoid compiler
|
|
warnings. (Roland McGrath)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
In config.status comment, put the host/target/build types, if used.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Support a way of including makefile fragments that then have @var@
|
|
substitutions done on them.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Have AC_CANONICAL_* cache the host/build/target types.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Look at contributions:
|
|
ac_include (Karl Berry)
|
|
aclocal.h tom@basil.icce.rug.NL (Tom R.Hageman)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
The argument HELP-STRING is a description of the option which
|
|
...
|
|
Avoid tabs in the help string. You'll need to enclose it in `['
|
|
and `]' in order to produce the leading spaces.
|
|
|
|
Except that [...] is the convention for telling the user the default,
|
|
So I guess a changequote(`,') or something would be in order in some cases.
|
|
From: "K. Berry" <kb@cs.umb.edu>
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
I would find it a wonderful boon if config.log contained not just the
|
|
output from the compilers, but also the invocation. Almost all
|
|
the errors I've found are due to the wrong options getting passed for
|
|
one reason or another.
|
|
|
|
Saving the input test file(s) that failed would be useful, too.
|
|
From: "K. Berry" <kb@cs.umb.edu>
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
The default of unlimited permission is fine, but there should be some easy
|
|
way for configure to have copyright terms passed through from configure.in.
|
|
Maybe AC_LICENSE([...]).
|
|
From: roland@gnu.ai.mit.edu (Roland McGrath)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
autoconf-2.1 AC_EGREP_HEADER does not work if [square brackets]
|
|
are used in the egrep pattern. This makes egrep fairly useless to
|
|
find, for example, a space or tab followed by something.
|
|
|
|
Putting changequotes around the PATTERN parameter makes no difference.
|
|
-Jim Avera (jima@netcom.com)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
AC_MSG_CHECKING([checking for ANSI #stringize])
|
|
AC_REVISION([ #(@) revision 2.1 ])
|
|
|
|
causes bogus code to be generated for whatever immediately follows. The
|
|
problem goes away if the '#' is removed. Probably the macros are not
|
|
disabling the m4 "comment" feature when processing user-supplied strings.
|
|
-Jim Avera jima@netcom.com
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
on hal.gnu.ai.mit.edu, configure is getting the wrong answer for
|
|
AC_CHECK_FUNCS(select).
|
|
|
|
The problem here is that there's severe namespace pollution: when
|
|
conftest.c includes <ctype.h> to pick up any __stub macro definitions,
|
|
it's getting a prototype declaration for select(), which collides
|
|
with the dummy declaration in conftest.c. (The chain of includes
|
|
is conftest.c -> <ctype.h> -> <sys/localedef.h> -> <sys/lc_core.h>
|
|
-> <sys/types.h> -> <sys/select.h>.)
|
|
|
|
#define $ac_func __dummy_$ac_func
|
|
#include <ctype.h>
|
|
#undef $ac_func
|
|
From: kwzh@gnu.ai.mit.edu (Karl Heuer)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
put all the config.* stuff somewhere like config/?
|
|
All these extraneous files sure clutter up a toplevel directory.
|
|
From: "Randall S. Winchester" <rsw@eng.umd.edu>
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
It would be nice if I could (in the Makefile.in files) set
|
|
the path to config.h. You have config.h ../config.h ../../config.h's all
|
|
over the place, in the findutils-4.1 directory.
|
|
From: "Randall S. Winchester" <rsw@eng.umd.edu>
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
In libc and make in aclocal.m4 I have AC_CHECK_SYMBOL, which checks for
|
|
sys_siglist et al. Using AC_CHECK_FUNC doesn't work on some system that
|
|
winds up caring that you reference it as a function and it is really a
|
|
variable. My version always declares the symbol as a char *[]; if that
|
|
ends up a bad idea, we can have it take an arg with the C decl, but that is
|
|
a bit verbose to write if it's actually superfluous.
|
|
From Roland McGrath.
|
|
[I'd call it AC_CHECK_VAR, I think. -djm]
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
In a future version (after 2.2), make AC_PROG_{CC,RANLIB,anything else}
|
|
use AC_CHECK_TOOL.
|
|
From Roland McGrath.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
ls -lt configure configure.in | sort
|
|
doesn't work right if configure.in is from a symlink farm, where the
|
|
symlink has either a timestamp of it's own, or under BSD 4.4, it has
|
|
the timestamp of the current directory, neither of which
|
|
helps. Changing it to
|
|
ls -Llt configure configure.in | sort
|
|
works for me, though I don't know how portable that is
|
|
_Mark_ <eichin@cygnus.com>
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Here is the thing I would like the most;
|
|
AC_PKG_WITH(PACKAGE, HELP_STRING, PACKAGE-ROOT, PACKAGE-LIBS, PACKAGE-DEFS,
|
|
PACKAGE-CCPFLAGS)
|
|
like
|
|
|
|
AC_PKG_WITH(kerberos,,/usr/local/athena,-lkrb -ldes,[KERBEROS KRB4
|
|
CRYPT],include)
|
|
AC_PKG_WITH(hesiod,
|
|
[if hesiod is not in kerberos-root add --with-hesiod-root=somewhere]
|
|
,,-lhesiod,HESIOD,,)
|
|
AC_PKG_WITH(glue,,,-lglue,GLUE,,)
|
|
AC_PKG_WITH(bind,,/usr/local/bind, [lib/resolv.a lib/lib44bsd.a], ,include)
|
|
After the apropriate checks, the existance of the paths, and libs and such
|
|
LIBS=$LIBS $PKG-LIBS
|
|
DEFS=$DEFS $PKG-DEFS
|
|
CPPFLAGS=$PKG-CPPFLAGS $CPPFLAGS
|
|
$PKG-ROOT=$PKG-ROOT
|
|
The cppflags should reverse the order so that you can have;
|
|
-I/usr/local/bind/include -I/usr/local/athena/include
|
|
and
|
|
-L/usr/local/athena/lib -lkrb -ldes /usr/local/bind/lib/libresolv.a
|
|
as order matters.
|
|
|
|
also an AC_PKG_CHK_HEADER
|
|
and an AC_PKG_CHK_FUNCTION
|
|
so one can give alternate paths to check for stuff ($PKG-ROOT/lib for
|
|
example)
|
|
From: Randall Winchester
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
AC_C_CROSS assumes that configure was
|
|
called like 'CC=target-gcc; ./configure'. I want to write a package
|
|
that has target dependend libraries and host dependend tools. So I
|
|
dont't like to lose the distinction between CC and [G]CC_FOR_TARGET.
|
|
AC_C_CROSS should check for equality of target and host.
|
|
|
|
It would be great if
|
|
|
|
GCC_FOR_TARGET
|
|
AR_FOR_TARGET
|
|
RANLIB_FOR_TARGET
|
|
|
|
would be set automatically if host != target.
|
|
AC_LANG_CROSS_C would be nice too, to check header files
|
|
etc. with GCC_FOR_TARGET instead of CC
|
|
|
|
Here is one simple test
|
|
|
|
if test "x$host" != "x$target"; then
|
|
AC_PROGRAMS_CHECK(AR_FOR_TARGET, $target-ar, $target-ar, ar)
|
|
AC_PROGRAMS_CHECK(RANLIB_FOR_TARGET, $target-ranlib, $target-ranlib, ranlib)
|
|
AC_PROGRAMS_CHECK(GCC_FOR_TARGET, $target-gcc, $target-gcc, gcc)
|
|
fi
|
|
|
|
This could be improved to also look for gcc in PATH, but require the
|
|
prefix to contain the target e.g.:
|
|
|
|
target=m68k-coff -->GCC_FOR_TARGET = /usr/gnu/m68k-coff/bin/gcc
|
|
|
|
From: nennker@cs.tu-berlin.DE (Axel Nennker)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
The problem occurs with the following libc functions in SunOS 5.4:
|
|
|
|
fnmatch glob globfree regcomp regexec regerror regfree wordexp wordfree
|
|
|
|
It also occurs with a bunch more libposix4 functions that most people
|
|
probably aren't worried about yet, e.g. shm_open.
|
|
|
|
All these functions fail with errno set to ENOSYS (89)
|
|
``Operation not applicable''.
|
|
|
|
Perhaps autoconf should have a
|
|
specific macro for fnmatch, another for glob+globfree, another for
|
|
regcomp+regexec+regerror+regfree, and another for wordexp+wordfree.
|
|
This wouldn't solve the problem in general, but it should work for
|
|
Solaris 2.4. Or autoconf could limit itself to fnmatch and regcomp,
|
|
the only two functions that I know have been a problem so far.
|
|
|
|
From Paul Eggert.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Make easy macros for checking for X functions and libraries.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
We probably shouldn't cache a path for INSTALL within a source
|
|
directory, because that will break other packages using the cache if
|
|
that directory is removed.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Document this trick:
|
|
|
|
>> Half my time these days seems to be spent porting
|
|
>> configure.in files to new OS releases.) Alas, there doesn't seem to
|
|
>> be any way to turn off caching (with a configure.in directive).
|
|
|
|
define([AC_CACHE_LOAD], )dnl
|
|
define([AC_CACHE_SAVE], )dnl
|
|
AC_INIT(whatever)
|
|
... rest of configure.in ...
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Testing for ANSI header files (AC_HEADER_STDC) fails under linux when
|
|
using the latest libraries (libc-4.6.30, at least libc-4.6.27 works
|
|
ok) when LC_CTYPE is set to ISO-8859-1. The islower/toupper test
|
|
reports errors.
|
|
Anyway, adding a line like
|
|
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
|
|
to the configure script can solve the problem.
|
|
From: tom@vlsivie.tuwien.ac.AT (Thomas Winder)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
A number of people have tried to fix configuration problems by editing
|
|
acconfig.h. (Despite comments at the top of the file.) I think they're
|
|
confused because anything.h looks like a regular source file name.
|
|
Maybe acconfig.h could be called acconfig.extra or something?
|
|
From: kb@cs.umb.edu (K. Berry)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Using the macro AC_CHECK_LIB, if the library name contains a dot (which is
|
|
the case of the library complib.sgimath on Irix 5.x) a syntax error occurs
|
|
because the corresponding cache variable name contains a dot.
|
|
Should dots be converted to underlines in variable names by autoconf?
|
|
From: Frederic.DEvernay@sophia.inria.fr (Frederic Devernay)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
* Test suite: more things to test:
|
|
** That the shell scripts produce correct output on some simple data.
|
|
** Configuration header files. That autoheader does the right thing,
|
|
and so does AC_CONFIG_HEADER when autoconf is run.
|
|
|
|
------------------------------------------------------------------------------
|