如果你想让内容更加简洁易懂,可以使用一些已经开发好的宏定义。在这里,我提供了一种基于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 文件夹中。如果我有任何错误,请告诉我。
$(top_builddir)/docs/man
instead of$(top_srcdir)/docs/man
- Darren Ng