制定没有食谱但有先决条件的规则?

时间:2016-08-13 22:56:22

标签: makefile

是否可以创建一个Makefile,其中包含先决条件但没有正文的全能规则(即%: ...)?

以下是我遇到的问题的一个例子:

.SUFFIXES:

%: patches/% downloads/%

patches/%:
    @echo $@

downloads/%: patches/%
    @echo $@
$ make patches/latest
patches/latest
$ make downloads/latest
downloads/latest
$ make latest
make: *** No rule to make target `latest'.  Stop.

我可以解决"这个问题是通过向全能规则添加一个主体:

.SUFFIXES:

%: patches/% downloads/%
    @echo $@

patches/%:
    @echo $@

downloads/%: patches/%
    @echo $@
$ make patches/latest
patches/latest
$ make downloads/latest
downloads/latest
$ make latest
patches/latest
downloads/latest
latest

是否有可能在没有全能规则的配方的情况下这样做?

我发现了一个类似的问题here,但它从未得到过真正的回答(即可能的解决方案)。

1 个答案:

答案 0 :(得分:1)

正如链接问题所指出的那样,模式规则没有配方cancel pre-existing rules

给规则一个空体:

Request.Url.GetLeftPart(UriPartial.Authority)