autoconf:如果和m4_if我应该总是使用AS_IF吗?

时间:2013-01-06 21:46:32

标签: shell autoconf m4

autoconf手册建议使用AS_IF代替if,但不提及m4_ifAS_IF还应优先于m4_if吗?

本手册的"Limitations of Builtins"部分说明了使用AS_IF的可移植性,但AC_REQUIRE description表示要使用它来扩展所需的宏。

我应该始终使用AS_IF吗?答案似乎是肯定的,但我再次看到ifm4_if在其他宏中使用。什么时候可以不使用AS_IF

2 个答案:

答案 0 :(得分:3)

我对此感到困惑,因为我没有意识到if / AS_IFm4_if之间的根本区别。正常的ifAS_IF会在用户运行脚本时评估其条件,即configure。相反,m4_if在宏扩展期间有条件评估,即autoreconf

if / AS_IF会影响脚本的流程。 m4_if会影响脚本的内容。

现在这似乎很明显,但我起初并没有得到它。希望这有助于其他人。

答案 1 :(得分:2)

AS_IF的另一个好处是,当它扩展时,分支中宏所需的任何宏都会在测试之前展开。

请参阅the manual