我正在为詹金斯(Jenkins)提供工作,以通过make file
为我的代码构建二进制文件。如果在.dep.inc文件中,它显示无关的错误,我试图更改Net Bean的配置。
此文件是从Net Bean中的自动生成的Make文件中生成的。在Net Bean中,它正在编译,但在Jenkins中,它正在显示错误。*
# dependency checking support
.depcheck-impl:
@echo "# This code depends on make tool being used" >.dep.inc
@if [ -n "${MAKE_VERSION}" ]; then \
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
echo "include \$${DEPFILES}" >>.dep.inc; \
echo "endif" >>.dep.inc; \
else \
echo ".KEEP_STATE:" >>.dep.inc; \
echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
fi
答案 0 :(得分:0)
您正在使用BASH语法而不是Makefile。一种选择是使用Makefile的条件结构: Conditional Parts of Makefiles
另一种方法是在同一行中定义整个BASH指令,如下所示:
if [ <condition>]; then <action1>; else <action2>; fi
在Makefile中,目标的每一行都可以是SHELL,但是您不应拆分它们。
最后,您可以使用“定义”环境插入BASH代码:
define <name>=
<BASH code>
<...>
<name>: ; @$(value <name>)
.ONESHELL
希望您发现它有用!