2011-07-21 33 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他们。