makefile宏接受参数

时间:2011-06-08 18:30:55

标签: makefile gnu-make

我想像shell宏一样自己做点什么,你可以说$(shell command)

不幸的是,我还没有在网上找到关于如何做到这一点的任何内容。

这可能吗?

2 个答案:

答案 0 :(得分:9)

在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

答案 1 :(得分:4)

您应该尝试使用call function语法。

这不完全是你想要的,但AFAIK没有比这更精细的了。