[Top][All Lists]

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

Re: AC_PATH_PROGS_FEATURE_CHECK results in namespace invasion

From: Peter Rosin
Subject: Re: AC_PATH_PROGS_FEATURE_CHECK results in namespace invasion
Date: Thu, 27 Feb 2014 02:00:28 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

On 2014-02-27 01:38, Russ Allbery wrote:
> Peter Rosin <address@hidden> writes:
>> On 2014-02-27 01:20, Russ Allbery wrote:
>>> Wouldn't you name the variable FOO_FEATURE?  In other words, I think
>>> the example in the Autoconf manual is not the best, but the
>>> functionality you need is there.  I would rewrite the example as:
>>>     AC_CACHE_CHECK([for m4 that supports indir], [ac_cv_path_M4_indir],
>>>       [AC_PATH_PROGS_FEATURE_CHECK([M4_indir], [m4 gm4],
>>>           ...
>>>     AC_SUBST([M4], [$ac_cv_path_M4_indir])
>> That doesn't work, because then you can't shortcut the test with the
>> natural M4=/some/gnu/place/m4, you'd be forced to write M4_indir=...
>> instead. This is even worse than saving the ac_cv_path_FOO variable
>> during the AC_PATH_PROGS_FEATURE_CHECK macro, since it would be visible
>> to the end user.
> Good point.  However, couldn't you just put:
>     : ${ac_cv_path_M4_indir:=$M4}
> before the above code?

Good point. Or put

        : ${M4_indir:=$M4}

just before AC_PATH_PROGS_FEATURE_CHECK... Ho humm, which is best? Do I
want to see (cached) when overriding in the environment? Or not?

All this is too easy to get wrong in my opinion, and the manual would
certainly benefit from some clarification. The source code comment for
AC_PATH_PROGS_FEATURE_CHECK in autoconf even has the wording "It is
recommended, but not required, that the user also use
AC_ARG_VAR([VARIABLE])", which certainly is not suggesting that one
should use FOO_FEATURE instead of just FOO as variable.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]