扩展的makefile产生库和文档时的doxygen(Extend the makefile to

2019-07-04 18:17发布

我实现了一个二叉树方案,其中包括的功能tree.c,与他们的声明,并进行测试的main.c的tree.h中。 另外,我有一个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

现在,我希望把它生成一个图书馆不仅是一个目标网络文件的二进制树的功能和事后产生的doxygen的Makefile里的文档。 任何帮助将是有益的。

Answer 1:

我知道,我的答案是在一个有点晚,但我希望有人会从中受益。

我有一个生成的Doxygen文档生成文件。 你必须扭转Doxygen的一点点创建满足您需要的Doxygen的安装文件,然后打开,在编辑和删除线方含以下两个设置(它们将被make文件后添加)

INPUT
FILE_PATTERNS

加入这一行

@INCLUDE = doxyfile.inc

该文件保存在我使用Doxyfile.mk不同的名称

在你的Makefile你需要的资源列表和它们的位置例如目录

SRCS =  $(OBJS:.o=.c)
SRCDIRS = ./src
SRCDIRS += ./other_src

现在,你可以把在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

奖金:如果从像Eclipse的IDE内运行的Doxygen吐出来的是错误变成可点击,将跳转到坏的评论。



Answer 2:

好了,我真的不知道该doxygen的命令的语法,所以我会做一个通用的答案:

在Makefile中,每个

term: [dep]
    action

是一个目标。

所以,如果你添加的东西,如:

doc: $(OBJ)
    doxygen with-correct-options

你将能够使用生成的文件:

make doc

doc来到这里的目标名称)

现在,如果你添加:

all: tree doc
    @echo "Generating program and doc."

您将有计划,并简单地调用生成的文档

make

最后,还有一个额外的statment Makefile中可能有使用的: .PHONY 。 这是“标记的许多目标不直接生产文件中的一个,并确保即使具有相同名称的文件作为目标存在及其执行的一种方式”。 在其他方面,这是确保doccleanall即使指定的文件就一定会执行doccleanall存在。

它的语法如下:

.PHONY: all clean doc

而通常把在Makefile结尾。



文章来源: Extend the makefile to generate a library and documentation with doxygen