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

πάν*_*ῥεῖ 3 documentation doxygen makefile

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

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

include $(MAKE_TOOLS)/doaction.mk
Run Code Online (Sandbox Code Playgroud)

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

现在我们想要*.mk使用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 ...
Run Code Online (Sandbox Code Playgroud)

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

πάν*_*ῥεῖ 5

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

是的,你可以使用的doxygen的INPUT_FILTER,FILE_PATTERNSFILTER_SOURCE_FILES配置设置从这个博客帖子被盗

将这些设置放在您的Doxyfile配置中

FILE_PATTERNS = *.mk 
INPUT_FILTER = "sed -e 's|##|//!|'" 
FILTER_SOURCE_FILES = YES 
Run Code Online (Sandbox Code Playgroud)

INPUT_FILTER实际执行特技,所述sed命令用于通过doxygen的打开一个管滤波输入文件一起指定的命令.

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

"grep '##' | sed -e 's|##|//!|'"
Run Code Online (Sandbox Code Playgroud)

不行.


将您在样本中提出的##评论展开以扩展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 ...
Run Code Online (Sandbox Code Playgroud)

另外你应该放一个

## @cond
...
## @endcond
Run Code Online (Sandbox Code Playgroud)

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

上面的示例应在生成的文档HTML中呈现如下

在此输入图像描述