扩展makefile以使用doxygen生成库和文档

kok*_*osg 1 c doxygen makefile static-libraries

我已经实现了一个二叉树程序,其中包括带有函数的tree.c,带有声明的tree.h和用于测试的main.c. 另外,我有一个makefile,它是:

CC=gcc
CFLAGS=-g -Wall
DEPS = tree.h
OBJ = main.o tree.o 

%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

tree: $(OBJ)
    $(CC) -o $@ $^ $(CFLAGS)

clean:
    rm -f *.o tree
Run Code Online (Sandbox Code Playgroud)

现在我想让它生成一个库,不仅是二进制树函数的对象文件,之后在makefile中生成doxygen的文档.任何帮助都会有所帮助.

Otz*_*zen 8

我知道我的答案有点迟了,但我希望有人能从中受益.

我有一个生成Doxygen doc的makefile.您必须稍微扭转Doxygen创建适合您需要的Doxygen设置文件,然后在编辑器中打开它并删除包含以下两个设置的行(稍后将通过make文件添加它们)

INPUT
FILE_PATTERNS
Run Code Online (Sandbox Code Playgroud)

添加此行

@INCLUDE = doxyfile.inc
Run Code Online (Sandbox Code Playgroud)

使用Doxyfile.mk以不同的名称保存此文件

在你makefile中你需要一个源列表和它们所在的目录示例

SRCS =  $(OBJS:.o=.c)
SRCDIRS = ./src
SRCDIRS += ./other_src
Run Code Online (Sandbox Code Playgroud)

现在您可以将此规则放在Makefile中,它将创建包含您从Doxyfile.mk中删除的设置的文件doxyfile.inc.

.PHONY: all clean distclean doxy

# If makefile changes, maybe the list of sources has changed, so update doxygens list
doxyfile.inc: Makefile.mk
        echo INPUT         =  $(SRCDIRS) > doxyfile.inc
        echo FILE_PATTERNS =  *.h $(SRCS) >> doxyfile.inc

doxy: doxyfile.inc $(SRCS) 
        doxygen.exe doxyfile.mk
Run Code Online (Sandbox Code Playgroud)

额外奖励:如果从像Eclipse这样的IDE内部运行,那么Doxygen吐出的错误就会变得可以点击,并且会跳转到错误的评论.