| 1 | -*- outline -*- | 
|---|
| 2 |  | 
|---|
| 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. | 
|---|
| 5 | -djm & his successors. | 
|---|
| 6 |  | 
|---|
| 7 |  | 
|---|
| 8 | ------------------------------------------------------------------------------ | 
|---|
| 9 |  | 
|---|
| 10 | * Soon | 
|---|
| 11 |  | 
|---|
| 12 | ** AC_CHECK_HEADERS | 
|---|
| 13 | and the like, don't have a consistent way to handle multi-line | 
|---|
| 14 | arguments.  Fix, test, and document. | 
|---|
| 15 |  | 
|---|
| 16 | ** AC_PROG_INSTALL | 
|---|
| 17 | This test should be extended to check that install supports the GNU | 
|---|
| 18 | Install syntax: install FILES... DIR.  This will relieve everybody | 
|---|
| 19 | form having to use mkinstalldirs to create the directories, as install | 
|---|
| 20 | does it itself.  install-sh is already handling this case.  This also | 
|---|
| 21 | makes it simple not to create the directories where nothing will be | 
|---|
| 22 | installed because of configuration options, which is next to | 
|---|
| 23 | impossible using the current setting. | 
|---|
| 24 |  | 
|---|
| 25 | In other words: everything is ready (install-sh and Automake), we just | 
|---|
| 26 | need a good reimplementation of AC_PROG_INSTALL. | 
|---|
| 27 |  | 
|---|
| 28 | ** --target & AC_ARG_PROGRAM | 
|---|
| 29 | Shouldn't *any* `program' be installed as `$target_alias-program' even | 
|---|
| 30 | if AC_ARG_PROGRAM is not called?  That would be much more predictable. | 
|---|
| 31 | Ian? | 
|---|
| 32 |  | 
|---|
| 33 | ** AC_CHECK_TOOL... | 
|---|
| 34 | Write a test that checks that it honors the values set by the user. | 
|---|
| 35 |  | 
|---|
| 36 | ** autom4te and warnings. | 
|---|
| 37 | Decide what must be done. | 
|---|
| 38 |  | 
|---|
| 39 | ** AC_DEFINE(func, rpl_func) | 
|---|
| 40 | This scheme causes problems: if for instance, #define malloc | 
|---|
| 41 | rpl_malloc, then the rest of configure will use an undefined malloc. | 
|---|
| 42 | Hence some tests fail.  Up to now we simply #undef these functions | 
|---|
| 43 | where we had a problem (cf. AC_FUNC_MKTIME and AC_FUNC_MMAP for | 
|---|
| 44 | instance).  This is _bad_.  Maybe the #define func rpl_malloc should | 
|---|
| 45 | be performed in another file than confdefs.h, say confh.h, which is | 
|---|
| 46 | used for config.h generation, but not used in configure's own tests. | 
|---|
| 47 |  | 
|---|
| 48 | ** AC_PROG_CC | 
|---|
| 49 | Currently it tries to put the C compiler in ANSI C mode by default. | 
|---|
| 50 | We should change this spec so that AC_PROG_CC tries to change the | 
|---|
| 51 | compiler to be the "nicest" mode, i.e. support for the latest standard | 
|---|
| 52 | features (currently ISO C99) plus support for all vendor extensions, | 
|---|
| 53 | even if they are slightly incompatible with C99.  The basic idea here | 
|---|
| 54 | is that AC_PROG_CC should disable pedanticisms and should enable | 
|---|
| 55 | extensions. | 
|---|
| 56 |  | 
|---|
| 57 | ** AC_GNU_SOURCE, AC_AIX, and AC_MINIX | 
|---|
| 58 | Deprecate these, as they will be superseded by the AC_PROG_CC changes. | 
|---|
| 59 |  | 
|---|
| 60 |  | 
|---|
| 61 | * Later | 
|---|
| 62 |  | 
|---|
| 63 | ** config.site | 
|---|
| 64 | This guy is really a problem.  It's contents should be read before | 
|---|
| 65 | handling the options, so that the latter properly override the latter, | 
|---|
| 66 | but most people would want a means to have a config.site that depends | 
|---|
| 67 | on $prefix for instance. | 
|---|
| 68 |  | 
|---|
| 69 | Some other would like config.site to be looked for in the current | 
|---|
| 70 | directory. | 
|---|
| 71 |  | 
|---|
| 72 | Harlan: | 
|---|
| 73 |  | 
|---|
| 74 | I'll go further. | 
|---|
| 75 |  | 
|---|
| 76 | I'd like to see several layers of config.site available. | 
|---|
| 77 |  | 
|---|
| 78 | I'm starting to use "modules" at more places to handle software | 
|---|
| 79 | installation, and it would be helpful to set general things like: | 
|---|
| 80 |  | 
|---|
| 81 | prefix=/opt/pkg/@PACKAGE@/@VERSION@ | 
|---|
| 82 |  | 
|---|
| 83 | once at a global level, and then, for example, have things like: | 
|---|
| 84 |  | 
|---|
| 85 | --with-etcdir=$prefix/etc | 
|---|
| 86 |  | 
|---|
| 87 | stuffed "above" the various versions of SSH so I wouldn't have to hunt for | 
|---|
| 88 | these things every time it was time to recompile a new version of a | 
|---|
| 89 | previously installed package. | 
|---|
| 90 |  | 
|---|
| 91 | Something like: | 
|---|
| 92 |  | 
|---|
| 93 | src/config.site            Global stuff | 
|---|
| 94 | ... | 
|---|
| 95 | src/ssh/config.site                package-specific stuff | 
|---|
| 96 | src/ssh/ssh-1.2.27/                the actual source code | 
|---|
| 97 |  | 
|---|
| 98 | I'd like to see automake/autoconf better support packaging tools (like | 
|---|
| 99 | modules, the *BSD ports/ stuff, and others would like hooks for RPMs). | 
|---|
| 100 |  | 
|---|
| 101 |  | 
|---|
| 102 | ** Languages | 
|---|
| 103 | Integrate other Fortrans etc. | 
|---|
| 104 |  | 
|---|
| 105 | ** AC_CHECK_FUNCS and AC_TRY_LINK_FUNC | 
|---|
| 106 | I have still not understood what's the difference  between the two | 
|---|
| 107 | which requires to have two different sources: AC_LANG_CALL and | 
|---|
| 108 | AC_LANG_FUNC_LINK_TRY (which names seem to be inappropriate). | 
|---|
| 109 | Wouldn't one be enough? | 
|---|
| 110 |  | 
|---|
| 111 | ** Document AC_COMPILE_IFELSE, AC_LANG_PROGRAM etc. | 
|---|
| 112 | And make AC_TRY_COMPILE etc. obsolete. | 
|---|
| 113 |  | 
|---|
| 114 | ** Libtool | 
|---|
| 115 | Define once for all the hooks they need, any redefinition of | 
|---|
| 116 | AC_PROG_CC etc. is way too dangerous and too limiting.  The GCC team | 
|---|
| 117 | certainly has requirements too. | 
|---|
| 118 |  | 
|---|
| 119 | ** AC_SEARCH_LIBS | 
|---|
| 120 | From: Tom Tromey <tromey@cygnus.com> | 
|---|
| 121 | Subject: AC_SEARCH_LIBS | 
|---|
| 122 |  | 
|---|
| 123 | I think AC_SEARCH_LIBS has an unfortunate interface. | 
|---|
| 124 |  | 
|---|
| 125 | ACTION-IF-FOUND is run in addition to the default action.  Most | 
|---|
| 126 | autoconf macros don't work this way.  This is confusing. | 
|---|
| 127 |  | 
|---|
| 128 | In my case I can't use this macro because it always appends to LIBS. | 
|---|
| 129 | I don't want that.  Instead I want to use ACTION-IF-FOUND to set my | 
|---|
| 130 | own macro. | 
|---|
| 131 |  | 
|---|
| 132 | Also there is no documentation on the format of library names expected | 
|---|
| 133 | by the macro.  Even a reference to some other function (e.g., "the | 
|---|
| 134 | library name can have the same forms as with AC_HAVE_LIBRARY" (if that | 
|---|
| 135 | is true, which I haven't looked up) would be fine. | 
|---|
| 136 |  | 
|---|
| 137 | ** Revamp the language support | 
|---|
| 138 | We should probably have a language for C89, and C99.  We must give the | 
|---|
| 139 | means to the users to specify some needs over the compilers, and | 
|---|
| 140 | actually look for a good compiler, instead of stopping at the first | 
|---|
| 141 | compiler we find. | 
|---|
| 142 |  | 
|---|
| 143 | In fact, the AC_CHECK_PROG macro and variations have proved their | 
|---|
| 144 | limitation: we really need something more powerful and simpler too. | 
|---|
| 145 |  | 
|---|
| 146 | We must take into account the specific problems of the GCC team.  We | 
|---|
| 147 | must extend AC_CHECK_FUNCS in order to use the headers instead of fake | 
|---|
| 148 | declarations as we currently do.  Default headers could be triggered | 
|---|
| 149 | on when C99, but not with the other languages? | 
|---|
| 150 |  | 
|---|
| 151 | At the end, we should have a simple macro, such as AC_LANG_COMPILER | 
|---|
| 152 | for instance, which is built over simpler macros.  Each language | 
|---|
| 153 | support should come with these simpler macros, but each language | 
|---|
| 154 | should follow the same process. | 
|---|
| 155 |  | 
|---|
| 156 | We also need to check the srcext which are supported by the compiler. | 
|---|
| 157 | In fact, this macro is also probably the right place to check for | 
|---|
| 158 | objext and exeext. | 
|---|
| 159 |  | 
|---|
| 160 | ** AC_PROG_CC_STDC | 
|---|
| 161 | Should be: AC_PROG_CC_ISO?  Or even more specific for the ISO version? | 
|---|
| 162 | Should include more tests (e.g., AC_C_CONST etc.)?  See Peter for very | 
|---|
| 163 | useful comments on the technology.  Should we make this a new | 
|---|
| 164 | language?  AC_LANG(ISO C).  It would be great to introduce | 
|---|
| 165 | AC_LANG_COMPILER in this release too. | 
|---|
| 166 |  | 
|---|
| 167 | ** autoupdate | 
|---|
| 168 | We should probably install the files which do not depend upon the | 
|---|
| 169 | user, just the Autoconf library files.  But conversely autoupdate must | 
|---|
| 170 | be opened to user macros, i.e., for instance libtool itself must be | 
|---|
| 171 | able to say that AM_PROG_LIBTOOL is now AC_PROG_LIBTOOL, and have | 
|---|
| 172 | autoupdate do its job on old configure.ac. | 
|---|
| 173 |  | 
|---|
| 174 | * Even later | 
|---|
| 175 |  | 
|---|
| 176 | ** Pentateuch | 
|---|
| 177 | Heck, there is nothing after `Deuteronomy'!  We're stuck, but we | 
|---|
| 178 | _must_ update the `history' section.  Can't go to `New testament', we | 
|---|
| 179 | might hurt feelings?  In addition, it means that the Messiah has come, | 
|---|
| 180 | which might be slightly presumptuous :).  Still, someone fluent in | 
|---|
| 181 | English should write it. | 
|---|
| 182 |  | 
|---|
| 183 | ** AC_PATH_X | 
|---|
| 184 | Hi Robert, | 
|---|
| 185 |  | 
|---|
| 186 | > Hi, autoconf people.  While packaging plotutils-2.2 (just released), | 
|---|
| 187 | > I noticed what looks like a small error in the autoconf-2.13 texinfo | 
|---|
| 188 | > documentation, the entry for AC_PATH_XTRA, in particular. | 
|---|
| 189 |  | 
|---|
| 190 | > The documentation says that AC_PATH_XTRA | 
|---|
| 191 | >       ... adds the C compiler flags that X needs to output variable | 
|---|
| 192 | >       `X_CFLAGS', and the X linker flags to `X_LIBS'.  If X is not | 
|---|
| 193 | >       available, adds `-DX_DISPLAY_MISSING' to `X_CFLAGS'. | 
|---|
| 194 |  | 
|---|
| 195 | > It doesn't seem to add -DX_DISPLAY_MISSING to X_CFLAGS.  X_DISPLAY_MISSING | 
|---|
| 196 | > ends up defined in config.h, instead. | 
|---|
| 197 |  | 
|---|
| 198 | That's only because you're no doubt using AC_CONFIG_HEADER(..) to send | 
|---|
| 199 | your defines to a config.h-style file.  If you were to not use | 
|---|
| 200 | AC_CONFIG_HEADER and X was not available, then you would see | 
|---|
| 201 | -DX_DISPLAY_MISSING being added to @DEFS@ as your output files were being | 
|---|
| 202 | generated. | 
|---|
| 203 |  | 
|---|
| 204 | But you are right--the documentation is not clear about this.  I'll change | 
|---|
| 205 | it. | 
|---|
| 206 |  | 
|---|
| 207 | > In fact it looks to me as if right now, X_CFLAGS is used only for | 
|---|
| 208 | > specifying directories where X include files are stored, via the `-I' option. | 
|---|
| 209 | > Maybe it should really be called X_CPPFLAGS? | 
|---|
| 210 |  | 
|---|
| 211 | Well, perhaps.  If you feel strongly about this, feel free to submit a | 
|---|
| 212 | change-request.  There is a hyperlink to the bug tracking database from | 
|---|
| 213 | http://sourceware.cygnus.com/autoconf/.  With the way it reads in the | 
|---|
| 214 | manual right now, it's designed to allow the user to set additional flags | 
|---|
| 215 | in the environment prior to running configure--and these don't need to be | 
|---|
| 216 | limited to just -I flags.  Nevertheless, I can see a few clean ways to | 
|---|
| 217 | improve this. | 
|---|
| 218 |  | 
|---|
| 219 | ** AC_SYS_INTERPRETER | 
|---|
| 220 | Defines $interpval.  This is not a standard name.  Do we want to keep | 
|---|
| 221 | this?  Clarify our policy on those names. | 
|---|
| 222 |  | 
|---|
| 223 | ** Allow --recursive to config.status | 
|---|
| 224 | So that --recheck does not pass --no-recursive to configure. | 
|---|
| 225 |  | 
|---|
| 226 | * autoconf.texi | 
|---|
| 227 | Move the specific macro documentation blocks into the source files, | 
|---|
| 228 | and use a doc-block extraction/merge technique to get documentation | 
|---|
| 229 | into texi-file.  This should help avoid bit-rot in the doc, and make | 
|---|
| 230 | the doc easier to update when people add/change macros.  The name | 
|---|
| 231 | "autodoc" is probably already taken so we probably need another one. | 
|---|
| 232 |  | 
|---|
| 233 | ------------------------------------------------------------------------------ | 
|---|
| 234 |  | 
|---|
| 235 | * m4 | 
|---|
| 236 |  | 
|---|
| 237 | ** I18n | 
|---|
| 238 | The error messages for indir and dumpdef are uselessly different.  Fix | 
|---|
| 239 | this for translators. | 
|---|
| 240 |  | 
|---|
| 241 | ** Tracing `builtin' | 
|---|
| 242 | F**k!  --trace FOO does not catch indir([FOO], $@)! | 
|---|
| 243 |  | 
|---|
| 244 | ** Tracing builtins | 
|---|
| 245 | GNU M4 1.4's tracing of builtins is buggy.  When run on this input: | 
|---|
| 246 |  | 
|---|
| 247 | | divert(-1) | 
|---|
| 248 | | changequote([, ]) | 
|---|
| 249 | | define([m4_eval], defn([eval])) | 
|---|
| 250 | | eval(1) | 
|---|
| 251 | | m4_eval(2) | 
|---|
| 252 | | undefine([eval]) | 
|---|
| 253 | | m4_eval(3) | 
|---|
| 254 |  | 
|---|
| 255 | it behaves this way: | 
|---|
| 256 |  | 
|---|
| 257 | | % m4 input.m4 -da -t eval | 
|---|
| 258 | | m4trace: -1- eval(1) | 
|---|
| 259 | | m4trace: -1- m4_eval(2) | 
|---|
| 260 | | m4trace: -1- m4_eval(3) | 
|---|
| 261 | | % | 
|---|
| 262 |  | 
|---|
| 263 | Conversely: | 
|---|
| 264 |  | 
|---|
| 265 | | % m4 input.m4 -da -t m4_eval | 
|---|
| 266 | | % | 
|---|
| 267 |  | 
|---|
| 268 | ------------------------------------------------------------------------------ | 
|---|
| 269 |  | 
|---|
| 270 | * Autoconf 3 | 
|---|
| 271 |  | 
|---|
| 272 | ** Cache name spaces. | 
|---|
| 273 | Cf the discussion with Kaveh.  One would like to | 
|---|
| 274 | AC_CHECK_FUNCS(bar) | 
|---|
| 275 | # Do something that changes the environment | 
|---|
| 276 | AC_CACHE_PUSH(foo) | 
|---|
| 277 | AC_CHECK_FUNCS(bar) | 
|---|
| 278 | AC_CACHE_POP | 
|---|
| 279 | in order not to erase the results of a check with another. | 
|---|
| 280 |  | 
|---|
| 281 | ** Cache var names | 
|---|
| 282 | should depend upon the current language. | 
|---|
| 283 |  | 
|---|
| 284 | ** Use m4 lists? | 
|---|
| 285 | I think one sad decision in Autoconf was to use white space separated | 
|---|
| 286 | lists for some arguments.  For instance AC_CHECK_FUNCS(foo bar).  I | 
|---|
| 287 | tend to think that, even if it is not as nice, we should use m4 lists, | 
|---|
| 288 | i.e., AC_CHECK_FUNCS((foo, bar)) in this case.  This would ease | 
|---|
| 289 | specializing loops, and more importantly, make them much more robust. | 
|---|
| 290 |  | 
|---|
| 291 | A typical example of things that can be performed if we use m4 lists | 
|---|
| 292 | instead of white space separated lists is the case of things that have | 
|---|
| 293 | a space in their names, eg, structures. | 
|---|
| 294 |  | 
|---|
| 295 | With the current scheme it would be extremely difficult to loop over | 
|---|
| 296 | AC_CHECK_STRUCTS(struct foo struct bar), while it natural and well | 
|---|
| 297 | defined for m4 lists: AC_CHECK_STRUCTS((struct foo, struct bar)). | 
|---|
| 298 |  | 
|---|
| 299 | I know that makes a huge difference in syntax, but a major release | 
|---|
| 300 | should be ready to settle a new world.  We *can* provide helping tools | 
|---|
| 301 | for the transition.  Considering the benefits, I really think it is | 
|---|
| 302 | worth thinking. --akim | 
|---|
| 303 |  | 
|---|
| 304 | ** Forbid shell variables as main arguments | 
|---|
| 305 | The fact that we have to support shell variables as main argument | 
|---|
| 306 | forbids many interesting constructions (specialization are not always | 
|---|
| 307 | possible, equally for AC_REQUIRE'ing macros *with their arguments*). | 
|---|
| 308 | Any loop should be handled by m4 itself, and nothing should be hidden | 
|---|
| 309 | to it.  As a consequence, shell variables on the main arguments become | 
|---|
| 310 | useless (the main reason we support shell variables is to allow the | 
|---|
| 311 | loop versions of single argument macros, eg, to go from AC_CHECK_FUNC | 
|---|
| 312 | to AC_CHECK_FUNCS). --akim | 
|---|
| 313 |  | 
|---|
| 314 | ** Use the @SUBST@ technology also for headers instead of #undef. | 
|---|
| 315 | This requires that acconfig.h becomes completely obsolete: autoheader | 
|---|
| 316 | should generate all the templates. | 
|---|
| 317 |  | 
|---|
| 318 | ** Specializing loops. | 
|---|
| 319 | For instance, make AC_CHECK_FUNC[S] automatically use any particular | 
|---|
| 320 | macros for the listed functions. | 
|---|
| 321 | This requires to obsolete the feature `break' in ACTION-IF, since all | 
|---|
| 322 | the loops are to be handled by m4, not sh. | 
|---|
| 323 |  | 
|---|
| 324 | ** Faces of a test | 
|---|
| 325 | Each macro can potentially come with several faces: of course the | 
|---|
| 326 | configure snippet (AC_foo), a config.h snippet (AH_foo), a system.h | 
|---|
| 327 | snippet (AS_foo), documentation (AD_foo) and, why not, the some C code | 
|---|
| 328 | for instance to replace a function. | 
|---|
| 329 |  | 
|---|
| 330 | The motivation for the `faces' is to encapsulate.  It is abnormal that | 
|---|
| 331 | once one has a configure macro, then she has to read somewhere to find | 
|---|
| 332 | the piece of system.h to use etc.  The macros should come in a | 
|---|
| 333 | self-contained way, or, said it another way, PnP. | 
|---|
| 334 |  | 
|---|
| 335 | A major issue is that of specialization.  AC_CHECK_HEADER (or another | 
|---|
| 336 | name) for instance, will have as an effect, via system.h to include | 
|---|
| 337 | the header.  But if the test for the header is specific, the generic | 
|---|
| 338 | AS_CHECK_HEADER will still be used.  Conversely, some headers may not | 
|---|
| 339 | require a specific AC_ tests, but a specialized AS_ macro. | 
|---|
| 340 |  | 
|---|
| 341 | ------------------------------------------------------------------------------ | 
|---|
| 342 |  | 
|---|
| 343 | * Make AC_CHECK_LIB check whether the function is already available | 
|---|
| 344 | before checking for the library.  This might involve adding another | 
|---|
| 345 | kind of cache variable to indicate whether a given function needs a | 
|---|
| 346 | given library.  The current ac_cv_func_ variables are intended to | 
|---|
| 347 | indicate whether the function is in the default libraries, but | 
|---|
| 348 | actually also take into account whatever value LIBS had when they | 
|---|
| 349 | were checked for. | 
|---|
| 350 |  | 
|---|
| 351 | Isn't this the issue of AC_SEARCH_LIB? --akim | 
|---|
| 352 | How come the list of libraries to browse not an additional parameter | 
|---|
| 353 | of AC_CHECK_FUNC, exactly like for the headers? --akim | 
|---|
| 354 |  | 
|---|
| 355 | ------------------------------------------------------------------------------ | 
|---|
| 356 |  | 
|---|
| 357 | * Add AC_PROG_CC_POSIX to replace the current ad-hoc macros for AIX, | 
|---|
| 358 | Minix, ISC, etc. | 
|---|
| 359 |  | 
|---|
| 360 | ------------------------------------------------------------------------------ | 
|---|
| 361 |  | 
|---|
| 362 | * Select the right CONFIG_SHELL automatically (for Ultrix, Lynx especially.) | 
|---|
| 363 |  | 
|---|
| 364 | ------------------------------------------------------------------------------ | 
|---|
| 365 |  | 
|---|
| 366 | * Doc: Centralize information on POSIX, MS-DOS, cross-compiling, and | 
|---|
| 367 | other important topics. | 
|---|
| 368 |  | 
|---|
| 369 | ------------------------------------------------------------------------------ | 
|---|
| 370 |  | 
|---|
| 371 | * Mike Haertel's suggestions: | 
|---|
| 372 |  | 
|---|
| 373 | ** Provide header files containing decls for alloca, strings, etc. | 
|---|
| 374 |  | 
|---|
| 375 | ** Cross compiling: | 
|---|
| 376 |  | 
|---|
| 377 | *** Error messages include instructions for overriding defaults using | 
|---|
| 378 | config.site. | 
|---|
| 379 |  | 
|---|
| 380 | *** Distribute a config.site corresponding to a hypothetical bare POSIX system with c89. | 
|---|
| 381 |  | 
|---|
| 382 | ** Site defaults: | 
|---|
| 383 |  | 
|---|
| 384 | *** 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. | 
|---|
| 385 |  | 
|---|
| 386 | ------------------------------------------------------------------------------ | 
|---|
| 387 |  | 
|---|
| 388 | * Look at user contributed macros: | 
|---|
| 389 | IEEE double precision math | 
|---|
| 390 | more | 
|---|
| 391 |  | 
|---|
| 392 | ------------------------------------------------------------------------------ | 
|---|
| 393 |  | 
|---|
| 394 | * Provide a way to create a config.h *and* set the DEFS variable from within | 
|---|
| 395 | the same configure script. | 
|---|
| 396 |  | 
|---|
| 397 | ------------------------------------------------------------------------------ | 
|---|
| 398 |  | 
|---|
| 399 | For AC_TYPE_SIGNAL signal handlers, provide a way for code to know | 
|---|
| 400 | whether to do "return 0" or "return" (int vs void) to avoid compiler | 
|---|
| 401 | warnings.  (Roland McGrath) | 
|---|
| 402 |  | 
|---|
| 403 | ------------------------------------------------------------------------------ | 
|---|
| 404 |  | 
|---|
| 405 | In config.status comment, put the host/target/build types, if used. | 
|---|
| 406 |  | 
|---|
| 407 | ------------------------------------------------------------------------------ | 
|---|
| 408 |  | 
|---|
| 409 | It would be nice if I could (in the Makefile.in files) set the | 
|---|
| 410 | relative name of config.h. You have config.h ../config.h | 
|---|
| 411 | ../../config.h's all over the place, in the findutils-4.1 directory. | 
|---|
| 412 | From: "Randall S. Winchester" <rsw@eng.umd.edu> | 
|---|
| 413 |  | 
|---|
| 414 | ------------------------------------------------------------------------------ | 
|---|
| 415 |  | 
|---|
| 416 | ls -lt configure configure.in | sort | 
|---|
| 417 | doesn't work right if configure.in is from a symlink farm, where the | 
|---|
| 418 | symlink has either a timestamp of its own, or under BSD 4.4, it has | 
|---|
| 419 | the timestamp of the current directory, neither of which | 
|---|
| 420 | helps. Changing it to | 
|---|
| 421 | ls -Llt configure configure.in | sort | 
|---|
| 422 | works for me, though I don't know how portable that is | 
|---|
| 423 | _Mark_ <eichin@cygnus.com> | 
|---|
| 424 |  | 
|---|
| 425 | ------------------------------------------------------------------------------ | 
|---|
| 426 |  | 
|---|
| 427 | Here is the thing I would like the most; | 
|---|
| 428 | AC_PKG_WITH(PACKAGE, HELP_STRING, PACKAGE-ROOT, PACKAGE-LIBS, PACKAGE-DEFS, | 
|---|
| 429 | PACKAGE-CCPFLAGS) | 
|---|
| 430 | like | 
|---|
| 431 |  | 
|---|
| 432 | AC_PKG_WITH(kerberos,,/usr/local/athena,-lkrb -ldes,[KERBEROS KRB4 | 
|---|
| 433 | CRYPT],include) | 
|---|
| 434 | AC_PKG_WITH(hesiod, | 
|---|
| 435 | [if hesiod is not in kerberos-root add --with-hesiod-root=somewhere] | 
|---|
| 436 | ,,-lhesiod,HESIOD,,) | 
|---|
| 437 | AC_PKG_WITH(glue,,,-lglue,GLUE,,) | 
|---|
| 438 | AC_PKG_WITH(bind,,/usr/local/bind, [lib/resolv.a lib/lib44bsd.a], ,include) | 
|---|
| 439 | After the appropriate checks, the existence of the files, and libs and such | 
|---|
| 440 | LIBS=$LIBS $PKG-LIBS | 
|---|
| 441 | DEFS=$DEFS $PKG-DEFS | 
|---|
| 442 | CPPFLAGS=$PKG-CPPFLAGS $CPPFLAGS | 
|---|
| 443 | $PKG-ROOT=$PKG-ROOT | 
|---|
| 444 | The cppflags should reverse the order so that you can have; | 
|---|
| 445 | -I/usr/local/bind/include -I/usr/local/athena/include | 
|---|
| 446 | and | 
|---|
| 447 | -L/usr/local/athena/lib -lkrb -ldes /usr/local/bind/lib/libresolv.a | 
|---|
| 448 | as order matters. | 
|---|
| 449 |  | 
|---|
| 450 | also an AC_PKG_CHK_HEADER | 
|---|
| 451 | and an AC_PKG_CHK_FUNCTION | 
|---|
| 452 | so one can give alternate names to check for stuff ($PKG-ROOT/lib for | 
|---|
| 453 | example) | 
|---|
| 454 | From: Randall Winchester | 
|---|
| 455 |  | 
|---|
| 456 | ------------------------------------------------------------------------------ | 
|---|
| 457 |  | 
|---|
| 458 | AC_C_CROSS assumes that configure was called like 'CC=target-gcc; | 
|---|
| 459 | ./configure'. I want to write a package that has target dependent | 
|---|
| 460 | libraries and host dependent tools. So I don't like to lose the | 
|---|
| 461 | distinction between CC and [G]CC_FOR_TARGET.  AC_C_CROSS should check | 
|---|
| 462 | for equality of target and host. | 
|---|
| 463 |  | 
|---|
| 464 | It would be great if | 
|---|
| 465 |  | 
|---|
| 466 | GCC_FOR_TARGET | 
|---|
| 467 | AR_FOR_TARGET | 
|---|
| 468 | RANLIB_FOR_TARGET | 
|---|
| 469 |  | 
|---|
| 470 | would be set automatically if host != target. | 
|---|
| 471 | AC_LANG_CROSS_C would be nice too, to check header files | 
|---|
| 472 | etc. with GCC_FOR_TARGET instead of CC | 
|---|
| 473 |  | 
|---|
| 474 | Here is one simple test | 
|---|
| 475 |  | 
|---|
| 476 | if test "x$host" != "x$target"; then | 
|---|
| 477 | AC_CHECK_PROGS(AR_FOR_TARGET, | 
|---|
| 478 | [$target-ar, $prefix/$target/bin/ar], $target-ar) | 
|---|
| 479 | AC_CHECK_PROGS(RANLIB_FOR_TARGET, $target-ranlib, $target-ranlib) | 
|---|
| 480 | [$target-ranlib, $prefix/$target/bin/ranlib], $target-ranlib) | 
|---|
| 481 | AC_CHECK_PROGS(GCC_FOR_TARGET, $target-gcc, $target-gcc) | 
|---|
| 482 | [$target-gcc, $prefix/$target/bin/gcc], $target-gcc) | 
|---|
| 483 | fi | 
|---|
| 484 |  | 
|---|
| 485 | From: nennker@cs.tu-berlin.DE (Axel Nennker) | 
|---|
| 486 |  | 
|---|
| 487 | (also look in the autoconf mailing list archives for the proposed | 
|---|
| 488 | CHECK_TARGET_TOOL macro from Natanael Nerode, a gcc configury guru). | 
|---|
| 489 |  | 
|---|
| 490 | ------------------------------------------------------------------------------ | 
|---|
| 491 |  | 
|---|
| 492 | The problem occurs with the following libc functions in SunOS 5.4: | 
|---|
| 493 |  | 
|---|
| 494 | fnmatch glob globfree regcomp regexec regerror regfree wordexp wordfree | 
|---|
| 495 |  | 
|---|
| 496 | It also occurs with a bunch more libposix4 functions that most people | 
|---|
| 497 | probably aren't worried about yet, e.g. shm_open. | 
|---|
| 498 |  | 
|---|
| 499 | All these functions fail with errno set to ENOSYS (89) | 
|---|
| 500 | ``Operation not applicable''. | 
|---|
| 501 |  | 
|---|
| 502 | Perhaps Autoconf should have a specific macro for fnmatch, another for | 
|---|
| 503 | glob+globfree, another for regcomp+regexec+regerror+regfree, and | 
|---|
| 504 | another for wordexp+wordfree.  This wouldn't solve the problem in | 
|---|
| 505 | general, but it should work for Solaris 2.4.  Or Autoconf could limit | 
|---|
| 506 | itself to fnmatch and regcomp, the only two functions that I know have | 
|---|
| 507 | been a problem so far. | 
|---|
| 508 |  | 
|---|
| 509 | From Paul Eggert. | 
|---|
| 510 |  | 
|---|
| 511 | ------------------------------------------------------------------------------ | 
|---|
| 512 |  | 
|---|
| 513 | Make easy macros for checking for X functions and libraries, such as Motif. | 
|---|
| 514 |  | 
|---|
| 515 | ------------------------------------------------------------------------------ | 
|---|
| 516 |  | 
|---|
| 517 | There are basically three ways to lock files | 
|---|
| 518 | lockf, fnctl, flock | 
|---|
| 519 | I'd be interested in adding a macro to pick the "right one" if you're | 
|---|
| 520 | interested. | 
|---|
| 521 |  | 
|---|
| 522 | From:    Rich Salz <rsalz@osf.org> | 
|---|
| 523 |  | 
|---|
| 524 | ------------------------------------------------------------------------------ | 
|---|
| 525 |  | 
|---|
| 526 | Timezone calculations checks. | 
|---|
| 527 |  | 
|---|
| 528 | ------------------------------------------------------------------------------ | 
|---|
| 529 |  | 
|---|
| 530 | Support different default file system layouts, e.g. SVR4, Linux. | 
|---|
| 531 | Of course, this can be done locally with config.site. | 
|---|
| 532 |  | 
|---|
| 533 | ------------------------------------------------------------------------------ | 
|---|
| 534 |  | 
|---|
| 535 | I wonder if it is possible to get the name of X11's app-defaults | 
|---|
| 536 | directory by autoconf. Moreover, I'd like to have a general way of | 
|---|
| 537 | accessing imake variables by autoconf, something like | 
|---|
| 538 |  | 
|---|
| 539 | AC_DEFINE(WINE_APP_DEFAULTS, AC_IMAKE_VAR(XAPPLOADDIR)) | 
|---|
| 540 |  | 
|---|
| 541 | Slaven Rezic <eserte@cabulja.herceg.de> | 
|---|
| 542 |  | 
|---|
| 543 | ------------------------------------------------------------------------------ | 
|---|
| 544 |  | 
|---|
| 545 | Cache consistency checking: ignore cache if environment | 
|---|
| 546 | (CC or PATH) differs. | 
|---|
| 547 | From Mike Haertel | 
|---|
| 548 |  | 
|---|
| 549 | So we need a general mechanism for storing variables' values in the cache, | 
|---|
| 550 | and checking if they are the same after reading the cache.  Then we can add | 
|---|
| 551 | to the list of variables as we come across the need.  So far we want | 
|---|
| 552 | LD_LIBRARY_PATH and the internal variables for some of (all?) the args. | 
|---|
| 553 | From: roland@gnu.ai.mit.edu (Roland McGrath) | 
|---|
| 554 |  | 
|---|
| 555 | Hmm.  That list might include LD_LIBRARY_PATH, LD_RUN_PATH (for solaris), | 
|---|
| 556 | and PATH.  I can't think of any others so far. | 
|---|
| 557 | From: friedman@splode.com (Noah Friedman) | 
|---|
| 558 |  | 
|---|
| 559 | ------------------------------------------------------------------------------ | 
|---|
| 560 |  | 
|---|
| 561 | Every user running X11 usually has a directory like *X11* in his PATH | 
|---|
| 562 | variable. By replacing bin by include, you can find good places to | 
|---|
| 563 | look for the include files or libraries. | 
|---|
| 564 |  | 
|---|
| 565 | From: rcb5@win.tue.nl (Richard Verhoeven) | 
|---|
| 566 |  | 
|---|
| 567 | ------------------------------------------------------------------------------ | 
|---|
| 568 |  | 
|---|
| 569 | In most cases, when autoscan suggests something, using the search or | 
|---|
| 570 | index command into the Info reader for autoconf manual quickly | 
|---|
| 571 | explains me what the test is about.  However, for header files and | 
|---|
| 572 | functions, the search might fail, because the test is not of the | 
|---|
| 573 | specific kind.  The Autoconf manual should reflect somewhere all | 
|---|
| 574 | header files or functions (non-specific features, generally) | 
|---|
| 575 | triggering autoscan to generate tests, and tell in a few words what is | 
|---|
| 576 | the problem, and the suggested approach for a solution; that is, how | 
|---|
| 577 | one should use the result of testing the feature. | 
|---|
| 578 |  | 
|---|
| 579 | From: pinard@iro.umontreal.ca | 
|---|
| 580 |  | 
|---|
| 581 | ------------------------------------------------------------------------------ | 
|---|
| 582 |  | 
|---|
| 583 | It would be nice if the configure script would handle an option such as | 
|---|
| 584 | --x-libraries="/usr/openwin/lib /usr/dt/lib". | 
|---|
| 585 |  | 
|---|
| 586 | Rick Boykin <rboykin@cscsun3.larc.nasa.gov> | 
|---|
| 587 |  | 
|---|
| 588 | Under Solaris 2.4, the regular X includes and libs and the Motif | 
|---|
| 589 | includes and libs are in different places.  The Emacs configure script | 
|---|
| 590 | actually allows dir1:dir2:dir3 -- | 
|---|
| 591 |  | 
|---|
| 592 | if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then | 
|---|
| 593 | LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` | 
|---|
| 594 | LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` | 
|---|
| 595 | fi | 
|---|
| 596 | if test "${x_includes}" != NONE && test -n "${x_includes}"; then | 
|---|
| 597 | C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"` | 
|---|
| 598 | fi | 
|---|
| 599 |  | 
|---|
| 600 | ------------------------------------------------------------------------------ | 
|---|
| 601 |  | 
|---|
| 602 | What messages should be produced by default, if any? | 
|---|
| 603 |  | 
|---|
| 604 | Probably only the few most important ones, like which configuration | 
|---|
| 605 | name was used, whether X or Xt are in use, etc. The specific | 
|---|
| 606 | decisions, and progress messages, should be recorded on the terminal | 
|---|
| 607 | only if --verbose is used. | 
|---|
| 608 |  | 
|---|
| 609 | --silent just suppresses the "checking for...result" | 
|---|
| 610 | messages, not the "creating FOO" messages. | 
|---|
| 611 |  | 
|---|
| 612 | I think the default should be to suppress both. | 
|---|
| 613 | From: Richard Stallman <rms@gnu.ai.mit.edu> | 
|---|
| 614 |  | 
|---|
| 615 | There is no distinction now between | 
|---|
| 616 | important decisions (we have X) vs minor decisions (we have lstat). | 
|---|
| 617 | However, there are probably only a few things you deem important enough to | 
|---|
| 618 | announce and only those few things will need to be changed. | 
|---|
| 619 | Perhaps config.status could be written with comments saying what was | 
|---|
| 620 | decided. | 
|---|
| 621 | From: Roland McGrath <roland@gnu.ai.mit.edu> | 
|---|
| 622 |  | 
|---|
| 623 | ------------------------------------------------------------------------------ | 
|---|
| 624 |  | 
|---|
| 625 | Another thing I wish for is a macro which figures out which libraries are | 
|---|
| 626 | needed for BSD-style sockets.  AC_PATH_X already detects this | 
|---|
| 627 | correctly...so it's just a matter of separating out the socket-related code. | 
|---|
| 628 | From: "Joel N. Weber II" <nemo@koa.iolani.honolulu.hi.us> | 
|---|
| 629 |  | 
|---|
| 630 | ------------------------------------------------------------------------------ | 
|---|
| 631 |  | 
|---|
| 632 | in order to use the AC_CANONICAL_SYSTEM macro, I have to have | 
|---|
| 633 | install-sh somewhere nearby --- why is this?  I have no real reason to | 
|---|
| 634 | distribute install-sh, other than that its absence breaks this code. | 
|---|
| 635 |  | 
|---|
| 636 | Shouldn't the above loop be looking for config.sub and config.guess? | 
|---|
| 637 | From: jimb@totoro.bio.indiana.edu (Jim Blandy) | 
|---|
| 638 |  | 
|---|
| 639 | adding AC_CANONICAL_HOST to my configure.in script caused | 
|---|
| 640 | all sorts of odd/unexplained errors.  Obviously, I had to go | 
|---|
| 641 | get copies of config.guess, config.sub and install-sh from the | 
|---|
| 642 | autoconf distribution, but the error messages and autoconf docs | 
|---|
| 643 | didn't explain that very well. | 
|---|
| 644 | From: bostic@bsdi.com (Keith Bostic) | 
|---|
| 645 |  | 
|---|
| 646 | ------------------------------------------------------------------------------ | 
|---|
| 647 |  | 
|---|
| 648 | Perhaps also have AC_TRY_COMPILER try to link an invalid program, and | 
|---|
| 649 | die if the compiler seemed to succeed--in which case it's not usable | 
|---|
| 650 | with autoconf scripts. | 
|---|
| 651 |  | 
|---|
| 652 | ------------------------------------------------------------------------------ | 
|---|
| 653 |  | 
|---|
| 654 | Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software | 
|---|
| 655 | Foundation, Inc. | 
|---|
| 656 |  | 
|---|
| 657 | This file is part of GNU Autoconf. | 
|---|
| 658 |  | 
|---|
| 659 | GNU Autoconf is free software; you can redistribute it and/or modify | 
|---|
| 660 | it under the terms of the GNU General Public License as published by | 
|---|
| 661 | the Free Software Foundation; either version 2, or (at your option) | 
|---|
| 662 | any later version. | 
|---|
| 663 |  | 
|---|
| 664 | GNU Autoconf is distributed in the hope that it will be useful, | 
|---|
| 665 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
| 666 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|---|
| 667 | GNU General Public License for more details. | 
|---|
| 668 |  | 
|---|
| 669 | You should have received a copy of the GNU General Public License | 
|---|
| 670 | along with autoconf; see the file COPYING.  If not, write to | 
|---|
| 671 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 
|---|
| 672 | Boston, MA 02110-1301, USA. | 
|---|