Generazione (e installazione) Documentazione Doxygen con AutoTools
Domanda
Sto scrivendo una biblioteca (usando libtools), dove tutta la documentazione API viene eseguita usando DOXYGEN.
Mi chiedo se c'è un modo semplice per integrare l'installazione della documentazione doxygen generata in AutoTools.
Immagino che la costruzione della documentazione dovrebbe essere abbastanza facile. Ma una volta che ho corso Doxygen, qual è il modo corretto per ottenere i file generati (ad esempio) .html in $ (htmldir)?
Il problema sembra essere che non so (né voglio sapere) quali file doxygen creeranno per me, quindi non posso davvero enumerarli tutti in html_data
Immagino qualcosa come 'HTML_DATA= HTML /*.*' è un Bad IDEA
Soluzione
Mentre non ho molta esperienza con AutoTools me stesso, vengono effettuati diversi suggerimenti su questo thread di posta che potrebbe essere utile: http://old.nabble.comHow-to-Install-Documentazione generata da html-Generato-Generato - TD17029178.html
Altri suggerimenti
Potrebbe essere più compatto usare alcune macro contribuite.Qui ho capito un metodo semplice basato sugli esempi dal libro di autootools da John Calcote PG 246.
Aggiungi quanto segue per configure.ac appena sopra il
AC_CONFIG_FILES([Makefile
.
Linea
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])])
.
Nella directory del progettoDir / docs
Aggiungi due file: doxyfile.in e makefile.am
Utilizzare la variabile di sostituzione ad esempio:
PROJECT_NAME = @PACKAGE_NAME@
PROJECT_NUMBER = @PACKAGE_VERSION@
INPUT = @top_srcdir@
.
Quindi apportare modifiche corrette ad altri campi di configurazione DOXYGEN.
LATEX_OUTPUT = latex
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
.
In questo modo genererai il file PDF.
the makefile.am dovrebbe essere semplice:
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
.
(Assicurati di rispettare la rientranza del makefile mentre copia questo.)
Questo sembrava aver funzionato per me.La documentazione risultante viene generata nella cartella Docs.Per favore fatemi sapere se ho fatto errori.
Io uso la macro di Oren Ben-Kiki, vedere http://www.ben-kiki.org/oren/doxample/ o Google.Lo script crea la documentazione DOXYGEN in formato PDF / HTML / Man (configurabile).
Aggiungi i file di guida generati all'elenco * distan_doc_data * in Makefile.am, per averli installati.