问题 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})

感谢您的任何见解。


5598
2017-07-21 21:47


起源



答案:


GNU make有这个:

要定义多行函数,可以使用以下语法:


12
2017-07-21 23:21



使用define ... endef对我没有任何帮助。它完全忽略了这条线。我尝试使用$(var-name)和$(调用var-name)。我可以使用单行变量,然后使用分号包装行;和反斜杠\。我使用的是Ubuntu 14.04,我的GNU make版本是3.81。 - Samuel


答案:


GNU make有这个:

要定义多行函数,可以使用以下语法:


12
2017-07-21 23:21



使用define ... endef对我没有任何帮助。它完全忽略了这条线。我尝试使用$(var-name)和$(调用var-name)。我可以使用单行变量,然后使用分号包装行;和反斜杠\。我使用的是Ubuntu 14.04,我的GNU make版本是3.81。 - Samuel


如果你不想限制自己使用GNUmake,最好的办法就是自己生成makefile片段 include 他们。


1
2017-07-22 06:27