-*- 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.
They have to be overridden by the command line arguments,
just as for X includes and libraries.  Should they be cached
all in one variable, or three?  In that case, what if only one
or two of the cache variables are set?

------------------------------------------------------------------------------

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>

------------------------------------------------------------------------------

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 its 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 dependent libraries and host dependent tools. So I
don'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.

------------------------------------------------------------------------------

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)

------------------------------------------------------------------------------

* 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.

------------------------------------------------------------------------------
