【问题标题】:Fail in make (gmake)制作失败(gmake)
【发布时间】:2014-10-29 02:45:42
【问题描述】:

我的 GNU Makefile 中有一堆变量,用户可能会更改它们的值。如果其中一些值没有任何意义,我希望 Makefile 在开始执行之前失败。

例如:

FOODIR=foo
BARDIR=bar

没关系,但如果用户将其设置为

FOODIR=foo
BARDIR=foo

我希望 Makefile 失败。我正在寻找正确的语法来做到这一点。比如:

ifeq ($(FOODIR),$(BARDIR))
    exit 1;
endif

但这不起作用。这样做的最佳方法是什么?

【问题讨论】:

    标签: makefile gnu-make


    【解决方案1】:

    Makefile 不是 shell 脚本;你不能使用像exit这样的shell命令。

    您可以使用 GNU make 函数 $(error ...)(如果您的 GNU make 足够新):

    ifeq ($(FOODIR),$(BARDIR))
        $(error FOODIR is the same as BARDIR: $(FOODIR))
    endif
    

    【讨论】:

    • 呃,你是对的,手册中的第 8.12 节。 gnu.org/software/make/manual/make.html
    • 请记住,网站上的手册版本记录了当前的最新版本(GNU make 4.1)。如果版本较旧,您的版本可能不具有所有相同的功能/行为。您应该查看随您所拥有的任何版本的 GNU 提供的手册。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2013-11-08
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多