2011-06-08 53 views
4

我想自己製作一些像shell宏的地方,你可以說$(shell command)makefile宏參數

不幸的是,我還沒有找到任何關於如何做到這一點的網上。

這可能嗎?

+1

請不要。特別是如果其他人將要使用你的makefile。 – 2011-06-08 18:51:52

+0

你爲什麼想要? 'shell'命令已經存在。 – Beta 2011-06-08 19:02:02

回答

6

在GNU中,您可以執行以下操作。想象一下,你想從一個沒有擴展名的簡單文件名生成.h.cpp文件名作爲某些規則的來源添加。你可以寫:

define h_and_cpp_sources 
    $(1).h $(1).cpp 
endef 

這會產生一個Makefile宏獲得的第一個參數作爲$(1),第二爲$(2),依此類推。然後:

target: $(call h_and_cpp_sources,file) 
... 

這將構建規則:

target: file.h file.cpp 
3

您應該嘗試使用call function語法。

這不完全是你想要的,但AFAIK沒有比這更精緻的了。