Re: Problem using AC_LANG_PROGRAM with AC_EGREP_CPP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Allan Caffee on 3/30/2009 8:12 AM:
>>>> My invocation of AC_EGREP_CPP looks like this:
>>>>
>>>>         AC_EGREP_CPP([HAVE_GL_GLU_H], [AC_LANG_PROGRAM([[foo]], [[bar]])],
>>>>                      [OPENVRML_HAVE_GL_GLU_H=1],
>>>>                      [OPENVRML_HAVE_GL_GLU_H=0])
>>> In isolation, I don't see any quoting problems with this example.  But I'm
>>> almost certain you didn't copy and paste from your configure.ac, so maybe
>>> in the rewrite for this email, you changed the quoting?
> 
> AC_EGREP_CPP([HAVE_GL_GLU_H], AC_LANG_PROGRAM([[foo]], [[bar]]),
> 	[OPENVRML_HAVE_GL_GLU_H=1],
> 	[OPENVRML_HAVE_GL_GLU_H=0])
> 
> I'm no Autoconf expert but isn't the way it was presented before
> overquoted?  IIRC one layer of quoting is removed for each macro
> expansion.  Doesn't this mean that quoting AC_LANG_PROGRAM would cause
> it to be passed to AC_EGREP_CPP literally?  Perhaps I'm
> misunderstanding.

Ouch.  AC_EGREP_CPP double-quotes its arguments, putting it in the same
category as other macros like AC_TRY_COMPILE which have been marked
obsolete because double-quoting is a bad default.  AC_PREPROC_IFELSE has
saner semantics, but the source code reveals that indeed, you have to
underquote your second argument to AC_EGREP_CPP since AC_EGREP_CPP
overquotes it under the hood.  I'm not sure what to do about this besides
improving the documentation, marking AC_EGREP_CPP as obsolete, and
providing a better replacement that doesn't need quite as much effort as
AC_PREPROC_IFELSE to make grepping preprocessor output easy.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             ebb9@xxxxxxx
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAknQ/I0ACgkQ84KuGfSFAYAJkgCgglH1r/2+kE/mI/r8YiOHL5a7
5EEAoLkrM5m5+xIcpkDRMWTRUtIKIC9m
=ZRr/
-----END PGP SIGNATURE-----


_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf

[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux