[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: m4: use AC_SUBST with two arguments when applicable
From: |
Akim Demaille |
Subject: |
Re: m4: use AC_SUBST with two arguments when applicable |
Date: |
Sun, 10 May 2020 14:22:05 +0200 |
Hi Bruno,
> Le 10 mai 2020 à 14:17, Bruno Haible <address@hidden> a écrit :
>
> Hi Akim,
>
>> gl_SUBSTS([
>> GNULIB_ISWBLANK=0
>> GNULIB_ISWDIGIT=0
>> GNULIB_ISWXDIGIT=0
>> GNULIB_WCTYPE=0
>> GNULIB_ISWCTYPE=0
>> GNULIB_WCTRANS=0
>> GNULIB_TOWCTRANS=0
>> ])
>>
>> which does not, to my eyes, suffer from all the defects you see.
>
> Yes, it does not degrade the ability to search for assignments.
>
> But it goes against the general processing of Autoconf:
>
> For an Autoconf macro, the input consists of identifier and shell statements.
> The output is shell, and the shell statements given as arguments appear
> in the output, unmodified except for m4 substitutions. Instead of a simple
> shell statement, I can always use a complex shell statement instead. E.g.
> AM_CONDITIONAL([WINDOWS_NATIVE], [test $is_windows_native = yes])
>
> gl_SUBSTS would analyze its shell statement arguments. Other Autoconf
> macros don't do this.
Some do. AC_CHECK_MEMBER comes to my mind.
> It is not clear what would be the result of
> gl_SUBSTS([
> if test $use_ctype_modules = yes; then
> GNULIB_ISBLANK=0
> fi
> if test $use_wctype_modules = yes; then
> GNULIB_ISWBLANK=0
> fi
> ])
That would be ill-defined. We could even make it a compile time error.