Blame TODO

Packit Service 9646c7
-*- outline -*-
Packit Service 9646c7
Packit Service 9646c7
Things it might be nice to do someday.  I haven't evaluated all of
Packit Service 9646c7
these suggestions... their presence here doesn't imply my endorsement.
Packit Service 9646c7
-djm & his successors.
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Soon
Packit Service 9646c7
Packit Service 9646c7
** AC_CHECK_HEADERS
Packit Service 9646c7
and the like, don't have a consistent way to handle multi-line
Packit Service 9646c7
arguments.  Fix, test, and document.
Packit Service 9646c7
Packit Service 9646c7
** --target & AC_ARG_PROGRAM
Packit Service 9646c7
Shouldn't *any* `program' be installed as `$target_alias-program' even
Packit Service 9646c7
if AC_ARG_PROGRAM is not called?  That would be much more predictable.
Packit Service 9646c7
Ian?
Packit Service 9646c7
Packit Service 9646c7
** AC_CHECK_TOOL...
Packit Service 9646c7
Write a test that checks that it honors the values set by the user.
Packit Service 9646c7
Packit Service 9646c7
** autom4te and warnings.
Packit Service 9646c7
Decide what must be done.
Packit Service 9646c7
Packit Service 9646c7
** AC_DEFINE(func, rpl_func)
Packit Service 9646c7
This scheme causes problems: if for instance, #define malloc
Packit Service 9646c7
rpl_malloc, then the rest of configure will use an undefined malloc.
Packit Service 9646c7
Hence some tests fail.  Up to now we simply #undef these functions
Packit Service 9646c7
where we had a problem (cf. AC_FUNC_MKTIME and AC_FUNC_MMAP for
Packit Service 9646c7
instance).  This is _bad_.  Maybe the #define func rpl_malloc should
Packit Service 9646c7
be performed in another file than confdefs.h, say confh.h, which is
Packit Service 9646c7
used for config.h generation, but not used in configure's own tests.
Packit Service 9646c7
Packit Service 9646c7
** AC_PROG_CC
Packit Service 9646c7
Currently it tries to put the C compiler in ANSI C mode by default.
Packit Service 9646c7
We should change this spec so that AC_PROG_CC tries to change the
Packit Service 9646c7
compiler to be the "nicest" mode, i.e. support for the latest standard
Packit Service 9646c7
features (currently ISO C99) plus support for all vendor extensions,
Packit Service 9646c7
even if they are slightly incompatible with C99.  The basic idea here
Packit Service 9646c7
is that AC_PROG_CC should disable pedanticisms and should enable
Packit Service 9646c7
extensions.
Packit Service 9646c7
Packit Service 9646c7
Have a way to specify different default flags to try; see this thread
Packit Service 9646c7
for more information:
Packit Service 9646c7
<http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00009.html>.
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
* Later
Packit Service 9646c7
Packit Service 9646c7
** config.site
Packit Service 9646c7
This guy is really a problem.  It's contents should be read before
Packit Service 9646c7
handling the options, so that the latter properly override the latter,
Packit Service 9646c7
but most people would want a means to have a config.site that depends
Packit Service 9646c7
on $prefix for instance.
Packit Service 9646c7
Packit Service 9646c7
Some other would like config.site to be looked for in the current
Packit Service 9646c7
directory.
Packit Service 9646c7
Packit Service 9646c7
Harlan:
Packit Service 9646c7
Packit Service 9646c7
   I'll go further.
Packit Service 9646c7
Packit Service 9646c7
   I'd like to see several layers of config.site available.
Packit Service 9646c7
Packit Service 9646c7
   I'm starting to use "modules" at more places to handle software
Packit Service 9646c7
   installation, and it would be helpful to set general things like:
Packit Service 9646c7
Packit Service 9646c7
	prefix=/opt/pkg/@PACKAGE@/@VERSION@
Packit Service 9646c7
Packit Service 9646c7
   once at a global level, and then, for example, have things like:
Packit Service 9646c7
Packit Service 9646c7
	--with-etcdir=$prefix/etc
Packit Service 9646c7
Packit Service 9646c7
   stuffed "above" the various versions of SSH so I wouldn't have to hunt for
Packit Service 9646c7
   these things every time it was time to recompile a new version of a
Packit Service 9646c7
   previously installed package.
Packit Service 9646c7
Packit Service 9646c7
   Something like:
Packit Service 9646c7
Packit Service 9646c7
     src/config.site		Global stuff
Packit Service 9646c7
     ...
Packit Service 9646c7
     src/ssh/config.site		package-specific stuff
Packit Service 9646c7
     src/ssh/ssh-1.2.27/		the actual source code
Packit Service 9646c7
Packit Service 9646c7
   I'd like to see automake/autoconf better support packaging tools (like
Packit Service 9646c7
   modules, the *BSD ports/ stuff, and others would like hooks for RPMs).
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
** Languages
Packit Service 9646c7
Integrate other Fortrans etc.
Packit Service 9646c7
Packit Service 9646c7
** AC_CHECK_FUNCS and AC_TRY_LINK_FUNC
Packit Service 9646c7
I have still not understood what's the difference  between the two
Packit Service 9646c7
which requires to have two different sources: AC_LANG_CALL and
Packit Service 9646c7
AC_LANG_FUNC_LINK_TRY (which names seem to be inappropriate).
Packit Service 9646c7
Wouldn't one be enough?
Packit Service 9646c7
Packit Service 9646c7
** Libtool
Packit Service 9646c7
Define once for all the hooks they need, any redefinition of
Packit Service 9646c7
AC_PROG_CC etc. is way too dangerous and too limiting.  The GCC team
Packit Service 9646c7
certainly has requirements too.
Packit Service 9646c7
Packit Service 9646c7
** AC_SEARCH_LIBS
Packit Service 9646c7
From: Tom Tromey <tromey@cygnus.com>
Packit Service 9646c7
Subject: AC_SEARCH_LIBS
Packit Service 9646c7
Packit Service 9646c7
I think AC_SEARCH_LIBS has an unfortunate interface.
Packit Service 9646c7
Packit Service 9646c7
ACTION-IF-FOUND is run in addition to the default action.  Most
Packit Service 9646c7
autoconf macros don't work this way.  This is confusing.
Packit Service 9646c7
Packit Service 9646c7
In my case I can't use this macro because it always appends to LIBS.
Packit Service 9646c7
I don't want that.  Instead I want to use ACTION-IF-FOUND to set my
Packit Service 9646c7
own macro.
Packit Service 9646c7
Packit Service 9646c7
Also there is no documentation on the format of library names expected
Packit Service 9646c7
by the macro.  Even a reference to some other function (e.g., "the
Packit Service 9646c7
library name can have the same forms as with AC_HAVE_LIBRARY" (if that
Packit Service 9646c7
is true, which I haven't looked up) would be fine.
Packit Service 9646c7
Packit Service 9646c7
** Revamp the language support
Packit Service 9646c7
We should probably have a language for C89, and C99.  We must give the
Packit Service 9646c7
means to the users to specify some needs over the compilers, and
Packit Service 9646c7
actually look for a good compiler, instead of stopping at the first
Packit Service 9646c7
compiler we find.
Packit Service 9646c7
Packit Service 9646c7
In fact, the AC_CHECK_PROG macro and variations have proved their
Packit Service 9646c7
limitation: we really need something more powerful and simpler too.
Packit Service 9646c7
Packit Service 9646c7
We must take into account the specific problems of the GCC team.  We
Packit Service 9646c7
must extend AC_CHECK_FUNCS in order to use the headers instead of fake
Packit Service 9646c7
declarations as we currently do.  Default headers could be triggered
Packit Service 9646c7
on when C99, but not with the other languages?
Packit Service 9646c7
Packit Service 9646c7
At the end, we should have a simple macro, such as AC_LANG_COMPILER
Packit Service 9646c7
for instance, which is built over simpler macros.  Each language
Packit Service 9646c7
support should come with these simpler macros, but each language
Packit Service 9646c7
should follow the same process.
Packit Service 9646c7
Packit Service 9646c7
We also need to check the srcext which are supported by the compiler.
Packit Service 9646c7
In fact, this macro is also probably the right place to check for
Packit Service 9646c7
objext and exeext.
Packit Service 9646c7
Packit Service 9646c7
** AC_PROG_CC_STDC
Packit Service 9646c7
Should be: AC_PROG_CC_ISO?  Or even more specific for the ISO version?
Packit Service 9646c7
Should include more tests (e.g., AC_C_CONST etc.)?  See Peter for very
Packit Service 9646c7
useful comments on the technology.  Should we make this a new
Packit Service 9646c7
language?  AC_LANG(ISO C).  It would be great to introduce
Packit Service 9646c7
AC_LANG_COMPILER in this release too.
Packit Service 9646c7
Packit Service 9646c7
** autoupdate
Packit Service 9646c7
We should probably install the files which do not depend upon the
Packit Service 9646c7
user, just the Autoconf library files.  But conversely autoupdate must
Packit Service 9646c7
be opened to user macros, i.e., for instance libtool itself must be
Packit Service 9646c7
able to say that AM_PROG_LIBTOOL is now AC_PROG_LIBTOOL, and have
Packit Service 9646c7
autoupdate do its job on old configure.ac.
Packit Service 9646c7
Packit Service 9646c7
* Even later
Packit Service 9646c7
Packit Service 9646c7
** Pentateuch
Packit Service 9646c7
Heck, there is nothing after `Deuteronomy'!  We're stuck, but we
Packit Service 9646c7
_must_ update the `history' section.  Can't go to `New testament', we
Packit Service 9646c7
might hurt feelings?  In addition, it means that the Messiah has come,
Packit Service 9646c7
which might be slightly presumptuous :).  Still, someone fluent in
Packit Service 9646c7
English should write it.
Packit Service 9646c7
Packit Service 9646c7
** AC_PATH_X
Packit Service 9646c7
Hi Robert,
Packit Service 9646c7
Packit Service 9646c7
> Hi, autoconf people.  While packaging plotutils-2.2 (just released),
Packit Service 9646c7
> I noticed what looks like a small error in the autoconf-2.13 texinfo
Packit Service 9646c7
> documentation, the entry for AC_PATH_XTRA, in particular.
Packit Service 9646c7
Packit Service 9646c7
> The documentation says that AC_PATH_XTRA
Packit Service 9646c7
>	... adds the C compiler flags that X needs to output variable
Packit Service 9646c7
>	`X_CFLAGS', and the X linker flags to `X_LIBS'.  If X is not
Packit Service 9646c7
>	available, adds `-DX_DISPLAY_MISSING' to `X_CFLAGS'.
Packit Service 9646c7
Packit Service 9646c7
> It doesn't seem to add -DX_DISPLAY_MISSING to X_CFLAGS.  X_DISPLAY_MISSING
Packit Service 9646c7
> ends up defined in config.h, instead.
Packit Service 9646c7
Packit Service 9646c7
That's only because you're no doubt using AC_CONFIG_HEADER(..) to send
Packit Service 9646c7
your defines to a config.h-style file.  If you were to not use
Packit Service 9646c7
AC_CONFIG_HEADER and X was not available, then you would see
Packit Service 9646c7
-DX_DISPLAY_MISSING being added to @DEFS@ as your output files were being
Packit Service 9646c7
generated.
Packit Service 9646c7
Packit Service 9646c7
But you are right--the documentation is not clear about this.  I'll change
Packit Service 9646c7
it.
Packit Service 9646c7
Packit Service 9646c7
> In fact it looks to me as if right now, X_CFLAGS is used only for
Packit Service 9646c7
> specifying directories where X include files are stored, via the `-I' option.
Packit Service 9646c7
> Maybe it should really be called X_CPPFLAGS?
Packit Service 9646c7
Packit Service 9646c7
Well, perhaps.  If you feel strongly about this, feel free to submit a
Packit Service 9646c7
change-request.  There is a hyperlink to the bug tracking database from
Packit Service 9646c7
http://sourceware.cygnus.com/autoconf/.  With the way it reads in the
Packit Service 9646c7
manual right now, it's designed to allow the user to set additional flags
Packit Service 9646c7
in the environment prior to running configure--and these don't need to be
Packit Service 9646c7
limited to just -I flags.  Nevertheless, I can see a few clean ways to
Packit Service 9646c7
improve this.
Packit Service 9646c7
Packit Service 9646c7
** AC_SYS_INTERPRETER
Packit Service 9646c7
Defines $interpval.  This is not a standard name.  Do we want to keep
Packit Service 9646c7
this?  Clarify our policy on those names.
Packit Service 9646c7
Packit Service 9646c7
** Allow --recursive to config.status
Packit Service 9646c7
So that --recheck does not pass --no-recursive to configure.
Packit Service 9646c7
Packit Service 9646c7
* autoconf.texi
Packit Service 9646c7
Move the specific macro documentation blocks into the source files,
Packit Service 9646c7
and use a doc-block extraction/merge technique to get documentation
Packit Service 9646c7
into texi-file.  This should help avoid bit-rot in the doc, and make
Packit Service 9646c7
the doc easier to update when people add/change macros.  The name
Packit Service 9646c7
"autodoc" is probably already taken so we probably need another one.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* m4
Packit Service 9646c7
Packit Service 9646c7
** I18n
Packit Service 9646c7
The error messages for indir and dumpdef are uselessly different.  Fix
Packit Service 9646c7
this for translators.
Packit Service 9646c7
Packit Service 9646c7
** Tracing `builtin'
Packit Service 9646c7
F**k!  --trace FOO does not catch indir([FOO], $@)!
Packit Service 9646c7
Fixed in M4 1.6, but we can't rely on it yet.
Packit Service 9646c7
Packit Service 9646c7
** m4 loops
Packit Service 9646c7
As of 2.63, m4_for has a fixed iteration count for speed in the common
Packit Service 9646c7
usage case.  But it used to allow the user to alter iteration count by
Packit Service 9646c7
reassigning the iterator, allowing a break-like functionality (or even
Packit Service 9646c7
infloops).  Does this need a new (but maybe slower) macro?  Should we
Packit Service 9646c7
also provide something like m4_while([TEST], [EXPR])?  Maybe an
Packit Service 9646c7
m4_break() that works inside a looping construct?
Packit Service 9646c7
http://lists.gnu.org/archive/html/autoconf-patches/2008-08/msg00121.html
Packit Service 9646c7
Packit Service 9646c7
* Autoconf 3
Packit Service 9646c7
Packit Service 9646c7
** Cache name spaces.
Packit Service 9646c7
Cf the discussion with Kaveh.  One would like to
Packit Service 9646c7
AC_CHECK_FUNCS(bar)
Packit Service 9646c7
# Do something that changes the environment
Packit Service 9646c7
AC_CACHE_PUSH(foo)
Packit Service 9646c7
AC_CHECK_FUNCS(bar)
Packit Service 9646c7
AC_CACHE_POP
Packit Service 9646c7
in order not to erase the results of a check with another.
Packit Service 9646c7
Packit Service 9646c7
** Cache var names
Packit Service 9646c7
should depend upon the current language.
Packit Service 9646c7
Packit Service 9646c7
** Use m4 lists?
Packit Service 9646c7
I think one sad decision in Autoconf was to use white space separated
Packit Service 9646c7
lists for some arguments.  For instance AC_CHECK_FUNCS(foo bar).  I
Packit Service 9646c7
tend to think that, even if it is not as nice, we should use m4 lists,
Packit Service 9646c7
i.e., AC_CHECK_FUNCS([foo, bar]) in this case.  This would ease
Packit Service 9646c7
specializing loops, and more importantly, make them much more robust.
Packit Service 9646c7
Packit Service 9646c7
A typical example of things that can be performed if we use m4 lists
Packit Service 9646c7
instead of white space separated lists is the case of things that have
Packit Service 9646c7
a space in their names, eg, structures.
Packit Service 9646c7
Packit Service 9646c7
With the current scheme it would be extremely difficult to loop over
Packit Service 9646c7
AC_CHECK_STRUCTS(struct foo struct bar), while it natural and well
Packit Service 9646c7
defined for m4 lists: AC_CHECK_STRUCTS([struct foo, struct bar]).
Packit Service 9646c7
Packit Service 9646c7
I know that makes a huge difference in syntax, but a major release
Packit Service 9646c7
should be ready to settle a new world.  We *can* provide helping tools
Packit Service 9646c7
for the transition.  Considering the benefits, I really think it is
Packit Service 9646c7
worth thinking. --akim
Packit Service 9646c7
Packit Service 9646c7
** Forbid shell variables as main arguments
Packit Service 9646c7
The fact that we have to support shell variables as main argument
Packit Service 9646c7
forbids many interesting constructions (specialization are not always
Packit Service 9646c7
possible, equally for AC_REQUIRE'ing macros *with their arguments*).
Packit Service 9646c7
Any loop should be handled by m4 itself, and nothing should be hidden
Packit Service 9646c7
to it.  As a consequence, shell variables on the main arguments become
Packit Service 9646c7
useless (the main reason we support shell variables is to allow the
Packit Service 9646c7
loop versions of single argument macros, eg, to go from AC_CHECK_FUNC
Packit Service 9646c7
to AC_CHECK_FUNCS). --akim
Packit Service 9646c7
Packit Service 9646c7
** Use the @SUBST@ technology also for headers instead of #undef.
Packit Service 9646c7
This requires that acconfig.h becomes completely obsolete: autoheader
Packit Service 9646c7
should generate all the templates.
Packit Service 9646c7
Packit Service 9646c7
** Specializing loops.
Packit Service 9646c7
For instance, make AC_CHECK_FUNC[S] automatically use any particular
Packit Service 9646c7
macros for the listed functions.
Packit Service 9646c7
This requires to obsolete the feature `break' in ACTION-IF, since all
Packit Service 9646c7
the loops are to be handled by m4, not sh.
Packit Service 9646c7
Packit Service 9646c7
** Faces of a test
Packit Service 9646c7
Each macro can potentially come with several faces: of course the
Packit Service 9646c7
configure snippet (AC_foo), a config.h snippet (AH_foo), a system.h
Packit Service 9646c7
snippet (AS_foo), documentation (AD_foo) and, why not, the some C code
Packit Service 9646c7
for instance to replace a function.
Packit Service 9646c7
Packit Service 9646c7
The motivation for the `faces' is to encapsulate.  It is abnormal that
Packit Service 9646c7
once one has a configure macro, then she has to read somewhere to find
Packit Service 9646c7
the piece of system.h to use etc.  The macros should come in a
Packit Service 9646c7
self-contained way, or, said it another way, PnP.
Packit Service 9646c7
Packit Service 9646c7
A major issue is that of specialization.  AC_CHECK_HEADER (or another
Packit Service 9646c7
name) for instance, will have as an effect, via system.h to include
Packit Service 9646c7
the header.  But if the test for the header is specific, the generic
Packit Service 9646c7
AS_CHECK_HEADER will still be used.  Conversely, some headers may not
Packit Service 9646c7
require a specific AC_ tests, but a specialized AS_ macro.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Make AC_CHECK_LIB check whether the function is already available
Packit Service 9646c7
  before checking for the library.  This might involve adding another
Packit Service 9646c7
  kind of cache variable to indicate whether a given function needs a
Packit Service 9646c7
  given library.  The current ac_cv_func_ variables are intended to
Packit Service 9646c7
  indicate whether the function is in the default libraries, but
Packit Service 9646c7
  actually also take into account whatever value LIBS had when they
Packit Service 9646c7
  were checked for.
Packit Service 9646c7
Packit Service 9646c7
  Isn't this the issue of AC_SEARCH_LIB? --akim
Packit Service 9646c7
  How come the list of libraries to browse not an additional parameter
Packit Service 9646c7
  of AC_CHECK_FUNC, exactly like for the headers? --akim
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Select the right CONFIG_SHELL automatically (for Ultrix, Lynx especially.)
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Doc: Centralize information on POSIX, MS-DOS, cross-compiling, and
Packit Service 9646c7
  other important topics.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Mike Haertel's suggestions:
Packit Service 9646c7
Packit Service 9646c7
** Cross compiling:
Packit Service 9646c7
Packit Service 9646c7
*** Error messages include instructions for overriding defaults using
Packit Service 9646c7
config.site.
Packit Service 9646c7
Packit Service 9646c7
*** Distribute a config.site corresponding to a hypothetical bare POSIX system with c89.
Packit Service 9646c7
Packit Service 9646c7
** Site defaults:
Packit Service 9646c7
Packit Service 9646c7
*** 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.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Look at user contributed macros:
Packit Service 9646c7
	IEEE double precision math
Packit Service 9646c7
	more
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
* Provide a way to create a config.h *and* set the DEFS variable from within
Packit Service 9646c7
the same configure script.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
In config.status comment, put the host/target/build types, if used.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
It would be nice if I could (in the Makefile.in files) set the
Packit Service 9646c7
relative name of config.h. You have config.h ../config.h
Packit Service 9646c7
../../config.h's all over the place, in the findutils-4.1 directory.
Packit Service 9646c7
From: "Randall S. Winchester" <rsw@eng.umd.edu>
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
	ls -lt configure configure.in | sort
Packit Service 9646c7
doesn't work right if configure.in is from a symlink farm, where the
Packit Service 9646c7
symlink has either a timestamp of its own, or under BSD 4.4, it has
Packit Service 9646c7
the timestamp of the current directory, neither of which
Packit Service 9646c7
helps. Changing it to
Packit Service 9646c7
	ls -Llt configure configure.in | sort
Packit Service 9646c7
works for me, though I don't know how portable that is
Packit Service 9646c7
_Mark_ <eichin@cygnus.com>
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Here is the thing I would like the most;
Packit Service 9646c7
AC_PKG_WITH(PACKAGE, HELP_STRING, PACKAGE-ROOT, PACKAGE-LIBS, PACKAGE-DEFS,
Packit Service 9646c7
	PACKAGE-CCPFLAGS)
Packit Service 9646c7
like
Packit Service 9646c7
Packit Service 9646c7
AC_PKG_WITH(kerberos,,/usr/local/athena,-lkrb -ldes,[KERBEROS KRB4
Packit Service 9646c7
CRYPT],include)
Packit Service 9646c7
AC_PKG_WITH(hesiod,
Packit Service 9646c7
[if hesiod is not in kerberos-root add --with-hesiod-root=somewhere]
Packit Service 9646c7
,,-lhesiod,HESIOD,,)
Packit Service 9646c7
AC_PKG_WITH(glue,,,-lglue,GLUE,,)
Packit Service 9646c7
AC_PKG_WITH(bind,,/usr/local/bind, [lib/resolv.a lib/lib44bsd.a], ,include)
Packit Service 9646c7
After the appropriate checks, the existence of the files, and libs and such
Packit Service 9646c7
LIBS=$LIBS $PKG-LIBS
Packit Service 9646c7
DEFS=$DEFS $PKG-DEFS
Packit Service 9646c7
CPPFLAGS=$PKG-CPPFLAGS $CPPFLAGS
Packit Service 9646c7
$PKG-ROOT=$PKG-ROOT
Packit Service 9646c7
The cppflags should reverse the order so that you can have;
Packit Service 9646c7
-I/usr/local/bind/include -I/usr/local/athena/include
Packit Service 9646c7
and
Packit Service 9646c7
-L/usr/local/athena/lib -lkrb -ldes /usr/local/bind/lib/libresolv.a
Packit Service 9646c7
as order matters.
Packit Service 9646c7
Packit Service 9646c7
also an AC_PKG_CHK_HEADER
Packit Service 9646c7
and an AC_PKG_CHK_FUNCTION
Packit Service 9646c7
so one can give alternate names to check for stuff ($PKG-ROOT/lib for
Packit Service 9646c7
example)
Packit Service 9646c7
From: Randall Winchester
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
AC_C_CROSS assumes that configure was called like 'CC=target-gcc;
Packit Service 9646c7
./configure'. I want to write a package that has target dependent
Packit Service 9646c7
libraries and host dependent tools. So I don't like to lose the
Packit Service 9646c7
distinction between CC and [G]CC_FOR_TARGET.  AC_C_CROSS should check
Packit Service 9646c7
for equality of target and host.
Packit Service 9646c7
Packit Service 9646c7
It would be great if
Packit Service 9646c7
Packit Service 9646c7
GCC_FOR_TARGET
Packit Service 9646c7
AR_FOR_TARGET
Packit Service 9646c7
RANLIB_FOR_TARGET
Packit Service 9646c7
Packit Service 9646c7
would be set automatically if host != target.
Packit Service 9646c7
AC_LANG_CROSS_C would be nice too, to check header files
Packit Service 9646c7
etc. with GCC_FOR_TARGET instead of CC
Packit Service 9646c7
Packit Service 9646c7
Here is one simple test
Packit Service 9646c7
Packit Service 9646c7
if test "x$host" != "x$target"; then
Packit Service 9646c7
AC_CHECK_PROGS(AR_FOR_TARGET,
Packit Service 9646c7
	       [$target-ar, $prefix/$target/bin/ar], $target-ar)
Packit Service 9646c7
AC_CHECK_PROGS(RANLIB_FOR_TARGET, $target-ranlib, $target-ranlib)
Packit Service 9646c7
	       [$target-ranlib, $prefix/$target/bin/ranlib], $target-ranlib)
Packit Service 9646c7
AC_CHECK_PROGS(GCC_FOR_TARGET, $target-gcc, $target-gcc)
Packit Service 9646c7
	       [$target-gcc, $prefix/$target/bin/gcc], $target-gcc)
Packit Service 9646c7
fi
Packit Service 9646c7
Packit Service 9646c7
From: nennker@cs.tu-berlin.DE (Axel Nennker)
Packit Service 9646c7
Packit Service 9646c7
(also look in the autoconf mailing list archives for the proposed
Packit Service 9646c7
CHECK_TARGET_TOOL macro from Natanael Nerode, a gcc configury guru).
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
The problem occurs with the following libc functions in SunOS 5.4:
Packit Service 9646c7
Packit Service 9646c7
	fnmatch glob globfree regcomp regexec regerror regfree wordexp wordfree
Packit Service 9646c7
Packit Service 9646c7
It also occurs with a bunch more libposix4 functions that most people
Packit Service 9646c7
probably aren't worried about yet, e.g. shm_open.
Packit Service 9646c7
Packit Service 9646c7
All these functions fail with errno set to ENOSYS (89)
Packit Service 9646c7
``Operation not applicable''.
Packit Service 9646c7
Packit Service 9646c7
Perhaps Autoconf should have a specific macro for fnmatch, another for
Packit Service 9646c7
glob+globfree, another for regcomp+regexec+regerror+regfree, and
Packit Service 9646c7
another for wordexp+wordfree.  This wouldn't solve the problem in
Packit Service 9646c7
general, but it should work for Solaris 2.4.  Or Autoconf could limit
Packit Service 9646c7
itself to fnmatch and regcomp, the only two functions that I know have
Packit Service 9646c7
been a problem so far.
Packit Service 9646c7
Packit Service 9646c7
From Paul Eggert.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Make easy macros for checking for X functions and libraries, such as Motif.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
There are basically three ways to lock files
Packit Service 9646c7
        lockf, fnctl, flock
Packit Service 9646c7
I'd be interested in adding a macro to pick the "right one" if you're
Packit Service 9646c7
interested.
Packit Service 9646c7
Packit Service 9646c7
From:    Rich Salz <rsalz@osf.org>
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Timezone calculations checks.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Support different default file system layouts, e.g. SVR4, Linux.
Packit Service 9646c7
Of course, this can be done locally with config.site.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
I wonder if it is possible to get the name of X11's app-defaults
Packit Service 9646c7
directory by autoconf. Moreover, I'd like to have a general way of
Packit Service 9646c7
accessing imake variables by autoconf, something like
Packit Service 9646c7
Packit Service 9646c7
AC_DEFINE(WINE_APP_DEFAULTS, AC_IMAKE_VAR(XAPPLOADDIR))
Packit Service 9646c7
Packit Service 9646c7
Slaven Rezic <eserte@cabulja.herceg.de>
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Every user running X11 usually has a directory like *X11* in his PATH
Packit Service 9646c7
variable. By replacing bin by include, you can find good places to
Packit Service 9646c7
look for the include files or libraries.
Packit Service 9646c7
Packit Service 9646c7
From: rcb5@win.tue.nl (Richard Verhoeven)
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
In most cases, when autoscan suggests something, using the search or
Packit Service 9646c7
index command into the Info reader for autoconf manual quickly
Packit Service 9646c7
explains me what the test is about.  However, for header files and
Packit Service 9646c7
functions, the search might fail, because the test is not of the
Packit Service 9646c7
specific kind.  The Autoconf manual should reflect somewhere all
Packit Service 9646c7
header files or functions (non-specific features, generally)
Packit Service 9646c7
triggering autoscan to generate tests, and tell in a few words what is
Packit Service 9646c7
the problem, and the suggested approach for a solution; that is, how
Packit Service 9646c7
one should use the result of testing the feature.
Packit Service 9646c7
Packit Service 9646c7
From: pinard@iro.umontreal.ca
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
It would be nice if the configure script would handle an option such as
Packit Service 9646c7
--x-libraries="/usr/openwin/lib /usr/dt/lib".
Packit Service 9646c7
Packit Service 9646c7
Rick Boykin <rboykin@cscsun3.larc.nasa.gov>
Packit Service 9646c7
Packit Service 9646c7
Under Solaris 2.4, the regular X includes and libs and the Motif
Packit Service 9646c7
includes and libs are in different places.  The Emacs configure script
Packit Service 9646c7
actually allows dir1:dir2:dir3 --
Packit Service 9646c7
Packit Service 9646c7
    if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
Packit Service 9646c7
      LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
Packit Service 9646c7
      LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
Packit Service 9646c7
    fi
Packit Service 9646c7
    if test "${x_includes}" != NONE && test -n "${x_includes}"; then
Packit Service 9646c7
      C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
Packit Service 9646c7
    fi
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
    What messages should be produced by default, if any?
Packit Service 9646c7
Packit Service 9646c7
Probably only the few most important ones, like which configuration
Packit Service 9646c7
name was used, whether X or Xt are in use, etc. The specific
Packit Service 9646c7
decisions, and progress messages, should be recorded on the terminal
Packit Service 9646c7
only if --verbose is used.
Packit Service 9646c7
Packit Service 9646c7
    --silent just suppresses the "checking for...result"
Packit Service 9646c7
    messages, not the "creating FOO" messages.
Packit Service 9646c7
Packit Service 9646c7
I think the default should be to suppress both.
Packit Service 9646c7
From: Richard Stallman <rms@gnu.ai.mit.edu>
Packit Service 9646c7
Packit Service 9646c7
There is no distinction now between
Packit Service 9646c7
important decisions (we have X) vs minor decisions (we have lstat).
Packit Service 9646c7
However, there are probably only a few things you deem important enough to
Packit Service 9646c7
announce and only those few things will need to be changed.
Packit Service 9646c7
Perhaps config.status could be written with comments saying what was
Packit Service 9646c7
decided.
Packit Service 9646c7
From: Roland McGrath <roland@gnu.ai.mit.edu>
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Another thing I wish for is a macro which figures out which libraries are
Packit Service 9646c7
needed for BSD-style sockets.  AC_PATH_X already detects this
Packit Service 9646c7
correctly...so it's just a matter of separating out the socket-related code.
Packit Service 9646c7
From: "Joel N. Weber II" <nemo@koa.iolani.honolulu.hi.us>
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
in order to use the AC_CANONICAL_SYSTEM macro, I have to have
Packit Service 9646c7
install-sh somewhere nearby --- why is this?  I have no real reason to
Packit Service 9646c7
distribute install-sh, other than that its absence breaks this code.
Packit Service 9646c7
Packit Service 9646c7
Shouldn't the above loop be looking for config.sub and config.guess?
Packit Service 9646c7
From: jimb@totoro.bio.indiana.edu (Jim Blandy)
Packit Service 9646c7
Packit Service 9646c7
adding AC_CANONICAL_HOST to my configure.in script caused
Packit Service 9646c7
all sorts of odd/unexplained errors.  Obviously, I had to go
Packit Service 9646c7
get copies of config.guess, config.sub and install-sh from the
Packit Service 9646c7
autoconf distribution, but the error messages and autoconf docs
Packit Service 9646c7
didn't explain that very well.
Packit Service 9646c7
From: bostic@bsdi.com (Keith Bostic)
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Perhaps also have AC_TRY_COMPILER try to link an invalid program, and
Packit Service 9646c7
die if the compiler seemed to succeed--in which case it's not usable
Packit Service 9646c7
with autoconf scripts.
Packit Service 9646c7
Packit Service 9646c7
------------------------------------------------------------------------------
Packit Service 9646c7
Packit Service 9646c7
Copyright (C) 1994-1996, 1999-2002, 2007-2012 Free Software Foundation,
Packit Service 9646c7
Inc.
Packit Service 9646c7
Packit Service 9646c7
Copying and distribution of this file, with or without modification,
Packit Service 9646c7
are permitted in any medium without royalty provided the copyright
Packit Service 9646c7
notice and this notice are preserved.  This file is offered as-is,
Packit Service 9646c7
without warranty of any kind.