-*- outline -*- Things it might be nice to do someday: ------------------------------------------------------------------------------ * 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" ------------------------------------------------------------------------------ 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" ------------------------------------------------------------------------------ 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 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 -> -> -> -> -> .) #define $ac_func __dummy_$ac_func #include #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" ------------------------------------------------------------------------------ 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" ------------------------------------------------------------------------------ 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] ------------------------------------------------------------------------------ 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_ ------------------------------------------------------------------------------ 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 ------------------------------------------------------------------------------ * 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. ------------------------------------------------------------------------------