Генерация (и установка) Документация Doxygen с AutoTools
Вопрос
Я пишу библиотеку (используя libtools), где вся документация API выполняется с использованием doxygen.
Интересно, есть ли простой способ интеграции установки созданной документации Doxygen в AutoTools.
Я полагаю, что создание документации должно быть достаточно легко. Но как только я пробежал Doxygen, какой правильный способ получить сгенерированные файлы (например) .html в $ (HTMLDIR)?
Проблема, кажется, я не знаю (и я не хочу знать), какие файлы doxygen собираются создать для меня, поэтому я не могу действительно перечислить их в HTML_DATA
Я рисую что-то вроде 'html_data= html /*.*' - pass идея
Решение
Пока у меня нет большого опыта работы с AutoTools сам, на этой почтовой теме сделано несколько предложений, которые могут быть использованы: http://old.nable.com/How-to-install-doxygen - HTML-документация - TD17029178.HTML
Другие советы
Это может быть более компактно использовать некоторые внесенные макросы.Здесь я выяснил простой способ, основанный на примерах из книги AutoTools от John Calcote PG 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])])
.
в каталоге проектаdir / 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 во время копирования этого.)
Это, казалось, работало для меня.Полученная документация генерируется в папке документов.Пожалуйста, дайте мне знать, если я сделал какие-либо ошибки.
Я использую макрос Oren Ben-Kiki, см. http://www.ben-Kiki.org/oren/Doxamplem/ или Google это.Сценарий создает документацию Doxygen в формате PDF / HTML / Man (настраиваемый).
Добавить свои сгенерированные файлы справки в список * dist_doc_data * в makefile.am, чтобы они установили.