我有很多二进制文件(图像等)。我需要将其中一些复制到输出目录中,作为构建过程的一部分。
需要复制的文件列表基于一些相当复杂的逻辑,它由Python脚本动态生成。
假设我在deps.txt
中有以下内容:
a.png
b.gif
c.mp4
如何使用makefile将任何必要的文件复制到输出目录?
例如,如果输出目录已包含c.mp4
且过期版本为b.gif
,则运行makefile会将a.png
和b.gif
复制到输出目录(但不是c.mp4
)。
答案 0 :(得分:3)
如果您使用的是GNU make,最简单的方法是使用自动生成的包含文件,如下所示:
deps.txt.mk: deps.txt
cat $< | while read f; do echo "\$$(OUTPUT_DIR)/$$f: $$f ; cp $$< $$@"; done > $@
-include deps.txt.mk
如果你没有使用GNU make,你将不得不使用递归:有一个创建makefile的规则(如上所述),然后运行$(MAKE) -f deps.txt.mk
来实际进行安装。如果您需要这个例子,请告诉我。