使用autotools生成(和安装)doxygen文档

时间:2012-05-21 09:24:24

标签: doxygen autotools libtool

我正在编写一个库(使用libtools),其中所有API文档都是使用doxygen完成的。

我想知道是否有一种简单的方法可以将生成的doxygen文档的安装集成到autotools中。

我认为构建文档应该很容易。 但是一旦我运行doxygen,将生成的(例如).html文件放入$(htmldir)的正确方法是什么?

问题似乎是我不知道(我也不想知道)doxygen将为我创建哪些文件,所以我无法将它们全部枚举到html_DATA中

我想像'html_DATA = html /*.*'是糟糕的想法

3 个答案:

答案 0 :(得分:2)

使用一些贡献的MACRO可能更紧凑。在这里,我找到了一个基于John Calcote pg 246的AUTOTOOLS书中的例子的简单方法。

将以下内容添加到

上方的configure.ac中
AC_CONFIG_FILES([Makefile

线

AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test -z "$DOXYGEN"; then
   AC_MSG_WARN([Doxygen not found - continue without Doxygen support])
fi
AC_CHECK_PROGS([DOT], [dot])
if test -z "$DOT"; then
   AC_MSG_ERROR([Doxygen needs dot, please install dot first])
fi
AC_CHECK_PROGS([PDFLATEX], [pdflatex])
if test -z "$PDFLATEX"; then
   AC_MSG_ERROR([Doxygen needs pdflatex program, it is part of TeX http://www.tug.org/texlive/acquire-netinstall.html])
fi
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([docs/Doxyfile])])
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([docs/Makefile])])

在PROJECTDIR / docs目录中

添加两个文件:Doxyfile.in和Makefile.am

使用替换变量例如:

PROJECT_NAME           = @PACKAGE_NAME@
PROJECT_NUMBER         = @PACKAGE_VERSION@
INPUT                  = @top_srcdir@

然后对其他doxygen配置字段进行适当修改。

LATEX_OUTPUT           = latex
PDF_HYPERLINKS         = YES
USE_PDFLATEX           = YES

这样您将生成pdf文件。

Makefile.am应该很简单:

if HAVE_DOXYGEN
directory = $(top_srcdir)/docs/man/man3

man_MANS = $(directory)

$(directory): doxyfile.stamp

doxyfile.stamp: Doxyfile
    $(DOXYGEN) $^
    cd latex && $(MAKE)
    echo Timestamp > $@

CLEANFILES = doxyfile.stamp

all-local: doxyfile.stamp
clean-local:
    -rm -rf $(top_srcdir)/docs/man

endif

(确保在复制时尊重Makefile缩进。)

这似乎对我有用。生成的文档将在docs文件夹中生成。如果我犯了任何错误,请告诉我。

答案 1 :(得分:0)

虽然我自己对autotools没有太多经验,但是对这个可能有用的邮件线程提出了一些建议: http://old.nabble.com/How-to-install-doxygen-generated-HTML-documentation--td17029178.html

答案 2 :(得分:0)

我使用了Oren Ben-Kiki的宏,请参阅http://www.ben-kiki.org/oren/doxample/或Google。该脚本以PDF / HTML / man(可配置)格式创建doxygen文档。

将生成的帮助文件添加到Makefile.am中的* dist_doc_DATA *列表中,以便安装它们。