通过automake检查make中的环境变量

2024-01-27

有没有办法让条件通过 automake,以便稍后将其传递到生成的 Makefile.in 和 Makefile?

我检查 JAVA_HOME 是否在 Makefile 的环境中定义

ifeq (undefined,$(origin JAVA_HOME))
#CALL with defaults
else
#CALL according to the variable
endif

但是当我使用 automake 在 Makefile.am 中处理这个问题时,出现两个错误:

else without if
endif without if

看起来 automake 没有消化 ifeq。有没有办法通过它传递这个(如果这样做有意义的话),或者是否有另一种自动工具友好的方式来获得相同的结果?

这个想法还允许在运行 make 之前设置/更改变量,以轻松针对不同的 JDK。


我认为正确的方法是:

Rely on $(JAVA_HOME)被设置在Makefile.am并确保为它设置一个合理的值configure.

回答书面问题:

Because automake想要生成适用于 POSIX make 的 Makefile,但它与 GNU-make 条件语句的配合不太好。

所以你做测试configure.ac:

AC_SUBST([JAVA_HOME])
AM_CONDITIONAL([JAVA_HOME_SET], [test ! -z "$JAVA_HOME"])

然后在Makefile.am中:

if JAVA_HOME_SET
## Something that relies on JAVA_HOME
else
## Defaults
endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过automake检查make中的环境变量 的相关文章

随机推荐