有没有办法让条件传递给automake,以便稍后将其传递给生成的Makefile.in和Makefile?
我检查是否在Makefile中使用
在环境中定义了JAVA_HOMEifeq (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。有没有办法通过它传递它(如果这样做有意义),还是有另一种autotools友好的方式来获得相同的结果?
这个想法也是允许在运行make之前设置/更改变量以轻松定位不同的JDK。
答案 0 :(得分:3)
依靠在$(JAVA_HOME)
中设置的Makefile.am
,并确保configure
设置合理的值。
因为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