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?
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With