在一个Makefile规则中两个分号是什么意思

问题描述 投票:0回答:1

我知道规则语法应采用以下格式:

targets : prerequisites
        recipe
        …

但是,我在slave.mk中看到以下代码段。

$(addprefix $(DEBS_PATH)/, $(SONIC_COPY_DEBS)) : $(DEBS_PATH)/% : .platform
    $(HEADER)
    $(foreach deb,$* $($*_DERIVED_DEBS), \
        { cp $($(deb)_PATH)/$(deb) $(DEBS_PATH)/ $(LOG) || exit 1 ; } ; )
    $(FOOTER)

第一行中有两个':'。为什么?

makefile
1个回答
0
投票

这是Static Pattern Rules的语法:

静态模式规则是指定多个目标并根据目标名称构造每个目标的必备名称的规则。它们比具有多个目标的普通规则更具通用性,因为目标不必具有相同的先决条件。它们的前提条件必须相似,但不一定相同。

这是静态模式规则的语法:

targets …: target-pattern: prereq-patterns …
    recipe
    …

targets列表指定规则适用的目标。

© www.soinside.com 2019 - 2024. All rights reserved.