【发布时间】:2010-12-17 12:14:55
【问题描述】:
我需要将多个文件夹中的多个文件复制到一个包含文件夹中:
make之前
../security/security_features.h
../this/this_features.h
[etc]
../that/that_features.h
make之后
./include/security_features.h
./include/this_features.h
[etc]
./include/that_features.h
./include 文件夹中的文件都需要依赖于各个文件夹中的文件。
Makefile 对我来说有点神秘,我尝试阅读手册并了解如何制作依赖项:
./include/security_features.h: ../security/security_features.h
@cp -av $< $@
但我必须对我的所有文件都这样做 - 还有其他更优雅的方法吗?
理想情况下,我只想编写分散文件夹中各种文件的 Makefile 变量,并且 makefile 知道将该变量中的所有文件复制到包含文件夹。
那里有任何 Makefile 大师吗?
谢谢,
马特
更新:
我已经设法做这样的文件列表:
INCLUDES_SRC := ../security/security_features.h ../this/this_features.h
INCLUDES_DST := $(addprefix ./include/,$(notdir $(INCLUDES_SRC)))
并且可以使一个依赖于另一个:
$(INCLUDES_DST): $(INCLUDES_SRC)
@cp -av $< $@
但是,这只是将第一个先决条件 (../security/security_features.h) 两次复制到两个目标 (./include/security_features.h, ./include/this_features.h):
'../security/security_features.h' -> './include/security_features.h'
'../security/security_features.h' -> './include/this_features.h'
所以我现在有一个文件的 src 和目标位置的 make 变量列表 - 有人知道如何依次复制所有文件吗?
谢谢
马特
【问题讨论】:
-
你真的需要依赖吗? IOW,您是否只想在文件更改时进行复制,还是您总是想要进行复制?
标签: makefile