【发布时间】:2015-03-09 23:57:13
【问题描述】:
在我的 Makefile 中,我试图将文件列表从 location1 复制到 location2,然后从 location2 复制到 location3。我得到了以下奇怪的行为:
FILES_LIST=dir1/file1 dir2/file2 dir3/file3 ........
mytarget:
for file in $(FILES_LIST) ; do \
#this works
cp -vf location1/$$file location2/$(shell $$file##*/) ; \
#this does not work
cp -vf location2/$(shell $$(file)##*/) location3/ ; \
done
我正在使用“$(shell $$(file)##/)”来去除 FILES_LIST 中每个项目的“dir1/”部分。 第一个 cp 工作(从位置 1 到 2),但是,发送没有,构建日志显示 "$(shell $$(file)##/)" 被评估为空。
我正在使用 GNU Make 3.81
【问题讨论】:
标签: shell for-loop makefile gnu