automake 环境变量条件

Sam*_*uel 3 automake conditional makefile autotools environment-variables

我有一个文件 Makefile.am 我用来生成一个 Makefile。在生成的 Makefile 中,我想要这样的东西:

ifndef SOURCECODEPATH
   SOURCECODEPATH := /home/root/source_code_path
endif
Run Code Online (Sandbox Code Playgroud)

看起来很简单,有人知道我该怎么做吗?

Bre*_*ale 6

中使用AM_CONDITIONALconfigure.ac

该脚本设置了一个您可以测试的变量,例如,如果启用条件,则设置为非空的变量: AM_CONDITIONAL([ENABLE_SOURCECODEPATH], [test "x$ac_srcpath" != "x"])

然后在Makefile.am

if !ENABLE_SOURCECODEPATH
SOURCECODEPATH = ...
endif
Run Code Online (Sandbox Code Playgroud)

但是,由于您在未定义的情况下明确定义了变量,因此您应该configure.ac无论如何都应该定义它,使用AC_SUBST(SRCPATH, $ac_srcpath)

SOURCECODEPATH = @SRCPATH@ # or $(SRCPATH)
Run Code Online (Sandbox Code Playgroud)