扩展 Makefile 通配符的依赖项目录名
从 将脚本构建到 Makefile 开始,它位于此 上游位置。我想将 Javascript 示例作为依赖项包含到此生成的 HTML 文档中。
INFILES = $(shell find . -name "index.src.html")
OUTFILES = $(INFILES:.src.html=.html)
TEMP:= $(shell mktemp -u /tmp/specs.XXXXXX)
all: $(OUTFILES)
# Problem line:
%.html: %.src.html $(wildcard contacts/*js)
@echo Dependencies: $^
cd $(@D) && m4 -PEIinc index.src.html > $(TEMP)
anolis --max-depth=3 $(TEMP) $@
rm -f $(TEMP)
clean:
rm -f $(OUTFILES)
PHONY: all clean
我希望 $(wildcard contacts/*js)
为 $(wildcard $(@D)/*js)
或 $(wildcard $(dirname %) /*js)
,但我尝试过的任何方法都不起作用。必须有某种关键字来获取目标或依赖项的父目录,以便我可以引用 javascript 依赖项。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AFAIK,使用
$(@D)
和其他 二次扩展 功能。因此,您的问题可能可以按如下方式解决:
但是,我不确定它是否适用于模式规则。
AFAIK, using
$(@D)
and other automatic variables inside list of prerequisites can only be achieved using secondary expansion feature of GNU Make.Thus, your problem probably can be solved as follows:
However, I'm not sure whether it will work with pattern rules.