【发布时间】:2015-12-06 06:11:57
【问题描述】:
这是我的 Makefile 的简化用例。我想要做的是使用这些文件的名称并创建各自的 .d 和 .hpp 文件。但是,由于某种原因,我无法做到。
XML_DATA_FILES := a.xml b.xml c.xml d.xml
build:
@for var in $(XML_DATA_FILES); do \
echo "$(basename $$var)";\
$(eval var1 = $(basename $$var)) \
echo "$(join var1,.hpp)"; \
echo "$(join var1,.d)"; \
done
我运行make时得到的输出如下
a.xml
var1.hpp
var1.d
b.xml
var1.hpp
var1.d
c.xml
var1.hpp
var1.d
d.xml
var1.hpp
var1.d
但我想要的是a.d, a.hpp 等等所有四个 xml 文件输入。
我已经提到了this 问题和GNU Manual,但到目前为止还没有帮助。我怎样才能做到这一点?
【问题讨论】:
-
为什么不
$(patsubst %.xml, %.hpp, $(XML_DATA_FILES))?