2011-07-21 35 views
11

我有做同樣的事情的makefile目標的轉換:函數在makefile中?

${SOME_FILE}: 
    ${FILES} | ${DIST_DIR} 

    @@cat ${FILES} |      \ 
     sed 's/@DATE/'"${DATE}"'/' |  \ 
     sed 's/@VERSION/'"${CR_VER}"'/' \ 
     > ${OUT_FILE}; 

其中${FILES}${OUT_FILE}是改變的唯一的東西。我試圖弄清楚是否有可能將這些目標簡化爲如下形式:

${SOME_FILE}: 
    compile(${FILES},${OUT_FILE}) 

感謝您的任何見解。

回答

11

GNU make也有這樣的:

要定義多線功能,你可以使用這個語法:

+1

使用define ... endef對我沒有幫助。它完全忽略了這條線。我嘗試使用$(var-name)和$(call var-name)。我可以使用單個行變量,並用分號,;和反斜線\來包裝行。我使用的是Ubuntu 14.04,而我的GNU make版本是3.81。 – Samuel

1

如果你不想要爲了限制自己的GNUmake,你最好的辦法可能是自己生成makefile片段,然後include他們。