* Ben Pfaff wrote on Thu, May 25, 2006 at 08:42:30PM CEST: > Debian Bug #179086 (CC'd) states the following: > > I have code like > > ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ > -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` > AC_DEFINE_UNQUOTED($ac_tr_lib) > > which, is intended to define certain preprocessor variables > depending on the value it is given.
It does > Under recent versions of > autoconf, there is no acconfig.h This is true. > so the information it would > have provided is now provided by autoheader. This conclusion is not right. There exist AH_TOP, AH_BOTTOM, AH_TEMPLATE, and AH_VERBATIM now. > According to the autoconf manual, AC_DEFINE_UNQUOTED is able > to handle variables as its first argument. Yet it appears it > cannot. Perhaps autoheader must extrapolate what possible > values will be defined, and it just fails to do that here. > Regardless, the result is that the value does not get > defined, causing (in this case) an obscure bug. > > I believe that this is a documentation bug. Yes, but not in the way that your change suggests: autoheader cannot do its job with an AC_DEFINE_UNQUOTED which gets a non-literal first argument. But the rest of the machinery very well can, and it has explicit code in place to cope with non-literal first argument. We even have an example in the manual that does this. You simply need to provide a template elsewhere. * Paul Eggert wrote on Sat, May 27, 2006 at 02:05:54AM CEST: > Ben Pfaff <[EMAIL PROTECTED]> writes: > > > I believe that the second mention of @code{AC_DEFINE} should be > > followed by "or @code{AC_DEFINED_UNQUOTED}". > > Thanks; I installed a patch for that. The ChangeLog entry states: | * doc/autoconf.texi (autoheader Invocation): Mention that the | first arg of AC_DEFINE_UNQUOTED must not be a literal. | Problem reported by Ben Pfaff in | <http://lists.gnu.org/archive/html/bug-autoconf/2006-05/msg00090.html>. The `not' is wrong. I suggest the following change: * doc/autoconf.texi (autoheader Invocation): There is no need that the first argument to `AC_DEFINE_UNQUOTED' be a literal. Clarify this and add a footnote to what else is needed. Index: ChangeLog =================================================================== RCS file: /cvsroot/autoconf/autoconf/ChangeLog,v retrieving revision 1.2912 diff -u -r1.2912 ChangeLog --- ChangeLog 27 May 2006 03:21:15 -0000 1.2912 +++ ChangeLog 27 May 2006 12:04:27 -0000 @@ -17,7 +17,7 @@ changes, since MKDIR_P now might end in "/mkdir -p". * doc/autoconf.texi (autoheader Invocation): Mention that the - first arg of AC_DEFINE_UNQUOTED must not be a literal. + first arg of AC_DEFINE_UNQUOTED must be a literal. Problem reported by Ben Pfaff in <http://lists.gnu.org/archive/html/bug-autoconf/2006-05/msg00090.html>. Index: doc/autoconf.texi =================================================================== RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v retrieving revision 1.1028 diff -u -r1.1028 autoconf.texi --- doc/autoconf.texi 27 May 2006 02:54:33 -0000 1.1028 +++ doc/autoconf.texi 27 May 2006 12:04:27 -0000 @@ -2889,9 +2889,12 @@ @code{AC_DEFINE} or one @code{AC_DEFINE_UNQUOTED} call with a third argument for each symbol (@pxref{Defining Symbols}). An additional constraint is that the first argument of @code{AC_DEFINE} -or @code{AC_DEFINE_UNQUOTED} must be a -literal. Note that all symbols defined by Autoconf's builtin tests are -already documented properly; you only need to document those that you +or @code{AC_DEFINE_UNQUOTED} must be a literal; if not, the user +needs to make sure a suitable template for the definition is in [EMAIL PROTECTED] may be achieved by using @code{AH_VERBATIM}, or +supplying a suitable input file for a subsequent configuration header +file, for example.} Note that all symbols defined by Autoconf's builtin tests +are already documented properly; you only need to document those that you define yourself. You might wonder why @command{autoheader} is needed: after all, why -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]