Reputation: 1171
The autoconf manual suggest using AS_IF
instead of if
, but it doesn't mention m4_if
. Should AS_IF
also be preferred over m4_if
?
The "Limitations of Builtins" section of the manual says to use AS_IF
for it's portability, but the AC_REQUIRE
description says to use it to expand required macros.
Should I always use AS_IF
? The answer seems to be yes, but then again I see if
and m4_if
being used in other macros. When is it ok not to use AS_IF
?
Upvotes: 6
Views: 1313
Reputation: 1171
I was confused about this because I didn't realize the fundamental difference between if
/AS_IF
and m4_if
. The normal if
and AS_IF
have their conditionals evaluated when the user runs the script, i.e. configure
. Conversely, m4_if
has its conditional evaluated during macro expansion, i.e. autoreconf
.
if
/AS_IF
affects the flow of the script. m4_if
affects the contents of the script.
This seems obvious now, but I didn't get it at first. Hopefully this helps someone else.
Upvotes: 4
Reputation: 18667
The other benefit of AS_IF is that when it expands, any macros that are required by macros in the branches are expanded before the test.
See the manual.
Upvotes: 2