【发布时间】:2018-02-18 17:16:05
【问题描述】:
我正在尝试获取 Makefile 中的 if else 语法
TYPE=src
RTL=src
program_%:
ifeq ($(TYPE),$(RTL))
echo "RTL"
else
echo "Test"
endif
这里是命令行
$make -f test.make prog_src
我在输出中得到以下内容
echo "RTL"
RTL
但是,当我更改 if 语句,而不是硬编码变量时,我会执行类似的操作
program_%:
ifeq ($(TYPE),$*)
echo "RTL"
else
echo "Test"
endif
然后运行如下
$make -f test.make prog_src
我得到了错误的子句评估
echo "Test"
Test
【问题讨论】:
-
ifeq和endif是 only 语法。您不能在由 bash 评估的 makefile 的任何部分中使用它,而不是通过 make。 -
@CharlesDuffy 从代码中删除了 /bin/bash。现在它是如何工作的?
-
@CharlesDuffy 我做到了,还根据stackoverflow.com/questions/4483313/…格式化了代码
标签: bash if-statement gnu-make