我有一个Makefile,我目前有两个文件应该复制到不同的目录。目前,我已经测试了
echo ${dirs} | xargs -n 1 cp ${sources}
所以我理解这不起作用,因为它会尝试每次都将两个源文件复制到其中一个目录。但有没有办法可以为每个源文件和目录执行copy命令?
致以最诚挚的问候,
西蒙
答案 0 :(得分:1)
我认为可以从你所写的内容中推断出你想要的东西,但正如其他人指出的那样,你应该更清楚,所以我们不必花时间去推断它。
无论如何,由于您不想将所有文件复制到所有目录,因此必须以某种方式告诉Make
您要复制哪些文件。最简单的方法是在变量(例如$(COPIES)
)中列出所需副本的完整路径,而不仅仅是${dirs}
。在这个答案中,我将假设目标目录已经存在。
.PHONY: all
all: $(COPIES)
PERCENT := %
.SECONDEXPANSION:
$(COPIES): %: $$(filter $$(PERCENT)/$$(notdir $$*), $(sources)) Makefile
cp $< $@