首页 > 解决方案 > 如果在 .dep.inc 文件中,则为多余的结尾

问题描述

我正在给 Jenkins 一份工作,通过make file. 如果在 .dep.inc 文件中显示无关端的错误,我试图更改 net beans 的配置。

该文件是从 net beans 中自动生成的 make 文件生成的。在 net beans 中它正在编译,但在 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

标签: jenkinsnetbeansmakefilenetbeans-7preprocessor

解决方案


您正在使用 BASH 语法而不是 Makefile。一种选择可能是使用 Makefile 的条件结构:Makefile 的 条件部分

另一种方法是在同一行中定义整个 BASH 指令,如下所示:

if [ <condition>]; then <action1>; else <action2>; fi

在 Makefile 中,目标的每一行都可以是一个 SHELL,但不应拆分它们。

最后,您可以使用“定义”环境插入 BASH 代码:

define <name>=
<BASH code>
<...>
<name>: ; @$(value <name>)
.ONESHELL

希望对你有帮助!


推荐阅读