tprk77
tprk77

Reputation: 1171

autoconf: should I always use AS_IF over if and m4_if?

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

Answers (2)

tprk77
tprk77

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

Jack Kelly
Jack Kelly

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

Related Questions