【发布时间】:2011-06-08 18:30:54
【问题描述】:
我想做一些我自己的东西,比如shell 宏,你可以说$(shell command)。
很遗憾,我没有在网上找到有关如何执行此操作的任何信息。
这可能吗?
【问题讨论】:
-
请不要。特别是如果其他人将使用您的 makefile。
-
您为什么要这样做?
shell命令已经存在。
我想做一些我自己的东西,比如shell 宏,你可以说$(shell command)。
很遗憾,我没有在网上找到有关如何执行此操作的任何信息。
这可能吗?
【问题讨论】:
shell 命令已经存在。
在 GNU make 中,您可以执行以下操作。想象一下,您想从一个没有扩展名的简单文件名生成.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
【讨论】:
您应该尝试使用call function 语法。
这并不是你想要的,但 AFAIK 没有比这更复杂的了。
【讨论】: