3 Things it might be nice to do someday. I haven't evaluated all of
4 these suggestions... their presence here doesn't imply my endorsement.
7 ------------------------------------------------------------------------------
9 * Make AC_CHECK_LIB check whether the function is already available
10 before checking for the library. This might involve adding another
11 kind of cache variable to indicate whether a given function needs a
12 given library. The current ac_cv_func_ variables are intended to
13 indicate whether the function is in the default libraries, but
14 actually also take into account whatever value LIBS had when they
17 ------------------------------------------------------------------------------
19 * Add AC_PROG_CC_POSIX to replace the current ad-hoc macros for AIX,
22 ------------------------------------------------------------------------------
24 * Use AC_EGREP_CPP instead of AC_TRY_LINK to detect structures and members.
26 ------------------------------------------------------------------------------
28 * Make AC_CHECK_FUNC[S] automatically use any particular macros for the
31 ------------------------------------------------------------------------------
33 * Support creating both config.h and DEFS in the same configure.
35 ------------------------------------------------------------------------------
37 * Select the right CONFIG_SHELL automatically (for Ultrix, Lynx especially.)
39 ------------------------------------------------------------------------------
41 * Doc: Add a concept index.
43 ------------------------------------------------------------------------------
45 * Doc: Centralize information on POSIX, MS-DOS, cross-compiling, and
46 other important topics.
48 ------------------------------------------------------------------------------
50 * Split up AC_SUBST substitutions using a loop to accomodate shells
51 with severely limited here document sizes, if it turns out to be a problem.
52 I'm not sure whether the limit is on lines or bytes; if bytes, it
53 will be less of a problem than it was with the long lines used for
54 creating a header file.
56 ------------------------------------------------------------------------------
58 * Allow [ and ] in AC_DEFINE args.
60 ------------------------------------------------------------------------------
62 * Mike Haertel's suggestions:
64 ** Provide header files containing decls for alloca, strings, etc.
68 *** Error messages include instructions for overriding defaults using
71 *** Distribute a config.site corresponding to a hypothetical bare POSIX system with c89.
75 *** 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.
77 ------------------------------------------------------------------------------
79 * autoscan: Tell the files that caused inclusion of each macro,
80 in a dnl comment. (Seems to be hard.)
82 ------------------------------------------------------------------------------
84 * Look at user contributed macros:
86 IEEE double precision math
89 ------------------------------------------------------------------------------
91 For AC_TYPE_SIGNAL signal handlers, provide a way for code to know
92 whether to do "return 0" or "return" (int vs void) to avoid compiler
93 warnings. (Roland McGrath)
95 ------------------------------------------------------------------------------
97 In config.status comment, put the host/target/build types, if used.
99 ------------------------------------------------------------------------------
101 Have AC_CANONICAL_* cache the host/build/target types.
102 They have to be overridden by the command line arguments,
103 just as for X includes and libraries. Should they be cached
104 all in one variable, or three? In that case, what if only one
105 or two of the cache variables are set?
107 ------------------------------------------------------------------------------
109 The argument HELP-STRING is a description of the option which
111 Avoid tabs in the help string. You'll need to enclose it in `['
112 and `]' in order to produce the leading spaces.
114 Except that [...] is the convention for telling the user the default,
115 So I guess a changequote(`,') or something would be in order in some cases.
116 From: "K. Berry" <kb@cs.umb.edu>
118 ------------------------------------------------------------------------------
120 The default of unlimited permission is fine, but there should be some easy
121 way for configure to have copyright terms passed through from configure.in.
122 Maybe AC_LICENSE([...]).
123 From: roland@gnu.ai.mit.edu (Roland McGrath)
125 ------------------------------------------------------------------------------
127 AC_MSG_CHECKING([checking for ANSI #stringize])
128 AC_REVISION([ #(@) revision 2.1 ])
130 causes bogus code to be generated for whatever immediately follows. The
131 problem goes away if the '#' is removed. Probably the macros are not
132 disabling the m4 "comment" feature when processing user-supplied strings.
133 -Jim Avera jima@netcom.com
135 ------------------------------------------------------------------------------
137 on hal.gnu.ai.mit.edu, configure is getting the wrong answer for
138 AC_CHECK_FUNCS(select).
140 The problem here is that there's severe namespace pollution: when
141 conftest.c includes <ctype.h> to pick up any __stub macro definitions,
142 it's getting a prototype declaration for select(), which collides
143 with the dummy declaration in conftest.c. (The chain of includes
144 is conftest.c -> <ctype.h> -> <sys/localedef.h> -> <sys/lc_core.h>
145 -> <sys/types.h> -> <sys/select.h>.)
147 #define $ac_func __dummy_$ac_func
150 From: kwzh@gnu.ai.mit.edu (Karl Heuer)
152 The test for the isascii function was failing because that function is
153 also a macro. He proposed that the test file look like this:
155 /* Remove any macro definition. */
157 /* Override any gcc2 internal prototype to avoid an error. */
158 char isascii(); isascii();
162 ------------------------------------------------------------------------------
164 put all the config.* stuff somewhere like config/?
165 All these extraneous files sure clutter up a toplevel directory.
166 From: "Randall S. Winchester" <rsw@eng.umd.edu>
168 ------------------------------------------------------------------------------
170 It would be nice if I could (in the Makefile.in files) set
171 the path to config.h. You have config.h ../config.h ../../config.h's all
172 over the place, in the findutils-4.1 directory.
173 From: "Randall S. Winchester" <rsw@eng.umd.edu>
175 ------------------------------------------------------------------------------
177 In libc and make in aclocal.m4 I have AC_CHECK_SYMBOL, which checks for
178 sys_siglist et al. Using AC_CHECK_FUNC doesn't work on some system that
179 winds up caring that you reference it as a function and it is really a
180 variable. My version always declares the symbol as a char *[]; if that
181 ends up a bad idea, we can have it take an arg with the C decl, but that is
182 a bit verbose to write if it's actually superfluous.
184 [I'd call it AC_CHECK_VAR, I think. -djm]
186 ------------------------------------------------------------------------------
188 In a future version (after 2.2), make AC_PROG_{CC,RANLIB,anything else}
192 ------------------------------------------------------------------------------
194 ls -lt configure configure.in | sort
195 doesn't work right if configure.in is from a symlink farm, where the
196 symlink has either a timestamp of its own, or under BSD 4.4, it has
197 the timestamp of the current directory, neither of which
198 helps. Changing it to
199 ls -Llt configure configure.in | sort
200 works for me, though I don't know how portable that is
201 _Mark_ <eichin@cygnus.com>
203 ------------------------------------------------------------------------------
205 Here is the thing I would like the most;
206 AC_PKG_WITH(PACKAGE, HELP_STRING, PACKAGE-ROOT, PACKAGE-LIBS, PACKAGE-DEFS,
210 AC_PKG_WITH(kerberos,,/usr/local/athena,-lkrb -ldes,[KERBEROS KRB4
213 [if hesiod is not in kerberos-root add --with-hesiod-root=somewhere]
215 AC_PKG_WITH(glue,,,-lglue,GLUE,,)
216 AC_PKG_WITH(bind,,/usr/local/bind, [lib/resolv.a lib/lib44bsd.a], ,include)
217 After the apropriate checks, the existance of the paths, and libs and such
220 CPPFLAGS=$PKG-CPPFLAGS $CPPFLAGS
222 The cppflags should reverse the order so that you can have;
223 -I/usr/local/bind/include -I/usr/local/athena/include
225 -L/usr/local/athena/lib -lkrb -ldes /usr/local/bind/lib/libresolv.a
228 also an AC_PKG_CHK_HEADER
229 and an AC_PKG_CHK_FUNCTION
230 so one can give alternate paths to check for stuff ($PKG-ROOT/lib for
232 From: Randall Winchester
234 ------------------------------------------------------------------------------
236 AC_C_CROSS assumes that configure was
237 called like 'CC=target-gcc; ./configure'. I want to write a package
238 that has target dependent libraries and host dependent tools. So I
239 don't like to lose the distinction between CC and [G]CC_FOR_TARGET.
240 AC_C_CROSS should check for equality of target and host.
248 would be set automatically if host != target.
249 AC_LANG_CROSS_C would be nice too, to check header files
250 etc. with GCC_FOR_TARGET instead of CC
252 Here is one simple test
254 if test "x$host" != "x$target"; then
255 AC_PROGRAMS_CHECK(AR_FOR_TARGET, $target-ar, $target-ar, ar)
256 AC_PROGRAMS_CHECK(RANLIB_FOR_TARGET, $target-ranlib, $target-ranlib, ranlib)
257 AC_PROGRAMS_CHECK(GCC_FOR_TARGET, $target-gcc, $target-gcc, gcc)
260 This could be improved to also look for gcc in PATH, but require the
261 prefix to contain the target e.g.:
263 target=m68k-coff -->GCC_FOR_TARGET = /usr/gnu/m68k-coff/bin/gcc
265 From: nennker@cs.tu-berlin.DE (Axel Nennker)
267 ------------------------------------------------------------------------------
269 The problem occurs with the following libc functions in SunOS 5.4:
271 fnmatch glob globfree regcomp regexec regerror regfree wordexp wordfree
273 It also occurs with a bunch more libposix4 functions that most people
274 probably aren't worried about yet, e.g. shm_open.
276 All these functions fail with errno set to ENOSYS (89)
277 ``Operation not applicable''.
279 Perhaps autoconf should have a
280 specific macro for fnmatch, another for glob+globfree, another for
281 regcomp+regexec+regerror+regfree, and another for wordexp+wordfree.
282 This wouldn't solve the problem in general, but it should work for
283 Solaris 2.4. Or autoconf could limit itself to fnmatch and regcomp,
284 the only two functions that I know have been a problem so far.
288 ------------------------------------------------------------------------------
290 Make easy macros for checking for X functions and libraries, such as Motif.
292 ------------------------------------------------------------------------------
294 * Test suite: more things to test:
295 ** That the shell scripts produce correct output on some simple data.
296 ** Configuration header files. That autoheader does the right thing,
297 and so does AC_CONFIG_HEADER when autoconf is run.
299 ------------------------------------------------------------------------------
301 Autoheader in autoconf-2.4 doesn't produce entries for:
303 AC_CHECK_TYPE(ssize_t, int)
305 and it seems like it could easily do so.
307 In general, it seems to me like autoconf isn't set up to
308 let me periodically run autoheader, and then include my
309 "local" tests -- autoheader gets most stuff right, I'd like
310 to rerun it periodically without losing my local changes
313 One of the things that I need is to know is the type to use
314 for a fixed size on disk, e.g., what is the system's name
315 for an unsigned-32-bit integer?
319 AC_CHECK_SIZEOF(unsigned int)
321 and, in fact, that's what I do. But I still have to build
322 sets of #if tests to get from there to the name of the type.
324 From: bostic@bsdi.com (Keith Bostic)
326 ------------------------------------------------------------------------------
328 There are basically three ways to lock files
330 I'd be interested in adding a macro to pick the "right one" if you're
333 From: Rich Salz <rsalz@osf.org>
335 ------------------------------------------------------------------------------
337 It is IMHO a bug that `config.status' cannot handle multiple
338 simultaneous invocations. It should include the process id (`$$' in sh)
339 as part of the name of any temporary files it creates.
341 From: fjh@kryten.cs.mu.oz.au (Fergus Henderson)
343 ------------------------------------------------------------------------------
345 Timezone calculations checks.
347 ------------------------------------------------------------------------------
349 Support different default filesystem layouts, e.g. SVR4, Linux.
350 Of course, this can be done locally with config.site.
352 ------------------------------------------------------------------------------
354 Mention automake, libtool, etc. in the autoconf manual.
356 ------------------------------------------------------------------------------
358 I wonder if it is possible to get the path for X11's app-defaults
359 directory by autoconf. Moreover, I'd like to have a general way of
360 accessing imake variables by autoconf, something like
362 AC_DEFINE(WINE_APP_DEFAULTS, AC_IMAKE_VAR(XAPPLOADDIR))
364 Slaven Rezic <eserte@cabulja.herceg.de>
366 ------------------------------------------------------------------------------
368 Question: at least one common UNIX variant has a "cc" that is old K&R
369 and "c89" for ANSI C. Is there any reason why AC_PROG_CC couldn't
370 check for c89 before cc if it can't find gcc?
372 hpa@yggdrasil.com (H. Peter Anvin)
374 ------------------------------------------------------------------------------
376 Cache consistency checking: ignore cache if environment
377 (CC or PATH) differs.
380 So we need a general mechanism for storing variables' values in the cache,
381 and checking if they are the same after reading the cache. Then we can add
382 to the list of variables as we come across the need. So far we want
383 LD_LIBRARY_PATH and the internal variables for some of (all?) the args.
384 From: roland@gnu.ai.mit.edu (Roland McGrath)
386 Hmm. That list might include LD_LIBRARY_PATH, LD_RUN_PATH (for solaris),
387 and PATH. I can't think of any others so far.
388 From: friedman@splode.com (Noah Friedman)
390 ------------------------------------------------------------------------------
392 So how about an option to configure --reset-cache, that says to ignore all
393 existing cached values for tests that configure runs, and then update the
394 cache normally. This should be utterly trivial to do in AC_CACHE_VAL;
395 check the flag variable and always compute the value if it's set.
397 ------------------------------------------------------------------------------
399 A number of people have tried to fix configuration problems by editing
400 acconfig.h. (Despite comments at the top of the file.) I think they're
401 confused because anything.h looks like a regular source file name.
402 Maybe acconfig.h could be called acconfig.extra or something?
404 From: kb@cs.umb.edu (K. Berry)
406 ------------------------------------------------------------------------------
409 X11 usually has a directory like *X11* in his PATH variable. By replacing
410 bin by include, you can find good places to look for the include files
413 From: rcb5@win.tue.nl (Richard Verhoeven)
415 ------------------------------------------------------------------------------
417 When using CONFIG_FILES= and CONFIG_HEADERS= for controlling
418 partial configuration, any AC_LINK_FILES is repeated in each case
419 (that is, usually, once for config.h and once per subdirectory).
422 Maybe Autoconf could use some kind of CONFIG_LINKS=<file-list>,
423 having all such AC_LINK(ed)_FILES by default, but usable by each
424 Makefile.in in rules for updating the particular links they need.
426 From: pinard@iro.umontreal.ca
428 ------------------------------------------------------------------------------
430 Perhaps autoconf could have a single @magic@ frob that gets replaced with
431 assignments for all the *dir variables? There is quite a plethora for each
432 Makefile.in to have foodir = @foodir@.
434 From: Roland McGrath <roland@gnu.ai.mit.edu>
436 ------------------------------------------------------------------------------
438 In most cases, when autoscan suggests something, using the search
439 or index command into the Info reader for autoconf manual quickly
440 explains me what the test is about. However, for header files
441 and functions, the search might fail, because the test is not of
442 the specific kind. The Autoconf manual should reflect somewhere
443 all header files or functions (non-specific features, generally)
444 triggering autoscan to generate tests, and tell in a few words
445 what is the problem, and the suggested approach for a solution;
446 that is, how one should use the result of testing the feature.
448 From: pinard@iro.umontreal.ca
450 ------------------------------------------------------------------------------
452 It would be nice if the configure script would handle an option such as
453 --x-libraries="/usr/openwin/lib /usr/dt/lib".
455 Rick Boykin <rboykin@cscsun3.larc.nasa.gov>
457 Under Solaris 2.4, the regular X includes and libs and the Motif
458 includes and libs are in different places. The Emacs configure script
459 actually allows dir1:dir2:dir3 --
461 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
462 LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
463 LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
465 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
466 C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
469 ------------------------------------------------------------------------------
471 What messages should be produced by default, if any?
473 Probably only the few most important ones, like which configuration
474 name was used, whether X or Xt are in use, etc. The specific
475 decisions, and progress messages, should be recorded on the terminal
476 only if --verbose is used.
478 --silent just supresses the "checking for...result"
479 messages, not the "creating FOO" messages.
481 I think the default should be to suppress both.
482 From: Richard Stallman <rms@gnu.ai.mit.edu>
484 There is no distinction now between
485 important decisions (we have X) vs minor decisions (we have lstat).
486 However, there are probably only a few things you deem important enough to
487 announce and only those few things will need to be changed.
488 Perhaps config.status could be written with comments saying what was
490 From: Roland McGrath <roland@gnu.ai.mit.edu>
492 ------------------------------------------------------------------------------
494 Use automake to generate autoconf's Makefile.in's?
496 ------------------------------------------------------------------------------
498 about the idea of using small configure.in/aclocal.m4 snippets:
499 this is the one idea in metaconfig (the autoconf-like program used by
500 Perl) that I like. metaconfig looks for a "U" directory, and includes
501 each ".U" file into the generated Configure script (according to
502 various complicated rules).
503 From: Tom Tromey <tromey@creche.cygnus.com>
505 ------------------------------------------------------------------------------
507 I'd much prefer to see the absolute paths substituted for all the
508 standard "dir" variables. It would be nice to have variables in
509 configure that held the absolute paths. And it is nice to be able to
510 substitute them into other files without relying on the destination
511 file supporting ${...} syntax. (It works in Perl, sh, and make --
514 From: Tom Tromey <tromey@creche.cygnus.com>
516 ------------------------------------------------------------------------------
518 Another thing I wish for is a macro which figures out which libraries are
519 needed for BSD-sytle sockets. AC_PATH_X already detects this
520 correctly...so it's just a matter of seperating out the socket-related code.
521 From: "Joel N. Weber II" <nemo@koa.iolani.honolulu.hi.us>
523 ------------------------------------------------------------------------------
525 Merge the two lex macros, AC_PROG_LEX and AC_DECL_YYTEXT?
527 ------------------------------------------------------------------------------
529 in order to use the AC_CANONICAL_SYSTEM macro, I have to
530 have install-sh somewhere nearby --- why is this? I have no real
531 reason to distribute install-sh, other than that its absence breaks
534 Shouldn't the above loop be looking for config.sub and config.guess?
535 From: jimb@totoro.bio.indiana.edu (Jim Blandy)
537 adding AC_CANONICAL_HOST to my configure.in script caused
538 all sorts of odd/unexplained errors. Obviously, I had to go
539 get copies of config.guess, config.sub and install-sh from the
540 autoconf distribution, but the error messages and autoconf docs
541 didn't explain that very well.
542 From: bostic@bsdi.com (Keith Bostic)
544 ------------------------------------------------------------------------------
546 Perhaps also have AC_TRY_COMPILER try to link an invalid program, and
547 die if the compiler seemed to succeed--in which case it's not usable
548 with autoconf scripts.
550 ------------------------------------------------------------------------------
552 there is absolutely no guarantee that 'a' to 'z' are
553 contiguous, and the ISLOWER macro is not guaranteed to correctly
554 reproduce the result of islower. In all variants of ASCII however, it
555 will work correctly in the C locale.
557 There is also no guarantee that toupper(i) - i is the same constant if
558 non-zero. TOUPPER, hence, is not correct either. But, in all variants
559 of ASCII in the C locale, it works.
561 Tanmoy Bhattacharya (tanmoy@qcd.lanl.gov>
563 ------------------------------------------------------------------------------
565 autoreconf doesn't support having (in the same tree) both directories
566 that are parts of a larger package (sharing aclocal.m4 and acconfig.h),
567 and directories that are independent packages (each with their own ac*).
568 It assumes that they are all part of the same package, if you use --localdir,
569 or that each directory is a separate package, if you don't use it.
571 autoreconf should automatically figure out which ac* files to use--the
572 closest ones up the tree from each directory, probably, unless
573 overridden by --localdir.
575 Also, autoreconf recurses on all subdirectories containing a
576 configure.in, not just those given by an AC_CONFIG_SUBDIRS directive.
577 This may not be a problem in practice.
579 ------------------------------------------------------------------------------