【问题标题】:make variables that depend on a target创建依赖于目标的变量
【发布时间】:2014-08-01 06:58:29
【问题描述】:

我在 make 中有一个变量,它依赖于必须在设置变量之前构建的文件,有没有办法让它工作?

parsable_file: dependancies
    commands to make parsable_file
targets=$(shell parse_cmd parsable_file)
$(targets): parsable_file
    command to make targets
.phony: all
all:$(targets)

如果我运行$ make parsable_file && make all,这将起作用(我得到一个错误,parse_cmd 找不到 parsable_file 但它起作用),但只是让一切都不起作用。有没有一个Make成语?

【问题讨论】:

    标签: makefile


    【解决方案1】:

    在主 makefile 中 include 的文件中设置变量,并在主 makefile 中包含如何构建它的规则(你已经拥有的应该没问题)。

    我相信这会如你所愿。

    有关此概念的更多详细信息,请参阅 Including Other MakefilesHow Makefiles Are Remade(从第一部分链接)。

    另外,除非parseable_file 有一个独立于parse_cmd 调用的用法,否则应该可以同时进行创建和解析,并且只让生成的makefile 包含$(targets) 的正确值一步。

    【讨论】:

    • 谢谢,我想没有办法避免制作另一个文件吗?
    • 如果您愿意,您可以在 makefile 的早期使用 shell 调用来创建文件(可能还有变量设置),但我不确定这会更好(并且使用基于依赖的跟踪文件手册的再生)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    相关资源
    最近更新 更多