home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / autoconf-2.10-src.tgz / tar.out / fsf / autoconf / TODO < prev   
Text File  |  1996-09-24  |  13KB  |  331 lines

  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
  6.  
  7. ------------------------------------------------------------------------------
  8.  
  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
  15.   were checked for.
  16.  
  17. ------------------------------------------------------------------------------
  18.  
  19. * Add AC_PROG_CC_POSIX to replace the current ad-hoc macros for AIX,
  20.   Minix, ISC, etc.
  21.  
  22. ------------------------------------------------------------------------------
  23.  
  24. * Use AC_EGREP_CPP instead of AC_TRY_LINK to detect structures and members.
  25.  
  26. ------------------------------------------------------------------------------
  27.  
  28. * Make AC_CHECK_FUNC[S] automatically use any particular macros for the
  29.   listed functions.
  30.  
  31. ------------------------------------------------------------------------------
  32.  
  33. * Support creating both config.h and DEFS in the same configure.
  34.  
  35. ------------------------------------------------------------------------------
  36.  
  37. * Select the right CONFIG_SHELL automatically (for Ultrix, Lynx especially.)
  38.  
  39. ------------------------------------------------------------------------------
  40.  
  41. * Doc: Add concept index.
  42.  
  43. ------------------------------------------------------------------------------
  44.  
  45. * Doc: Centralize information on POSIX, MS-DOS, cross-compiling, and
  46.   other important topics.
  47.  
  48. ------------------------------------------------------------------------------
  49.  
  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.
  55.   There has also been a report that HPUX and OSF/1 seds only allow 100
  56.   commands.
  57.  
  58. ------------------------------------------------------------------------------
  59.  
  60. * Allow [ and ] in egrep patterns and AC_DEFINE args.
  61.  
  62. ------------------------------------------------------------------------------
  63.  
  64. * Add a Makefile generator that supports the standard GNU targets.
  65.   (Being worked on.)
  66.  
  67. ------------------------------------------------------------------------------
  68.  
  69. * Mike Haertel's suggestions:
  70.  
  71. ** Provide header files containing decls for alloca, strings, etc.
  72.  
  73. ** Cross compiling:
  74.  
  75. *** Error messages include instructions for overriding defaults using
  76. config.site.
  77.  
  78. *** Distribute a config.site corresponding to a hypothetical bare POSIX system with c89.
  79.  
  80. *** Cache consistency checking: ignore cache if environment
  81. (CC or PATH) differs.
  82.  
  83. ** Site defaults:
  84.  
  85. *** 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.
  86.  
  87. ------------------------------------------------------------------------------
  88.  
  89. * autoscan: Tell the files that caused inclusion of each macro,
  90. in a dnl comment.  (Seems to be hard.)
  91.  
  92. ------------------------------------------------------------------------------
  93.  
  94. * Look at user contributed macros:
  95.     prototypes
  96.     IEEE double precision math
  97.     shared libraries
  98.  
  99. ------------------------------------------------------------------------------
  100.  
  101. For AC_TYPE_SIGNAL signal handlers, provide a way for code to know
  102. whether to do "return 0" or "return" (int vs void) to avoid compiler
  103. warnings.  (Roland McGrath)
  104.  
  105. ------------------------------------------------------------------------------
  106.  
  107. In config.status comment, put the host/target/build types, if used.
  108.  
  109. ------------------------------------------------------------------------------
  110.  
  111. Support a way of including makefile fragments that then have @var@
  112. substitutions done on them.
  113.  
  114. ------------------------------------------------------------------------------
  115.  
  116. Have AC_CANONICAL_* cache the host/build/target types.
  117. They have to be overridden by the command line arguments,
  118. just as for X includes and libraries.  Should they be cached
  119. all in one variable, or three?  In that case, what if only one
  120. or two of the cache variables are set?
  121.  
  122. ------------------------------------------------------------------------------
  123.  
  124. Look at contributions:
  125.     ac_include (Karl Berry)
  126.     aclocal.h tom@basil.icce.rug.NL (Tom R.Hageman)
  127.  
  128. ------------------------------------------------------------------------------
  129.  
  130.      The argument HELP-STRING is a description of the option which
  131.      ...
  132.      Avoid tabs in the help string.  You'll need to enclose it in `['
  133.      and `]' in order to produce the leading spaces.
  134.  
  135. Except that [...] is the convention for telling the user the default,
  136. So I guess a changequote(`,') or something would be in order in some cases.
  137. From: "K. Berry" <kb@cs.umb.edu>
  138.  
  139. ------------------------------------------------------------------------------
  140.  
  141. The default of unlimited permission is fine, but there should be some easy
  142. way for configure to have copyright terms passed through from configure.in.
  143. Maybe AC_LICENSE([...]).
  144. From: roland@gnu.ai.mit.edu (Roland McGrath)
  145.  
  146. ------------------------------------------------------------------------------
  147.  
  148. autoconf-2.1 AC_EGREP_HEADER does not work if [square brackets] 
  149. are used in the egrep pattern.  This makes egrep fairly useless to
  150. find, for example, a space or tab followed by something.
  151.  
  152. Putting changequotes around the PATTERN parameter makes no difference.
  153. -Jim Avera (jima@netcom.com)
  154.  
  155. ------------------------------------------------------------------------------
  156.  
  157. AC_MSG_CHECKING([checking for ANSI #stringize])
  158. AC_REVISION([ #(@) revision 2.1 ])
  159.  
  160. causes bogus code to be generated for whatever immediately follows.  The
  161. problem goes away if the '#' is removed.  Probably the macros are not
  162. disabling the m4 "comment" feature when processing user-supplied strings.
  163. -Jim Avera jima@netcom.com
  164.  
  165. ------------------------------------------------------------------------------
  166.  
  167. on hal.gnu.ai.mit.edu, configure is getting the wrong answer for
  168. AC_CHECK_FUNCS(select).
  169.  
  170. The problem here is that there's severe namespace pollution: when
  171. conftest.c includes <ctype.h> to pick up any __stub macro definitions,
  172. it's getting a prototype declaration for select(), which collides
  173. with the dummy declaration in conftest.c.  (The chain of includes
  174. is conftest.c -> <ctype.h> -> <sys/localedef.h> -> <sys/lc_core.h>
  175. -> <sys/types.h> -> <sys/select.h>.)
  176.  
  177.     #define $ac_func __dummy_$ac_func
  178.     #include <ctype.h>
  179.     #undef $ac_func
  180. From: kwzh@gnu.ai.mit.edu (Karl Heuer)
  181.  
  182. ------------------------------------------------------------------------------
  183.  
  184. put all the config.* stuff somewhere like config/?
  185. All these extraneous files sure clutter up a toplevel directory.
  186. From: "Randall S. Winchester" <rsw@eng.umd.edu>
  187.  
  188. ------------------------------------------------------------------------------
  189.  
  190. It would be nice if I could (in the Makefile.in files) set
  191. the path to config.h. You have config.h ../config.h ../../config.h's all 
  192. over the place, in the findutils-4.1 directory.
  193. From: "Randall S. Winchester" <rsw@eng.umd.edu>
  194.  
  195. ------------------------------------------------------------------------------
  196.  
  197. In libc and make in aclocal.m4 I have AC_CHECK_SYMBOL, which checks for
  198. sys_siglist et al.  Using AC_CHECK_FUNC doesn't work on some system that
  199. winds up caring that you reference it as a function and it is really a
  200. variable.  My version always declares the symbol as a char *[]; if that
  201. ends up a bad idea, we can have it take an arg with the C decl, but that is
  202. a bit verbose to write if it's actually superfluous.
  203. From Roland McGrath.
  204. [I'd call it AC_CHECK_VAR, I think. -djm]
  205.  
  206. ------------------------------------------------------------------------------
  207.  
  208. In a future version (after 2.2), make AC_PROG_{CC,RANLIB,anything else}
  209. use AC_CHECK_TOOL.
  210. From Roland McGrath.
  211.  
  212. ------------------------------------------------------------------------------
  213.  
  214.     ls -lt configure configure.in | sort
  215. doesn't work right if configure.in is from a symlink farm, where the
  216. symlink has either a timestamp of its own, or under BSD 4.4, it has
  217. the timestamp of the current directory, neither of which
  218. helps. Changing it to
  219.     ls -Llt configure configure.in | sort
  220. works for me, though I don't know how portable that is
  221. _Mark_ <eichin@cygnus.com>
  222.  
  223. ------------------------------------------------------------------------------
  224.  
  225. Here is the thing I would like the most;
  226. AC_PKG_WITH(PACKAGE, HELP_STRING, PACKAGE-ROOT, PACKAGE-LIBS, PACKAGE-DEFS,
  227.     PACKAGE-CCPFLAGS)
  228. like
  229.  
  230. AC_PKG_WITH(kerberos,,/usr/local/athena,-lkrb -ldes,[KERBEROS KRB4 
  231. CRYPT],include)
  232. AC_PKG_WITH(hesiod,
  233. [if hesiod is not in kerberos-root add --with-hesiod-root=somewhere]
  234. ,,-lhesiod,HESIOD,,)
  235. AC_PKG_WITH(glue,,,-lglue,GLUE,,)
  236. AC_PKG_WITH(bind,,/usr/local/bind, [lib/resolv.a lib/lib44bsd.a], ,include)
  237. After the apropriate checks, the existance of the paths, and libs and such
  238. LIBS=$LIBS $PKG-LIBS
  239. DEFS=$DEFS $PKG-DEFS
  240. CPPFLAGS=$PKG-CPPFLAGS $CPPFLAGS
  241. $PKG-ROOT=$PKG-ROOT
  242. The cppflags should reverse the order so that you can have;
  243. -I/usr/local/bind/include -I/usr/local/athena/include
  244. and
  245. -L/usr/local/athena/lib -lkrb -ldes /usr/local/bind/lib/libresolv.a
  246. as order matters.
  247.  
  248. also an AC_PKG_CHK_HEADER
  249. and an AC_PKG_CHK_FUNCTION
  250. so one can give alternate paths to check for stuff ($PKG-ROOT/lib for 
  251. example)
  252. From: Randall Winchester
  253.  
  254. ------------------------------------------------------------------------------
  255.  
  256. AC_C_CROSS assumes that configure was
  257. called like 'CC=target-gcc; ./configure'. I want to write a package
  258. that has target dependent libraries and host dependent tools. So I
  259. don't like to lose the distinction between CC and [G]CC_FOR_TARGET. 
  260. AC_C_CROSS should check for equality of target and host.
  261.  
  262. It would be great if 
  263.  
  264. GCC_FOR_TARGET
  265. AR_FOR_TARGET
  266. RANLIB_FOR_TARGET
  267.  
  268. would be set automatically if host != target.
  269. AC_LANG_CROSS_C would be nice too, to check header files
  270. etc. with GCC_FOR_TARGET instead of CC
  271.  
  272. Here is one simple test
  273.  
  274. if test "x$host" != "x$target"; then
  275. AC_PROGRAMS_CHECK(AR_FOR_TARGET, $target-ar, $target-ar, ar)
  276. AC_PROGRAMS_CHECK(RANLIB_FOR_TARGET, $target-ranlib, $target-ranlib, ranlib)
  277. AC_PROGRAMS_CHECK(GCC_FOR_TARGET, $target-gcc, $target-gcc, gcc)
  278. fi
  279.  
  280. This could be improved to also look for gcc in PATH, but require the
  281. prefix to contain the target e.g.:
  282.  
  283. target=m68k-coff -->GCC_FOR_TARGET = /usr/gnu/m68k-coff/bin/gcc
  284.  
  285. From: nennker@cs.tu-berlin.DE (Axel Nennker)
  286.  
  287. ------------------------------------------------------------------------------
  288.  
  289. The problem occurs with the following libc functions in SunOS 5.4:
  290.  
  291.     fnmatch glob globfree regcomp regexec regerror regfree wordexp wordfree
  292.  
  293. It also occurs with a bunch more libposix4 functions that most people
  294. probably aren't worried about yet, e.g. shm_open.
  295.  
  296. All these functions fail with errno set to ENOSYS (89)
  297. ``Operation not applicable''.
  298.  
  299. Perhaps autoconf should have a
  300. specific macro for fnmatch, another for glob+globfree, another for
  301. regcomp+regexec+regerror+regfree, and another for wordexp+wordfree.
  302. This wouldn't solve the problem in general, but it should work for
  303. Solaris 2.4.  Or autoconf could limit itself to fnmatch and regcomp,
  304. the only two functions that I know have been a problem so far.
  305.  
  306. From Paul Eggert.
  307.  
  308. ------------------------------------------------------------------------------
  309.  
  310. Make easy macros for checking for X functions and libraries.
  311.  
  312. ------------------------------------------------------------------------------
  313.  
  314. Testing for ANSI header files (AC_HEADER_STDC) fails under linux when
  315. using the latest libraries (libc-4.6.30, at least libc-4.6.27 works
  316. ok) when LC_CTYPE is set to ISO-8859-1. The islower/toupper test
  317. reports errors.
  318. Anyway, adding a line like 
  319. if test "${LC_CTYPE+set}"   = set; then LC_CTYPE=C;   export LC_CTYPE;   fi
  320. to the configure script can solve the problem.
  321. From: tom@vlsivie.tuwien.ac.AT (Thomas Winder)
  322.  
  323. ------------------------------------------------------------------------------
  324.  
  325. * Test suite: more things to test:
  326. ** That the shell scripts produce correct output on some simple data.
  327. ** Configuration header files.  That autoheader does the right thing,
  328.    and so does AC_CONFIG_HEADER when autoconf is run.
  329.  
  330. ------------------------------------------------------------------------------
  331.