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

标签 doxygen autotools libtool

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

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

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

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

我认为“html_DATA=html/*.*”之类的东西是一个主意

最佳答案

使用一些贡献的宏可能会更紧凑。在这里,我根据 John Calcote 的 AUTOTOOLS 书第 246 页中的示例找出了一个简单的方法。

将以下内容添加到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 文件夹中生成。如果我有任何错误,请告诉我。

关于doxygen - 使用 autotools 生成(并安装)doxygen 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10682603/

相关文章:

python - 如何让 doxygen 忽略 Python 脚本的第一行?

c++ - 如何在 Doxygen 的示例中保留注释

packaging - 在安装到特定目录时包含额外文件

ios - 如何为基于 autotool 的项目启用特定于 Xcode 的构建标志

ios - 尝试使用2个第三方库时出现重复符号

documentation - 如果语言仅支持访问器,如何在 Doxygen 中记录属性?

c++ - 用于 Web 服务的 Doxygen?

c++ - 如何正确捆绑 libstdc++.so.*?

c++ - 调用 AC_PROG_CXX 后禁用对 libtool 的 cxx 支持

makefile - 当一切都在那里时,libtool 没有生成 lo 文件