下面是我的Makefile的簡化用例。我想要做的是使用這些文件的名稱並創建相應的.d和.hpp文件。但是,由於某種原因,我無法做到這一點。Makefile中xml文件的基本名稱
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))'? – keltar