générer (et installer) Documentation Doxygen avec AutoTools
Question
J'écris une bibliothèque (en utilisant libtools), où toute la documentation de l'API est effectuée à l'aide de Doxygen.
Je me demande s'il existe un moyen facile d'intégrer l'installation de la documentation Doxygen générée dans AutoTools.
Je pense que la construction de la documentation devrait être suffisamment facile. Mais une fois que j'ai couru Doxygen, quel est le moyen approprié d'obtenir les fichiers générés (par exemple) .html en $ (HTMLDIR)?
Le problème semble être que je ne sais pas (je ne veux pas non plus savoir) quels fichiers Doxygen va créer pour moi, donc je ne peux donc pas vraiment les énumérer dans HTML_DATA
Je trouve quelque chose comme 'html_data= html /*.*' est une idée
La solution
Pendant que je n'ai pas beaucoup d'expérience avec AutoTools moi-même, plusieurs suggestions sont faites sur ce fil de courrier qui peut être utile: http://old.nofabile.com/HOW-TO-INSTALL-DOXYGEN-Génération-HTML-Documentation - TD17029178.HTML
Autres conseils
Il pourrait être plus compact d'utiliser certaines macros contribuées.Ici, j'ai trouvé une méthode simple basée sur les exemples du livre AutoTools de John Calcote PG 246.
Ajoutez les éléments suivants à Configurer.ac juste au-dessus de la
AC_CONFIG_FILES([Makefile
ligne
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])])
Dans le répertoire du PROJECTDIR / DOCS
Ajouter deux fichiers: doxyfile.in et makefile.am
Utiliser la variable de substitution par exemple:
PROJECT_NAME = @PACKAGE_NAME@
PROJECT_NUMBER = @PACKAGE_VERSION@
INPUT = @top_srcdir@
puis effectuez une modification appropriée dans d'autres champs de configuration Doxygen.
LATEX_OUTPUT = latex
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
De cette façon, vous générerez un fichier PDF.
Le makefile.am devrait être simple:
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
(Assurez-vous de respecter une indentation de fabrication en copiant cela.)
Cela semblait avoir travaillé pour moi.La documentation résultante est générée dans le dossier DOCS.S'il vous plaît laissez-moi savoir si j'ai fait des erreurs.
J'utilise la macro de Oren Ben-Kiki, voir http://www.ben-kiki.org/oren/doxample/ ou Google.Le script crée la documentation Doxygen dans le format PDF / HTML / Man (configurable).
Ajoutez vos fichiers d'aide générés à la liste * dist_doc_data * dans makefile.am, pour les installer.