[3092] | 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.
|
---|