0

我有一个 Makefile 负责下载一些所需的 javascript 文件作为先决条件r.js

对于他们每个人,我都创建了一个.url文件,其中包含.js可以下载文件的 url,并设置如下模式规则:

static/js/lib/%.js: jslibsurls/%.url
    curl -L -s -o $@ `cat $<`

但它只下载一个.js文件,如果它是 Makefile 中某处的显式依赖项......

有没有办法让模式规则被执行,如果有一个依赖匹配它,即使目标还没有使用(一旦它们被创建,它们将在通配符中使用)?

4

1 回答 1

1

我想我明白了,我需要patsubst使用文件的名称.url来创建.js并使用结果作为对虚假规则的依赖,然后我可以将其用作r.js步骤的依赖。

DOWNLOADED_LIBS+=$(patsubst jslibsurls/%.url,static/js/lib/%.js,$(wildcard jslibsurls/*.url))

download-libs: $(DOWNLOADED_LIBS)

#this downloads a .js in static/js/lib/ file for each .url file in jslibsurls/
static/js/lib/%.js: jslibsurls/%.url
    curl -L -s -o $@ `cat $<`

.PHONY: download-libs
于 2013-02-07T17:36:04.483 回答