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