【问题标题】:Makefile get calling rule nameMakefile 获取调用规则名称
【发布时间】:2020-10-05 14:36:58
【问题描述】:

我正在尝试创建一个 makefile,因此调用它时的语法将是 make releasemake debug

为此,我编写了以下 makefile:

release debug: mode := $@
release debug: build

build:
    *** actual build commands using $(mode) ***

但在制作过程中,当达到build规则时,$(mode)似乎是空的。

是否有更好/正确的构建调试和发布二进制文件?

【问题讨论】:

标签: makefile gnu-make


【解决方案1】:

“$@”自动变量仅在构建目标时可用。评估规则时它没有值。因此,在执行该行期间未设置“$@”:

release debug: mode := $@

考虑为“构建”和“发布”设置规则

release debug:
        $(MAKE) build mode=$@

build:

或者替代方案(我认为不太直观,但更有效):

release: mode=release
debug: mode=debug

build:
    ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2014-08-25
    相关资源
    最近更新 更多