AutoMake 条件编译问题

em7*_*m70 2 automake

我正在尝试在 automake 中执行此操作

platform=$(uname)
ifeq ($(platform), Darwin)
    stmt = ...
else
    stmt1 = ...
endif
Run Code Online (Sandbox Code Playgroud)

但我得到

错误:没有如果

错误:endif 没有 if

我究竟做错了什么?

pto*_*ato 5

  • 删除缩进,以便所有语句都从第 1 列开始。
  • 使用 Automake 条件语句,您首先必须在配置脚本中定义一个条件变量,如下所示:

    AM_CONDITIONAL([DARWIN], [test $(uname) -eq "Darwin"])
    
    Run Code Online (Sandbox Code Playgroud)

    然后在 Automake 文件中,执行以下操作:

    if DARWIN
    stmt = ...
    else
    stmt1 = ...
    endif
    
    Run Code Online (Sandbox Code Playgroud)

或者,只需在 bash 脚本中编写 if 语句作为 Automake 文件中规则的主体。