如何记录makefile模板并包含* .mk文件接口?

时间:2014-11-11 20:46:30

标签: documentation makefile doxygen

我们有许多makefile模板,通过设置一些参数makefile变量来实现某些构建操作,并通过包含来应用makefile模板,如

GENERIC_PARAM1-y := paramA
GENERIC_PARAM2-y := paramB

include $(MAKE_TOOLS)/doaction.mk

doaction.mk这样的文件包含make模板,用于生成标准规则定义,仅在包含操作make步骤时应用这些定义。

现在我们想要使用像

这样的Doxygen为*.mk片段记录这些接口
## @file
## @brief doaction.mk is purposed to ...
## 
## Some more detailed descriptions about rules applied ...
## @param GENERIC_PARAM1-y Parameter1 description ...
## @param GENERIC_PARAM2-y Parameter2 description ...

有没有一种简单的方法可以使用任何有效的Doxygen语法/配置来实现这一点?

1 个答案:

答案 0 :(得分:5)

  

“有没有一种简单的方法可以使用任何有效的doxygen语法/配置来实现这一点?”

是的,您可以使用doxygen的INPUT_FILTERFILE_PATTERNSFILTER_SOURCE_FILES配置设置as stolen from this blog post

将这些设置放在Doxyfile配置

FILE_PATTERNS = *.mk 
INPUT_FILTER = "sed -e 's|##|//!|'" 
FILTER_SOURCE_FILES = YES 

INPUT_FILTER实际上是诀窍,doxygen使用sed命令打开一个管道,按照指定的命令过滤输入文件。

注意:
上面提到的命令没有嵌入到shell中,因此链式命令语句如

"grep '##' | sed -e 's|##|//!|'"

无效。


根据样本##中的建议将您的评论扩展为doxygen所见的评论

## @file
## @brief doaction.mk is purposed to ...
## 
## Some more detailed descriptions about rules applied ...
## @param GENERIC_PARAM1-y Parameter1 description ...
## @param GENERIC_PARAM2-y Parameter2 description ...

另外你应该放一个

## @cond
...
## @endcond

围绕你的makefile规则/模板代码,以避免doxygen解析这些部分。

以上示例应在生成的文档HTML

中呈现如下

enter image description here