将多个文件复制到Makefile中的不同目录

时间:2014-11-04 22:53:57

标签: copy makefile echo xargs

我有一个Makefile,我目前有两个文件应该复制到不同的目录。目前,我已经测试了

echo ${dirs} | xargs -n 1 cp ${sources}

所以我理解这不起作用,因为它会尝试每次都将两个源文件复制到其中一个目录。但有没有办法可以为每个源文件和目录执行copy命令?

致以最诚挚的问候,

西蒙

1 个答案:

答案 0 :(得分:1)

我认为可以从你所写的内容中推断出你想要的东西,但正如其他人指出的那样,你应该更清楚,所以我们不必花时间去推断它。

无论如何,由于您不想将所有文件复制到所有目录,因此必须以某种方式告诉Make您要复制哪些文件。最简单的方法是在变量(例如$(COPIES))中列出所需副本的完整路径,而不仅仅是${dirs}。在这个答案中,我将假设目标目录已经存在。

.PHONY: all
all: $(COPIES)

PERCENT := %

.SECONDEXPANSION:
$(COPIES): %: $$(filter $$(PERCENT)/$$(notdir $$*), $(sources)) Makefile
    cp $< $@