Message ID | 1455421338-9593-2-git-send-email-mike.holmes@linaro.org |
---|---|
State | Superseded |
Headers | show |
Applying this series to a fresh clone if I do: ./bootstrap ./configure --enable-cunit-support --enable-user-guides make doxygen-doc I get this: bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc DXGEN doc/application-api-guide/doxygen.cfg error: configuration file ./doc/application-api-guide/doxygen.cfg not found! Doxygen version 1.8.9.1 Copyright Dimitri van Heesch 1997-2014 You can use doxygen in a number of ways: 1) Use doxygen to generate a template configuration file: /usr/bin/doxygen [-s] -g [configName] If - is used for configName doxygen will write to standard output. 2) Use doxygen to update an old configuration file: /usr/bin/doxygen [-s] -u [configName] 3) Use doxygen to generate documentation using an existing configuration file: /usr/bin/doxygen [configName] If - is used for configName doxygen will read from standard input. 4) Use doxygen to generate a template file controlling the layout of the generated documentation: /usr/bin/doxygen -l [layoutFileName.xml] 5) Use doxygen to generate a template style sheet file for RTF, HTML or Latex. RTF: /usr/bin/doxygen -w rtf styleSheetFile HTML: /usr/bin/doxygen -w html headerFile footerFile styleSheetFile [configFile] LaTeX: /usr/bin/doxygen -w latex headerFile footerFile styleSheetFile [configFile] 6) Use doxygen to generate a rtf extensions file RTF: /usr/bin/doxygen -e rtf extensionsFile If -s is specified the comments of the configuration items in the config file will be omitted. If configName is omitted `Doxyfile' will be used as a default. -v print version string Makefile:893: recipe for target 'doc/application-api-guide/opendataplane.tag' failed make: *** [doc/application-api-guide/opendataplane.tag] Error 1 --- If I do a make (which seems to generate the user guides correctly) and then do a make doxygen-doc I get this: bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc make: *** No rule to make target 'doc/application-api-guide/doxygen.cfg', needed by 'doc/application-api-guide/opendataplane.tag'. Stop. On Sat, Feb 13, 2016 at 9:42 PM, Mike Holmes <mike.holmes@linaro.org> wrote: > fixes https://bugs.linaro.org/show_bug.cgi?id=1946 > > Move to the latest m4 scripts for doxygen and revert to using it without > modification, thus make doxygen-html becomes make doxygen-doc. > Also cleans up the last parts of the previously removed .pdf support. > Output now left in application-api-guide to match the other guides. > > Signed-off-by: Mike Holmes <mike.holmes@linaro.org> > --- > Makefile.am | 2 +- > README | 2 +- > aminclude.am | 167 ------------------- > configure.ac | 5 +- > m4/ax_prog_doxygen.m4 | 449 > +++++++++++++++++++++++++++++--------------------- > 5 files changed, 268 insertions(+), 357 deletions(-) > delete mode 100644 aminclude.am > > diff --git a/Makefile.am b/Makefile.am > index 2acbe3d..2129472 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -15,6 +15,6 @@ SUBDIRS = @platform_with_platform@ \ > example \ > scripts > > -include $(top_srcdir)/aminclude.am > +@DX_RULES@ > > EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README .scmversion > diff --git a/README b/README > index d8583be..4350b95 100644 > --- a/README > +++ b/README > @@ -17,7 +17,7 @@ Main git repository: > In general you can build: > ./bootstrap > ./configure > - Use 'make' to build ODP library and samples and 'make doxygen-html' > to build > + Use 'make' to build ODP library and samples and 'make doxygen-doc' to > build > ODP API documentation. 'make install' will copy all required headers > and > binary files to the install directory. > > diff --git a/aminclude.am b/aminclude.am > deleted file mode 100644 > index 1b0ec01..0000000 > --- a/aminclude.am > +++ /dev/null > @@ -1,167 +0,0 @@ > -# LICENSE > -# > -# Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> > -# > -# Copying and distribution of this file, with or without modification, > are > -# permitted in any medium without royalty provided the copyright notice > -# and this notice are preserved. This file is offered as-is, without any > -# warranty. > -# > - > -## --------------------------------- ## > -## Format-independent Doxygen rules. ## > -## --------------------------------- ## > - > -if DX_COND_doc > - > -## ------------------------------- ## > -## Rules specific for HTML output. ## > -## ------------------------------- ## > - > -if DX_COND_html > - > -DX_CLEAN_HTML = @DX_DOCDIR@/html > - > -endif DX_COND_html > - > -## ------------------------------ ## > -## Rules specific for CHM output. ## > -## ------------------------------ ## > - > -if DX_COND_chm > - > -DX_CLEAN_CHM = @DX_DOCDIR@/chm > - > -if DX_COND_chi > - > -DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi > - > -endif DX_COND_chi > - > -endif DX_COND_chm > - > -## ------------------------------ ## > -## Rules specific for MAN output. ## > -## ------------------------------ ## > - > -if DX_COND_man > - > -DX_CLEAN_MAN = @DX_DOCDIR@/man > - > -endif DX_COND_man > - > -## ------------------------------ ## > -## Rules specific for RTF output. ## > -## ------------------------------ ## > - > -if DX_COND_rtf > - > -DX_CLEAN_RTF = @DX_DOCDIR@/rtf > - > -endif DX_COND_rtf > - > -## ------------------------------ ## > -## Rules specific for XML output. ## > -## ------------------------------ ## > - > -if DX_COND_xml > - > -DX_CLEAN_XML = @DX_DOCDIR@/xml > - > -endif DX_COND_xml > - > -## ----------------------------- ## > -## Rules specific for PS output. ## > -## ----------------------------- ## > - > -if DX_COND_ps > - > -DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps > - > -DX_PS_GOAL = doxygen-ps > - > -doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps > - > -@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag > - cd @DX_DOCDIR@/latex; \ > - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ > - $(DX_LATEX) refman.tex; \ > - $(MAKEINDEX_PATH) refman.idx; \ > - $(DX_LATEX) refman.tex; \ > - countdown=5; \ > - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ > - refman.log > /dev/null 2>&1 \ > - && test $$countdown -gt 0; do \ > - $(DX_LATEX) refman.tex; \ > - countdown=`expr $$countdown - 1`; \ > - done; \ > - $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi > - > -endif DX_COND_ps > - > -## ------------------------------ ## > -## Rules specific for PDF output. ## > -## ------------------------------ ## > - > -if DX_COND_pdf > - > -DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf > - > -DX_PDF_GOAL = doxygen-pdf > - > -doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf > - > -@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag > - cd @DX_DOCDIR@/latex; \ > - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ > - $(DX_PDFLATEX) refman.tex; \ > - $(DX_MAKEINDEX) refman.idx; \ > - $(DX_PDFLATEX) refman.tex; \ > - countdown=5; \ > - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ > - refman.log > /dev/null 2>&1 \ > - && test $$countdown -gt 0; do \ > - $(DX_PDFLATEX) refman.tex; \ > - countdown=`expr $$countdown - 1`; \ > - done; \ > - mv refman.pdf ../@PACKAGE@.pdf > - > -endif DX_COND_pdf > - > -## ------------------------------------------------- ## > -## Rules specific for LaTeX (shared for PS and PDF). ## > -## ------------------------------------------------- ## > - > -if DX_COND_latex > - > -DX_CLEAN_LATEX = @DX_DOCDIR@/latex > - > -endif DX_COND_latex > - > -.PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) > - > -.INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) > - > -doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag > - > -doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) > - > -@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) > - rm -rf @DX_DOCDIR@ > - make --directory=$(srcdir)/doc/images > - $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) > - > -DX_CLEANFILES = \ > - @DX_DOCDIR@/@PACKAGE@.tag \ > - -r \ > - $(DX_CLEAN_HTML) \ > - $(DX_CLEAN_CHM) \ > - $(DX_CLEAN_CHI) \ > - $(DX_CLEAN_MAN) \ > - $(DX_CLEAN_RTF) \ > - $(DX_CLEAN_XML) \ > - $(DX_CLEAN_PS) \ > - $(DX_CLEAN_PDF) \ > - $(DX_CLEAN_LATEX) > - > -endif DX_COND_doc > diff --git a/configure.ac b/configure.ac > index 8108ff2..c0c2af3 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -141,8 +141,9 @@ AC_ARG_ENABLE([cunit_support], > # Setup doxygen documentation > ########################################################################## > DX_HTML_FEATURE(ON) > -DX_PDF_FEATURE(ON) > -DX_INIT_DOXYGEN($PACKAGE_NAME, doc/application-api-guide/doxygen.cfg, > doc/output) > +DX_PDF_FEATURE(OFF) > +DX_PS_FEATURE(OFF) > +DX_INIT_DOXYGEN($PACKAGE_NAME, > ${srcdir}/doc/application-api-guide/doxygen.cfg, > ${builddir}/doc/application-api-guide) > ########################################################################## > # Enable/disable Unit tests > ########################################################################## > diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4 > index 58bb016..d0858ca 100644 > --- a/m4/ax_prog_doxygen.m4 > +++ b/m4/ax_prog_doxygen.m4 > @@ -4,7 +4,7 @@ > # > # SYNOPSIS > # > -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) > +# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...) > # DX_DOXYGEN_FEATURE(ON|OFF) > # DX_DOT_FEATURE(ON|OFF) > # DX_HTML_FEATURE(ON|OFF) > @@ -45,25 +45,28 @@ > # Once all the feature defaults have been specified, call > DX_INIT_DOXYGEN > # with the following parameters: a one-word name for the project for use > # as a filename base etc., an optional configuration file name (the > -# default is 'Doxyfile', the same as Doxygen's default), and an optional > -# output directory name (the default is 'doxygen-doc'). > +# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), and > an > +# optional output directory name (the default is 'doxygen-doc'). To run > +# doxygen multiple times for different configuration files and output > +# directories provide more parameters: the second, forth, sixth, etc > +# parameter are configuration file names and the third, fifth, seventh, > +# etc parameter are output directories. No checking is done to catch > +# duplicates. > # > # Automake Support > # > -# The following is a template aminclude.am file for use with Automake. > -# Make targets and variables values are controlled by the various > -# DX_COND_* conditionals set by autoconf. > +# The DX_RULES substitution can be used to add all needed rules to the > +# Makefile. Note that this is a substitution without being a variable: > +# only the @DX_RULES@ syntax will work. > # > # The provided targets are: > # > # doxygen-doc: Generate all doxygen documentation. > # > -# doxygen-html: Run doxygen, which will generate some of the > +# doxygen-run: Run doxygen, which will generate some of the > # documentation (HTML, CHM, CHI, MAN, RTF, XML) > # but will not do the post processing required > -# for the rest of it (PS, PDF, and some MAN). > -# > -# doxygen-man: Rename some doxygen generated man pages. > +# for the rest of it (PS, PDF). > # > # doxygen-ps: Generate doxygen PostScript documentation. > # > @@ -84,177 +87,17 @@ > # > # Then add this variable to MOSTLYCLEANFILES. > # > -# ----- begin aminclude.am ------------------------------------- > -# > -# ## --------------------------------- ## > -# ## Format-independent Doxygen rules. ## > -# ## --------------------------------- ## > -# > -# if DX_COND_doc > -# > -# ## ------------------------------- ## > -# ## Rules specific for HTML output. ## > -# ## ------------------------------- ## > -# > -# if DX_COND_html > -# > -# DX_CLEAN_HTML = @DX_DOCDIR@/html > -# > -# endif DX_COND_html > -# > -# ## ------------------------------ ## > -# ## Rules specific for CHM output. ## > -# ## ------------------------------ ## > -# > -# if DX_COND_chm > -# > -# DX_CLEAN_CHM = @DX_DOCDIR@/chm > -# > -# if DX_COND_chi > -# > -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi > -# > -# endif DX_COND_chi > -# > -# endif DX_COND_chm > -# > -# ## ------------------------------ ## > -# ## Rules specific for MAN output. ## > -# ## ------------------------------ ## > -# > -# if DX_COND_man > -# > -# DX_CLEAN_MAN = @DX_DOCDIR@/man > -# > -# endif DX_COND_man > -# > -# ## ------------------------------ ## > -# ## Rules specific for RTF output. ## > -# ## ------------------------------ ## > -# > -# if DX_COND_rtf > -# > -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf > -# > -# endif DX_COND_rtf > -# > -# ## ------------------------------ ## > -# ## Rules specific for XML output. ## > -# ## ------------------------------ ## > -# > -# if DX_COND_xml > -# > -# DX_CLEAN_XML = @DX_DOCDIR@/xml > -# > -# endif DX_COND_xml > -# > -# ## ----------------------------- ## > -# ## Rules specific for PS output. ## > -# ## ----------------------------- ## > -# > -# if DX_COND_ps > -# > -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps > -# > -# DX_PS_GOAL = doxygen-ps > -# > -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps > -# > -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag > -# cd @DX_DOCDIR@/latex; \ > -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ > -# $(DX_LATEX) refman.tex; \ > -# $(MAKEINDEX_PATH) refman.idx; \ > -# $(DX_LATEX) refman.tex; \ > -# countdown=5; \ > -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' > \ > -# refman.log > /dev/null 2>&1 \ > -# && test $$countdown -gt 0; do \ > -# $(DX_LATEX) refman.tex; \ > -# countdown=`expr $$countdown - 1`; \ > -# done; \ > -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi > -# > -# endif DX_COND_ps > -# > -# ## ------------------------------ ## > -# ## Rules specific for PDF output. ## > -# ## ------------------------------ ## > -# > -# if DX_COND_pdf > -# > -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf > -# > -# DX_PDF_GOAL = doxygen-pdf > -# > -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf > -# > -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag > -# cd @DX_DOCDIR@/latex; \ > -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ > -# $(DX_PDFLATEX) refman.tex; \ > -# $(DX_MAKEINDEX) refman.idx; \ > -# $(DX_PDFLATEX) refman.tex; \ > -# countdown=5; \ > -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' > \ > -# refman.log > /dev/null 2>&1 \ > -# && test $$countdown -gt 0; do \ > -# $(DX_PDFLATEX) refman.tex; \ > -# countdown=`expr $$countdown - 1`; \ > -# done; \ > -# mv refman.pdf ../@PACKAGE@.pdf > -# > -# endif DX_COND_pdf > -# > -# ## ------------------------------------------------- ## > -# ## Rules specific for LaTeX (shared for PS and PDF). ## > -# ## ------------------------------------------------- ## > -# > -# if DX_COND_latex > -# > -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex > -# > -# endif DX_COND_latex > -# > -# .PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) > -# > -# .INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) > -# > -# doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag > -# > -# doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) > -# > -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) > -# rm -rf @DX_DOCDIR@ > -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) > -# > -# DX_CLEANFILES = \ > -# @DX_DOCDIR@/@PACKAGE@.tag \ > -# -r \ > -# $(DX_CLEAN_HTML) \ > -# $(DX_CLEAN_CHM) \ > -# $(DX_CLEAN_CHI) \ > -# $(DX_CLEAN_MAN) \ > -# $(DX_CLEAN_RTF) \ > -# $(DX_CLEAN_XML) \ > -# $(DX_CLEAN_PS) \ > -# $(DX_CLEAN_PDF) \ > -# $(DX_CLEAN_LATEX) > -# > -# endif DX_COND_doc > -# > -# ----- end aminclude.am --------------------------------------- > -# > # LICENSE > # > # Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> > +# Copyright (c) 2015 Olaf Mandel <olaf@mandel.name> > # > # Copying and distribution of this file, with or without modification, > are > # permitted in any medium without royalty provided the copyright notice > # and this notice are preserved. This file is offered as-is, without any > # warranty. > > -#serial 12 > +#serial 18 > > ## ----------## > ## Defaults. ## > @@ -278,8 +121,14 @@ AC_DEFUN([DX_FEATURE_ps], ON) > > # DX_ENV_APPEND(VARIABLE, VALUE) > # ------------------------------ > -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. > -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) > +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it > +# as a substitution (but not a Makefile variable). The substitution > +# is skipped if the variable name is VERSION. > +AC_DEFUN([DX_ENV_APPEND], > +[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl > +m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl > +AM_SUBST_NOTMAKE([$1])])dnl > +]) > > # DX_DIRNAME_EXPR > # --------------- > @@ -364,7 +213,6 @@ if DX_TEST_FEATURE([$1]); then > $5 > : > fi > -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) > if DX_TEST_FEATURE([$1]); then > $6 > : > @@ -392,23 +240,38 @@ AC_DEFUN([DX_XML_FEATURE], > [AC_DEFUN([DX_FEATURE_xml], [$1])]) > AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) > AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) > > -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) > -# --------------------------------------------------------- > +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...) > +# -------------------------------------------------------------- > # PROJECT also serves as the base name for the documentation files. > -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is > "doxygen-doc". > +# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is > +# "doxygen-doc". > +# More arguments are interpreted as interleaved CONFIG-FILE and > +# OUTPUT-DOC-DIR values. > AC_DEFUN([DX_INIT_DOXYGEN], [ > > # Files: > AC_SUBST([DX_PROJECT], [$1]) > -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) > -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) > +AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])']) > +AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])']) > +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2, > + [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]), > + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), > + [$(srcdir)/Doxyfile])')])])dnl > +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2, > + [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]), > + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), > + [doxygen-doc])')])])dnl > +m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1, > + [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])], > + [])))dnl > > # Environment variables used inside doxygen.cfg: > DX_ENV_APPEND(SRCDIR, $srcdir) > -DX_ENV_APPEND(PROJECT, $DX_PROJECT) > -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) > +DX_ENV_APPEND(BUILDDIR, $builddir) > DX_ENV_APPEND(VERSION, $VERSION) > DX_ENV_APPEND(WITH_PLATFORM, $with_platform) > +DX_ENV_APPEND(PROJECT, $DX_PROJECT) > +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) > > # Doxygen itself: > DX_ARG_ABLE(doc, [generate any doxygen documentation], > @@ -495,7 +358,6 @@ DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], > DX_REQUIRE_PROG([DX_EGREP], egrep)]) > > # LaTeX generation for PS and/or PDF: > -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf)) > if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then > DX_ENV_APPEND(GENERATE_LATEX, YES) > else > @@ -518,11 +380,226 @@ a4wide|a4|letter|legal|executive) > ;; > esac > > +# Rules: > +if test $DX_FLAG_html -eq 1; then > + DX_SNIPPET_html="## ------------------------------- ## > +## Rules specific for HTML output. ## > +## ------------------------------- ## > + > +DX_CLEAN_HTML = \$(DX_DOCDIR)/html[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/html]]) > + > +" > +else > + DX_SNIPPET_html="" > +fi > +if test $DX_FLAG_chi -eq 1; then > + DX_SNIPPET_chi=" > +DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])" > +else > + DX_SNIPPET_chi="" > +fi > +if test $DX_FLAG_chm -eq 1; then > + DX_SNIPPET_chm="## ------------------------------ ## > +## Rules specific for CHM output. ## > +## ------------------------------ ## > + > +DX_CLEAN_CHM = \$(DX_DOCDIR)/chm[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/chm]])\ > +${DX_SNIPPET_chi} > + > +" > +else > + DX_SNIPPET_chm="" > +fi > +if test $DX_FLAG_man -eq 1; then > + DX_SNIPPET_man="## ------------------------------ ## > +## Rules specific for MAN output. ## > +## ------------------------------ ## > + > +DX_CLEAN_MAN = \$(DX_DOCDIR)/man[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/man]]) > + > +" > +else > + DX_SNIPPET_man="" > +fi > +if test $DX_FLAG_rtf -eq 1; then > + DX_SNIPPET_rtf="## ------------------------------ ## > +## Rules specific for RTF output. ## > +## ------------------------------ ## > + > +DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/rtf]]) > + > +" > +else > + DX_SNIPPET_rtf="" > +fi > +if test $DX_FLAG_xml -eq 1; then > + DX_SNIPPET_xml="## ------------------------------ ## > +## Rules specific for XML output. ## > +## ------------------------------ ## > + > +DX_CLEAN_XML = \$(DX_DOCDIR)/xml[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/xml]]) > + > +" > +else > + DX_SNIPPET_xml="" > +fi > +if test $DX_FLAG_ps -eq 1; then > + DX_SNIPPET_ps="## ----------------------------- ## > +## Rules specific for PS output. ## > +## ----------------------------- ## > + > +DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]]) > + > +DX_PS_GOAL = doxygen-ps > + > +doxygen-ps: \$(DX_CLEAN_PS) > + > +m4_foreach([DX_i], [DX_loop], > +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag > + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ > + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ > + \$(DX_LATEX) refman.tex; \\ > + \$(DX_MAKEINDEX) refman.idx; \\ > + \$(DX_LATEX) refman.tex; \\ > + countdown=5; \\ > + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\ > + refman.log > /dev/null 2>&1 \\ > + && test \$\$countdown -gt 0; do \\ > + \$(DX_LATEX) refman.tex; \\ > + countdown=\`expr \$\$countdown - 1\`; \\ > + done; \\ > + \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi > + > +]])dnl > +" > +else > + DX_SNIPPET_ps="" > +fi > +if test $DX_FLAG_pdf -eq 1; then > + DX_SNIPPET_pdf="## ------------------------------ ## > +## Rules specific for PDF output. ## > +## ------------------------------ ## > + > +DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]]) > + > +DX_PDF_GOAL = doxygen-pdf > + > +doxygen-pdf: \$(DX_CLEAN_PDF) > + > +m4_foreach([DX_i], [DX_loop], > +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag > + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ > + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ > + \$(DX_PDFLATEX) refman.tex; \\ > + \$(DX_MAKEINDEX) refman.idx; \\ > + \$(DX_PDFLATEX) refman.tex; \\ > + countdown=5; \\ > + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\ > + refman.log > /dev/null 2>&1 \\ > + && test \$\$countdown -gt 0; do \\ > + \$(DX_PDFLATEX) refman.tex; \\ > + countdown=\`expr \$\$countdown - 1\`; \\ > + done; \\ > + mv refman.pdf ../\$(PACKAGE).pdf > + > +]])dnl > +" > +else > + DX_SNIPPET_pdf="" > +fi > +if test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1; then > + DX_SNIPPET_latex="## > ------------------------------------------------- ## > +## Rules specific for LaTeX (shared for PS and PDF). ## > +## ------------------------------------------------- ## > + > +DX_V_LATEX = \$(_DX_v_LATEX_\$(V)) > +_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY)) > +_DX_v_LATEX_0 = @echo \" LATEX \" \$[]][[]@; > + > +DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex[]dnl > +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ > + \$(DX_DOCDIR]DX_i[)/latex]]) > + > +" > +else > + DX_SNIPPET_latex="" > +fi > + > +if test $DX_FLAG_doc -eq 1; then > + DX_SNIPPET_doc="## --------------------------------- ## > +## Format-independent Doxygen rules. ## > +## --------------------------------- ## > + > +${DX_SNIPPET_html}\ > +${DX_SNIPPET_chm}\ > +${DX_SNIPPET_man}\ > +${DX_SNIPPET_rtf}\ > +${DX_SNIPPET_xml}\ > +${DX_SNIPPET_ps}\ > +${DX_SNIPPET_pdf}\ > +${DX_SNIPPET_latex}\ > +DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V)) > +_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY)) > +_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<; > + > +.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL) > + > +.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) > + > +doxygen-run:[]m4_foreach([DX_i], [DX_loop], > + [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]]) > + > +doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) > + > +m4_foreach([DX_i], [DX_loop], > +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) > \$(pkginclude_HEADERS) > + \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[) > + \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) \$(DX_DOXYGEN) > \$(DX_CONFIG]DX_i[) > + \$(A""M_V_at)echo Timestamp >\$][@ > + > +]])dnl > +DX_CLEANFILES = \\ > +m4_foreach([DX_i], [DX_loop], > +[[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\ > +]])dnl > + -r \\ > + \$(DX_CLEAN_HTML) \\ > + \$(DX_CLEAN_CHM) \\ > + \$(DX_CLEAN_CHI) \\ > + \$(DX_CLEAN_MAN) \\ > + \$(DX_CLEAN_RTF) \\ > + \$(DX_CLEAN_XML) \\ > + \$(DX_CLEAN_PS) \\ > + \$(DX_CLEAN_PDF) \\ > + \$(DX_CLEAN_LATEX)" > +else > + DX_SNIPPET_doc="" > +fi > +AC_SUBST([DX_RULES], > +["${DX_SNIPPET_doc}"])dnl > +AM_SUBST_NOTMAKE([DX_RULES]) > + > #For debugging: > -#echo DX_FLAG_doc=$DX_FLAG_doc > +echo DX_FLAG_doc=$DX_FLAG_doc > #echo DX_FLAG_dot=$DX_FLAG_dot > #echo DX_FLAG_man=$DX_FLAG_man > -#echo DX_FLAG_html=$DX_FLAG_html > +echo DX_FLAG_html=$DX_FLAG_html > #echo DX_FLAG_chm=$DX_FLAG_chm > #echo DX_FLAG_chi=$DX_FLAG_chi > #echo DX_FLAG_rtf=$DX_FLAG_rtf > @@ -530,4 +607,4 @@ esac > #echo DX_FLAG_pdf=$DX_FLAG_pdf > #echo DX_FLAG_ps=$DX_FLAG_ps > #echo DX_ENV=$DX_ENV > -]) > +]) > \ No newline at end of file > -- > 2.5.0 > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp >
Thanks, let me see if I can get this same result, I did that same procedure so many times - assume you are on 15.10 basic ubuntu box ? On 14 February 2016 at 15:49, Bill Fischofer <bill.fischofer@linaro.org> wrote: > Applying this series to a fresh clone if I do: > > ./bootstrap > ./configure --enable-cunit-support --enable-user-guides > make doxygen-doc > > I get this: > > bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc > DXGEN doc/application-api-guide/doxygen.cfg > error: configuration file ./doc/application-api-guide/doxygen.cfg not > found! > Doxygen version 1.8.9.1 > Copyright Dimitri van Heesch 1997-2014 > > You can use doxygen in a number of ways: > > 1) Use doxygen to generate a template configuration file: > /usr/bin/doxygen [-s] -g [configName] > > If - is used for configName doxygen will write to standard output. > > 2) Use doxygen to update an old configuration file: > /usr/bin/doxygen [-s] -u [configName] > > 3) Use doxygen to generate documentation using an existing configuration > file: > /usr/bin/doxygen [configName] > > If - is used for configName doxygen will read from standard input. > > 4) Use doxygen to generate a template file controlling the layout of the > generated documentation: > /usr/bin/doxygen -l [layoutFileName.xml] > > 5) Use doxygen to generate a template style sheet file for RTF, HTML or > Latex. > RTF: /usr/bin/doxygen -w rtf styleSheetFile > HTML: /usr/bin/doxygen -w html headerFile footerFile > styleSheetFile [configFile] > LaTeX: /usr/bin/doxygen -w latex headerFile footerFile > styleSheetFile [configFile] > > 6) Use doxygen to generate a rtf extensions file > RTF: /usr/bin/doxygen -e rtf extensionsFile > > If -s is specified the comments of the configuration items in the config > file will be omitted. > If configName is omitted `Doxyfile' will be used as a default. > > -v print version string > Makefile:893: recipe for target > 'doc/application-api-guide/opendataplane.tag' failed > make: *** [doc/application-api-guide/opendataplane.tag] Error 1 > > --- > If I do a make (which seems to generate the user guides correctly) and > then do a make doxygen-doc I get this: > > bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc > make: *** No rule to make target 'doc/application-api-guide/doxygen.cfg', > needed by 'doc/application-api-guide/opendataplane.tag'. Stop. > > > > > On Sat, Feb 13, 2016 at 9:42 PM, Mike Holmes <mike.holmes@linaro.org> > wrote: > >> fixes https://bugs.linaro.org/show_bug.cgi?id=1946 >> >> Move to the latest m4 scripts for doxygen and revert to using it without >> modification, thus make doxygen-html becomes make doxygen-doc. >> Also cleans up the last parts of the previously removed .pdf support. >> Output now left in application-api-guide to match the other guides. >> >> Signed-off-by: Mike Holmes <mike.holmes@linaro.org> >> --- >> Makefile.am | 2 +- >> README | 2 +- >> aminclude.am | 167 ------------------- >> configure.ac | 5 +- >> m4/ax_prog_doxygen.m4 | 449 >> +++++++++++++++++++++++++++++--------------------- >> 5 files changed, 268 insertions(+), 357 deletions(-) >> delete mode 100644 aminclude.am >> >> diff --git a/Makefile.am b/Makefile.am >> index 2acbe3d..2129472 100644 >> --- a/Makefile.am >> +++ b/Makefile.am >> @@ -15,6 +15,6 @@ SUBDIRS = @platform_with_platform@ \ >> example \ >> scripts >> >> -include $(top_srcdir)/aminclude.am >> +@DX_RULES@ >> >> EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README .scmversion >> diff --git a/README b/README >> index d8583be..4350b95 100644 >> --- a/README >> +++ b/README >> @@ -17,7 +17,7 @@ Main git repository: >> In general you can build: >> ./bootstrap >> ./configure >> - Use 'make' to build ODP library and samples and 'make doxygen-html' >> to build >> + Use 'make' to build ODP library and samples and 'make doxygen-doc' >> to build >> ODP API documentation. 'make install' will copy all required headers >> and >> binary files to the install directory. >> >> diff --git a/aminclude.am b/aminclude.am >> deleted file mode 100644 >> index 1b0ec01..0000000 >> --- a/aminclude.am >> +++ /dev/null >> @@ -1,167 +0,0 @@ >> -# LICENSE >> -# >> -# Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> >> -# >> -# Copying and distribution of this file, with or without modification, >> are >> -# permitted in any medium without royalty provided the copyright notice >> -# and this notice are preserved. This file is offered as-is, without >> any >> -# warranty. >> -# >> - >> -## --------------------------------- ## >> -## Format-independent Doxygen rules. ## >> -## --------------------------------- ## >> - >> -if DX_COND_doc >> - >> -## ------------------------------- ## >> -## Rules specific for HTML output. ## >> -## ------------------------------- ## >> - >> -if DX_COND_html >> - >> -DX_CLEAN_HTML = @DX_DOCDIR@/html >> - >> -endif DX_COND_html >> - >> -## ------------------------------ ## >> -## Rules specific for CHM output. ## >> -## ------------------------------ ## >> - >> -if DX_COND_chm >> - >> -DX_CLEAN_CHM = @DX_DOCDIR@/chm >> - >> -if DX_COND_chi >> - >> -DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi >> - >> -endif DX_COND_chi >> - >> -endif DX_COND_chm >> - >> -## ------------------------------ ## >> -## Rules specific for MAN output. ## >> -## ------------------------------ ## >> - >> -if DX_COND_man >> - >> -DX_CLEAN_MAN = @DX_DOCDIR@/man >> - >> -endif DX_COND_man >> - >> -## ------------------------------ ## >> -## Rules specific for RTF output. ## >> -## ------------------------------ ## >> - >> -if DX_COND_rtf >> - >> -DX_CLEAN_RTF = @DX_DOCDIR@/rtf >> - >> -endif DX_COND_rtf >> - >> -## ------------------------------ ## >> -## Rules specific for XML output. ## >> -## ------------------------------ ## >> - >> -if DX_COND_xml >> - >> -DX_CLEAN_XML = @DX_DOCDIR@/xml >> - >> -endif DX_COND_xml >> - >> -## ----------------------------- ## >> -## Rules specific for PS output. ## >> -## ----------------------------- ## >> - >> -if DX_COND_ps >> - >> -DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps >> - >> -DX_PS_GOAL = doxygen-ps >> - >> -doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps >> - >> -@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag >> - cd @DX_DOCDIR@/latex; \ >> - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >> - $(DX_LATEX) refman.tex; \ >> - $(MAKEINDEX_PATH) refman.idx; \ >> - $(DX_LATEX) refman.tex; \ >> - countdown=5; \ >> - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ >> - refman.log > /dev/null 2>&1 \ >> - && test $$countdown -gt 0; do \ >> - $(DX_LATEX) refman.tex; \ >> - countdown=`expr $$countdown - 1`; \ >> - done; \ >> - $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi >> - >> -endif DX_COND_ps >> - >> -## ------------------------------ ## >> -## Rules specific for PDF output. ## >> -## ------------------------------ ## >> - >> -if DX_COND_pdf >> - >> -DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf >> - >> -DX_PDF_GOAL = doxygen-pdf >> - >> -doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf >> - >> -@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag >> - cd @DX_DOCDIR@/latex; \ >> - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >> - $(DX_PDFLATEX) refman.tex; \ >> - $(DX_MAKEINDEX) refman.idx; \ >> - $(DX_PDFLATEX) refman.tex; \ >> - countdown=5; \ >> - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ >> - refman.log > /dev/null 2>&1 \ >> - && test $$countdown -gt 0; do \ >> - $(DX_PDFLATEX) refman.tex; \ >> - countdown=`expr $$countdown - 1`; \ >> - done; \ >> - mv refman.pdf ../@PACKAGE@.pdf >> - >> -endif DX_COND_pdf >> - >> -## ------------------------------------------------- ## >> -## Rules specific for LaTeX (shared for PS and PDF). ## >> -## ------------------------------------------------- ## >> - >> -if DX_COND_latex >> - >> -DX_CLEAN_LATEX = @DX_DOCDIR@/latex >> - >> -endif DX_COND_latex >> - >> -.PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) >> - >> -.INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >> - >> -doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag >> - >> -doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >> - >> -@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) >> - rm -rf @DX_DOCDIR@ >> - make --directory=$(srcdir)/doc/images >> - $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) >> - >> -DX_CLEANFILES = \ >> - @DX_DOCDIR@/@PACKAGE@.tag \ >> - -r \ >> - $(DX_CLEAN_HTML) \ >> - $(DX_CLEAN_CHM) \ >> - $(DX_CLEAN_CHI) \ >> - $(DX_CLEAN_MAN) \ >> - $(DX_CLEAN_RTF) \ >> - $(DX_CLEAN_XML) \ >> - $(DX_CLEAN_PS) \ >> - $(DX_CLEAN_PDF) \ >> - $(DX_CLEAN_LATEX) >> - >> -endif DX_COND_doc >> diff --git a/configure.ac b/configure.ac >> index 8108ff2..c0c2af3 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -141,8 +141,9 @@ AC_ARG_ENABLE([cunit_support], >> # Setup doxygen documentation >> >> ########################################################################## >> DX_HTML_FEATURE(ON) >> -DX_PDF_FEATURE(ON) >> -DX_INIT_DOXYGEN($PACKAGE_NAME, doc/application-api-guide/doxygen.cfg, >> doc/output) >> +DX_PDF_FEATURE(OFF) >> +DX_PS_FEATURE(OFF) >> +DX_INIT_DOXYGEN($PACKAGE_NAME, >> ${srcdir}/doc/application-api-guide/doxygen.cfg, >> ${builddir}/doc/application-api-guide) >> >> ########################################################################## >> # Enable/disable Unit tests >> >> ########################################################################## >> diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4 >> index 58bb016..d0858ca 100644 >> --- a/m4/ax_prog_doxygen.m4 >> +++ b/m4/ax_prog_doxygen.m4 >> @@ -4,7 +4,7 @@ >> # >> # SYNOPSIS >> # >> -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) >> +# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...) >> # DX_DOXYGEN_FEATURE(ON|OFF) >> # DX_DOT_FEATURE(ON|OFF) >> # DX_HTML_FEATURE(ON|OFF) >> @@ -45,25 +45,28 @@ >> # Once all the feature defaults have been specified, call >> DX_INIT_DOXYGEN >> # with the following parameters: a one-word name for the project for >> use >> # as a filename base etc., an optional configuration file name (the >> -# default is 'Doxyfile', the same as Doxygen's default), and an >> optional >> -# output directory name (the default is 'doxygen-doc'). >> +# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), and >> an >> +# optional output directory name (the default is 'doxygen-doc'). To run >> +# doxygen multiple times for different configuration files and output >> +# directories provide more parameters: the second, forth, sixth, etc >> +# parameter are configuration file names and the third, fifth, seventh, >> +# etc parameter are output directories. No checking is done to catch >> +# duplicates. >> # >> # Automake Support >> # >> -# The following is a template aminclude.am file for use with Automake. >> -# Make targets and variables values are controlled by the various >> -# DX_COND_* conditionals set by autoconf. >> +# The DX_RULES substitution can be used to add all needed rules to the >> +# Makefile. Note that this is a substitution without being a variable: >> +# only the @DX_RULES@ syntax will work. >> # >> # The provided targets are: >> # >> # doxygen-doc: Generate all doxygen documentation. >> # >> -# doxygen-html: Run doxygen, which will generate some of the >> +# doxygen-run: Run doxygen, which will generate some of the >> # documentation (HTML, CHM, CHI, MAN, RTF, XML) >> # but will not do the post processing required >> -# for the rest of it (PS, PDF, and some MAN). >> -# >> -# doxygen-man: Rename some doxygen generated man pages. >> +# for the rest of it (PS, PDF). >> # >> # doxygen-ps: Generate doxygen PostScript documentation. >> # >> @@ -84,177 +87,17 @@ >> # >> # Then add this variable to MOSTLYCLEANFILES. >> # >> -# ----- begin aminclude.am ------------------------------------- >> -# >> -# ## --------------------------------- ## >> -# ## Format-independent Doxygen rules. ## >> -# ## --------------------------------- ## >> -# >> -# if DX_COND_doc >> -# >> -# ## ------------------------------- ## >> -# ## Rules specific for HTML output. ## >> -# ## ------------------------------- ## >> -# >> -# if DX_COND_html >> -# >> -# DX_CLEAN_HTML = @DX_DOCDIR@/html >> -# >> -# endif DX_COND_html >> -# >> -# ## ------------------------------ ## >> -# ## Rules specific for CHM output. ## >> -# ## ------------------------------ ## >> -# >> -# if DX_COND_chm >> -# >> -# DX_CLEAN_CHM = @DX_DOCDIR@/chm >> -# >> -# if DX_COND_chi >> -# >> -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi >> -# >> -# endif DX_COND_chi >> -# >> -# endif DX_COND_chm >> -# >> -# ## ------------------------------ ## >> -# ## Rules specific for MAN output. ## >> -# ## ------------------------------ ## >> -# >> -# if DX_COND_man >> -# >> -# DX_CLEAN_MAN = @DX_DOCDIR@/man >> -# >> -# endif DX_COND_man >> -# >> -# ## ------------------------------ ## >> -# ## Rules specific for RTF output. ## >> -# ## ------------------------------ ## >> -# >> -# if DX_COND_rtf >> -# >> -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf >> -# >> -# endif DX_COND_rtf >> -# >> -# ## ------------------------------ ## >> -# ## Rules specific for XML output. ## >> -# ## ------------------------------ ## >> -# >> -# if DX_COND_xml >> -# >> -# DX_CLEAN_XML = @DX_DOCDIR@/xml >> -# >> -# endif DX_COND_xml >> -# >> -# ## ----------------------------- ## >> -# ## Rules specific for PS output. ## >> -# ## ----------------------------- ## >> -# >> -# if DX_COND_ps >> -# >> -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps >> -# >> -# DX_PS_GOAL = doxygen-ps >> -# >> -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps >> -# >> -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag >> -# cd @DX_DOCDIR@/latex; \ >> -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >> -# $(DX_LATEX) refman.tex; \ >> -# $(MAKEINDEX_PATH) refman.idx; \ >> -# $(DX_LATEX) refman.tex; \ >> -# countdown=5; \ >> -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references >> right)' \ >> -# refman.log > /dev/null 2>&1 \ >> -# && test $$countdown -gt 0; do \ >> -# $(DX_LATEX) refman.tex; \ >> -# countdown=`expr $$countdown - 1`; \ >> -# done; \ >> -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi >> -# >> -# endif DX_COND_ps >> -# >> -# ## ------------------------------ ## >> -# ## Rules specific for PDF output. ## >> -# ## ------------------------------ ## >> -# >> -# if DX_COND_pdf >> -# >> -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf >> -# >> -# DX_PDF_GOAL = doxygen-pdf >> -# >> -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf >> -# >> -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag >> -# cd @DX_DOCDIR@/latex; \ >> -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >> -# $(DX_PDFLATEX) refman.tex; \ >> -# $(DX_MAKEINDEX) refman.idx; \ >> -# $(DX_PDFLATEX) refman.tex; \ >> -# countdown=5; \ >> -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references >> right)' \ >> -# refman.log > /dev/null 2>&1 \ >> -# && test $$countdown -gt 0; do \ >> -# $(DX_PDFLATEX) refman.tex; \ >> -# countdown=`expr $$countdown - 1`; \ >> -# done; \ >> -# mv refman.pdf ../@PACKAGE@.pdf >> -# >> -# endif DX_COND_pdf >> -# >> -# ## ------------------------------------------------- ## >> -# ## Rules specific for LaTeX (shared for PS and PDF). ## >> -# ## ------------------------------------------------- ## >> -# >> -# if DX_COND_latex >> -# >> -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex >> -# >> -# endif DX_COND_latex >> -# >> -# .PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) >> -# >> -# .INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >> -# >> -# doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag >> -# >> -# doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >> -# >> -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) >> -# rm -rf @DX_DOCDIR@ >> -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) >> -# >> -# DX_CLEANFILES = \ >> -# @DX_DOCDIR@/@PACKAGE@.tag \ >> -# -r \ >> -# $(DX_CLEAN_HTML) \ >> -# $(DX_CLEAN_CHM) \ >> -# $(DX_CLEAN_CHI) \ >> -# $(DX_CLEAN_MAN) \ >> -# $(DX_CLEAN_RTF) \ >> -# $(DX_CLEAN_XML) \ >> -# $(DX_CLEAN_PS) \ >> -# $(DX_CLEAN_PDF) \ >> -# $(DX_CLEAN_LATEX) >> -# >> -# endif DX_COND_doc >> -# >> -# ----- end aminclude.am --------------------------------------- >> -# >> # LICENSE >> # >> # Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> >> +# Copyright (c) 2015 Olaf Mandel <olaf@mandel.name> >> # >> # Copying and distribution of this file, with or without modification, >> are >> # permitted in any medium without royalty provided the copyright notice >> # and this notice are preserved. This file is offered as-is, without >> any >> # warranty. >> >> -#serial 12 >> +#serial 18 >> >> ## ----------## >> ## Defaults. ## >> @@ -278,8 +121,14 @@ AC_DEFUN([DX_FEATURE_ps], ON) >> >> # DX_ENV_APPEND(VARIABLE, VALUE) >> # ------------------------------ >> -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. >> -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) >> +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it >> +# as a substitution (but not a Makefile variable). The substitution >> +# is skipped if the variable name is VERSION. >> +AC_DEFUN([DX_ENV_APPEND], >> +[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl >> +m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl >> +AM_SUBST_NOTMAKE([$1])])dnl >> +]) >> >> # DX_DIRNAME_EXPR >> # --------------- >> @@ -364,7 +213,6 @@ if DX_TEST_FEATURE([$1]); then >> $5 >> : >> fi >> -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) >> if DX_TEST_FEATURE([$1]); then >> $6 >> : >> @@ -392,23 +240,38 @@ AC_DEFUN([DX_XML_FEATURE], >> [AC_DEFUN([DX_FEATURE_xml], [$1])]) >> AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) >> AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) >> >> -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) >> -# --------------------------------------------------------- >> +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...) >> +# -------------------------------------------------------------- >> # PROJECT also serves as the base name for the documentation files. >> -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is >> "doxygen-doc". >> +# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is >> +# "doxygen-doc". >> +# More arguments are interpreted as interleaved CONFIG-FILE and >> +# OUTPUT-DOC-DIR values. >> AC_DEFUN([DX_INIT_DOXYGEN], [ >> >> # Files: >> AC_SUBST([DX_PROJECT], [$1]) >> -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) >> -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) >> +AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])']) >> +AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])']) >> +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2, >> + [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]), >> + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), >> + [$(srcdir)/Doxyfile])')])])dnl >> +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2, >> + [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]), >> + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), >> + [doxygen-doc])')])])dnl >> +m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1, >> + [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])], >> + [])))dnl >> >> # Environment variables used inside doxygen.cfg: >> DX_ENV_APPEND(SRCDIR, $srcdir) >> -DX_ENV_APPEND(PROJECT, $DX_PROJECT) >> -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) >> +DX_ENV_APPEND(BUILDDIR, $builddir) >> DX_ENV_APPEND(VERSION, $VERSION) >> DX_ENV_APPEND(WITH_PLATFORM, $with_platform) >> +DX_ENV_APPEND(PROJECT, $DX_PROJECT) >> +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) >> >> # Doxygen itself: >> DX_ARG_ABLE(doc, [generate any doxygen documentation], >> @@ -495,7 +358,6 @@ DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], >> DX_REQUIRE_PROG([DX_EGREP], egrep)]) >> >> # LaTeX generation for PS and/or PDF: >> -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || >> DX_TEST_FEATURE(pdf)) >> if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then >> DX_ENV_APPEND(GENERATE_LATEX, YES) >> else >> @@ -518,11 +380,226 @@ a4wide|a4|letter|legal|executive) >> ;; >> esac >> >> +# Rules: >> +if test $DX_FLAG_html -eq 1; then >> + DX_SNIPPET_html="## ------------------------------- ## >> +## Rules specific for HTML output. ## >> +## ------------------------------- ## >> + >> +DX_CLEAN_HTML = \$(DX_DOCDIR)/html[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/html]]) >> + >> +" >> +else >> + DX_SNIPPET_html="" >> +fi >> +if test $DX_FLAG_chi -eq 1; then >> + DX_SNIPPET_chi=" >> +DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])" >> +else >> + DX_SNIPPET_chi="" >> +fi >> +if test $DX_FLAG_chm -eq 1; then >> + DX_SNIPPET_chm="## ------------------------------ ## >> +## Rules specific for CHM output. ## >> +## ------------------------------ ## >> + >> +DX_CLEAN_CHM = \$(DX_DOCDIR)/chm[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/chm]])\ >> +${DX_SNIPPET_chi} >> + >> +" >> +else >> + DX_SNIPPET_chm="" >> +fi >> +if test $DX_FLAG_man -eq 1; then >> + DX_SNIPPET_man="## ------------------------------ ## >> +## Rules specific for MAN output. ## >> +## ------------------------------ ## >> + >> +DX_CLEAN_MAN = \$(DX_DOCDIR)/man[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/man]]) >> + >> +" >> +else >> + DX_SNIPPET_man="" >> +fi >> +if test $DX_FLAG_rtf -eq 1; then >> + DX_SNIPPET_rtf="## ------------------------------ ## >> +## Rules specific for RTF output. ## >> +## ------------------------------ ## >> + >> +DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/rtf]]) >> + >> +" >> +else >> + DX_SNIPPET_rtf="" >> +fi >> +if test $DX_FLAG_xml -eq 1; then >> + DX_SNIPPET_xml="## ------------------------------ ## >> +## Rules specific for XML output. ## >> +## ------------------------------ ## >> + >> +DX_CLEAN_XML = \$(DX_DOCDIR)/xml[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/xml]]) >> + >> +" >> +else >> + DX_SNIPPET_xml="" >> +fi >> +if test $DX_FLAG_ps -eq 1; then >> + DX_SNIPPET_ps="## ----------------------------- ## >> +## Rules specific for PS output. ## >> +## ----------------------------- ## >> + >> +DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]]) >> + >> +DX_PS_GOAL = doxygen-ps >> + >> +doxygen-ps: \$(DX_CLEAN_PS) >> + >> +m4_foreach([DX_i], [DX_loop], >> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag >> + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ >> + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ >> + \$(DX_LATEX) refman.tex; \\ >> + \$(DX_MAKEINDEX) refman.idx; \\ >> + \$(DX_LATEX) refman.tex; \\ >> + countdown=5; \\ >> + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' >> \\ >> + refman.log > /dev/null 2>&1 \\ >> + && test \$\$countdown -gt 0; do \\ >> + \$(DX_LATEX) refman.tex; \\ >> + countdown=\`expr \$\$countdown - 1\`; \\ >> + done; \\ >> + \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi >> + >> +]])dnl >> +" >> +else >> + DX_SNIPPET_ps="" >> +fi >> +if test $DX_FLAG_pdf -eq 1; then >> + DX_SNIPPET_pdf="## ------------------------------ ## >> +## Rules specific for PDF output. ## >> +## ------------------------------ ## >> + >> +DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]]) >> + >> +DX_PDF_GOAL = doxygen-pdf >> + >> +doxygen-pdf: \$(DX_CLEAN_PDF) >> + >> +m4_foreach([DX_i], [DX_loop], >> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: >> \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag >> + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ >> + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ >> + \$(DX_PDFLATEX) refman.tex; \\ >> + \$(DX_MAKEINDEX) refman.idx; \\ >> + \$(DX_PDFLATEX) refman.tex; \\ >> + countdown=5; \\ >> + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' >> \\ >> + refman.log > /dev/null 2>&1 \\ >> + && test \$\$countdown -gt 0; do \\ >> + \$(DX_PDFLATEX) refman.tex; \\ >> + countdown=\`expr \$\$countdown - 1\`; \\ >> + done; \\ >> + mv refman.pdf ../\$(PACKAGE).pdf >> + >> +]])dnl >> +" >> +else >> + DX_SNIPPET_pdf="" >> +fi >> +if test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1; then >> + DX_SNIPPET_latex="## >> ------------------------------------------------- ## >> +## Rules specific for LaTeX (shared for PS and PDF). ## >> +## ------------------------------------------------- ## >> + >> +DX_V_LATEX = \$(_DX_v_LATEX_\$(V)) >> +_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY)) >> +_DX_v_LATEX_0 = @echo \" LATEX \" \$[]][[]@; >> + >> +DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex[]dnl >> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >> + \$(DX_DOCDIR]DX_i[)/latex]]) >> + >> +" >> +else >> + DX_SNIPPET_latex="" >> +fi >> + >> +if test $DX_FLAG_doc -eq 1; then >> + DX_SNIPPET_doc="## --------------------------------- ## >> +## Format-independent Doxygen rules. ## >> +## --------------------------------- ## >> + >> +${DX_SNIPPET_html}\ >> +${DX_SNIPPET_chm}\ >> +${DX_SNIPPET_man}\ >> +${DX_SNIPPET_rtf}\ >> +${DX_SNIPPET_xml}\ >> +${DX_SNIPPET_ps}\ >> +${DX_SNIPPET_pdf}\ >> +${DX_SNIPPET_latex}\ >> +DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V)) >> +_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY)) >> +_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<; >> + >> +.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >> + >> +.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >> + >> +doxygen-run:[]m4_foreach([DX_i], [DX_loop], >> + [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]]) >> + >> +doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >> + >> +m4_foreach([DX_i], [DX_loop], >> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) >> \$(pkginclude_HEADERS) >> + \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[) >> + \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) >> \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[) >> + \$(A""M_V_at)echo Timestamp >\$][@ >> + >> +]])dnl >> +DX_CLEANFILES = \\ >> +m4_foreach([DX_i], [DX_loop], >> +[[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\ >> +]])dnl >> + -r \\ >> + \$(DX_CLEAN_HTML) \\ >> + \$(DX_CLEAN_CHM) \\ >> + \$(DX_CLEAN_CHI) \\ >> + \$(DX_CLEAN_MAN) \\ >> + \$(DX_CLEAN_RTF) \\ >> + \$(DX_CLEAN_XML) \\ >> + \$(DX_CLEAN_PS) \\ >> + \$(DX_CLEAN_PDF) \\ >> + \$(DX_CLEAN_LATEX)" >> +else >> + DX_SNIPPET_doc="" >> +fi >> +AC_SUBST([DX_RULES], >> +["${DX_SNIPPET_doc}"])dnl >> +AM_SUBST_NOTMAKE([DX_RULES]) >> + >> #For debugging: >> -#echo DX_FLAG_doc=$DX_FLAG_doc >> +echo DX_FLAG_doc=$DX_FLAG_doc >> #echo DX_FLAG_dot=$DX_FLAG_dot >> #echo DX_FLAG_man=$DX_FLAG_man >> -#echo DX_FLAG_html=$DX_FLAG_html >> +echo DX_FLAG_html=$DX_FLAG_html >> #echo DX_FLAG_chm=$DX_FLAG_chm >> #echo DX_FLAG_chi=$DX_FLAG_chi >> #echo DX_FLAG_rtf=$DX_FLAG_rtf >> @@ -530,4 +607,4 @@ esac >> #echo DX_FLAG_pdf=$DX_FLAG_pdf >> #echo DX_FLAG_ps=$DX_FLAG_ps >> #echo DX_ENV=$DX_ENV >> -]) >> +]) >> \ No newline at end of file >> -- >> 2.5.0 >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> https://lists.linaro.org/mailman/listinfo/lng-odp >> > > -- Mike Holmes Technical Manager - Linaro Networking Group Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs "Work should be fun and collborative, the rest follows"
Yes, I'm vanilla Ubuntu 15.10 On Mon, Feb 15, 2016 at 7:12 AM, Mike Holmes <mike.holmes@linaro.org> wrote: > Thanks, let me see if I can get this same result, I did that same > procedure so many times - assume you are on 15.10 basic ubuntu box ? > > On 14 February 2016 at 15:49, Bill Fischofer <bill.fischofer@linaro.org> > wrote: > >> Applying this series to a fresh clone if I do: >> >> ./bootstrap >> ./configure --enable-cunit-support --enable-user-guides >> make doxygen-doc >> >> I get this: >> >> bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc >> DXGEN doc/application-api-guide/doxygen.cfg >> error: configuration file ./doc/application-api-guide/doxygen.cfg not >> found! >> Doxygen version 1.8.9.1 >> Copyright Dimitri van Heesch 1997-2014 >> >> You can use doxygen in a number of ways: >> >> 1) Use doxygen to generate a template configuration file: >> /usr/bin/doxygen [-s] -g [configName] >> >> If - is used for configName doxygen will write to standard output. >> >> 2) Use doxygen to update an old configuration file: >> /usr/bin/doxygen [-s] -u [configName] >> >> 3) Use doxygen to generate documentation using an existing configuration >> file: >> /usr/bin/doxygen [configName] >> >> If - is used for configName doxygen will read from standard input. >> >> 4) Use doxygen to generate a template file controlling the layout of the >> generated documentation: >> /usr/bin/doxygen -l [layoutFileName.xml] >> >> 5) Use doxygen to generate a template style sheet file for RTF, HTML or >> Latex. >> RTF: /usr/bin/doxygen -w rtf styleSheetFile >> HTML: /usr/bin/doxygen -w html headerFile footerFile >> styleSheetFile [configFile] >> LaTeX: /usr/bin/doxygen -w latex headerFile footerFile >> styleSheetFile [configFile] >> >> 6) Use doxygen to generate a rtf extensions file >> RTF: /usr/bin/doxygen -e rtf extensionsFile >> >> If -s is specified the comments of the configuration items in the config >> file will be omitted. >> If configName is omitted `Doxyfile' will be used as a default. >> >> -v print version string >> Makefile:893: recipe for target >> 'doc/application-api-guide/opendataplane.tag' failed >> make: *** [doc/application-api-guide/opendataplane.tag] Error 1 >> >> --- >> If I do a make (which seems to generate the user guides correctly) and >> then do a make doxygen-doc I get this: >> >> bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc >> make: *** No rule to make target 'doc/application-api-guide/doxygen.cfg', >> needed by 'doc/application-api-guide/opendataplane.tag'. Stop. >> >> >> >> >> On Sat, Feb 13, 2016 at 9:42 PM, Mike Holmes <mike.holmes@linaro.org> >> wrote: >> >>> fixes https://bugs.linaro.org/show_bug.cgi?id=1946 >>> >>> Move to the latest m4 scripts for doxygen and revert to using it without >>> modification, thus make doxygen-html becomes make doxygen-doc. >>> Also cleans up the last parts of the previously removed .pdf support. >>> Output now left in application-api-guide to match the other guides. >>> >>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org> >>> --- >>> Makefile.am | 2 +- >>> README | 2 +- >>> aminclude.am | 167 ------------------- >>> configure.ac | 5 +- >>> m4/ax_prog_doxygen.m4 | 449 >>> +++++++++++++++++++++++++++++--------------------- >>> 5 files changed, 268 insertions(+), 357 deletions(-) >>> delete mode 100644 aminclude.am >>> >>> diff --git a/Makefile.am b/Makefile.am >>> index 2acbe3d..2129472 100644 >>> --- a/Makefile.am >>> +++ b/Makefile.am >>> @@ -15,6 +15,6 @@ SUBDIRS = @platform_with_platform@ \ >>> example \ >>> scripts >>> >>> -include $(top_srcdir)/aminclude.am >>> +@DX_RULES@ >>> >>> EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README .scmversion >>> diff --git a/README b/README >>> index d8583be..4350b95 100644 >>> --- a/README >>> +++ b/README >>> @@ -17,7 +17,7 @@ Main git repository: >>> In general you can build: >>> ./bootstrap >>> ./configure >>> - Use 'make' to build ODP library and samples and 'make doxygen-html' >>> to build >>> + Use 'make' to build ODP library and samples and 'make doxygen-doc' >>> to build >>> ODP API documentation. 'make install' will copy all required >>> headers and >>> binary files to the install directory. >>> >>> diff --git a/aminclude.am b/aminclude.am >>> deleted file mode 100644 >>> index 1b0ec01..0000000 >>> --- a/aminclude.am >>> +++ /dev/null >>> @@ -1,167 +0,0 @@ >>> -# LICENSE >>> -# >>> -# Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> >>> -# >>> -# Copying and distribution of this file, with or without >>> modification, are >>> -# permitted in any medium without royalty provided the copyright >>> notice >>> -# and this notice are preserved. This file is offered as-is, without >>> any >>> -# warranty. >>> -# >>> - >>> -## --------------------------------- ## >>> -## Format-independent Doxygen rules. ## >>> -## --------------------------------- ## >>> - >>> -if DX_COND_doc >>> - >>> -## ------------------------------- ## >>> -## Rules specific for HTML output. ## >>> -## ------------------------------- ## >>> - >>> -if DX_COND_html >>> - >>> -DX_CLEAN_HTML = @DX_DOCDIR@/html >>> - >>> -endif DX_COND_html >>> - >>> -## ------------------------------ ## >>> -## Rules specific for CHM output. ## >>> -## ------------------------------ ## >>> - >>> -if DX_COND_chm >>> - >>> -DX_CLEAN_CHM = @DX_DOCDIR@/chm >>> - >>> -if DX_COND_chi >>> - >>> -DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi >>> - >>> -endif DX_COND_chi >>> - >>> -endif DX_COND_chm >>> - >>> -## ------------------------------ ## >>> -## Rules specific for MAN output. ## >>> -## ------------------------------ ## >>> - >>> -if DX_COND_man >>> - >>> -DX_CLEAN_MAN = @DX_DOCDIR@/man >>> - >>> -endif DX_COND_man >>> - >>> -## ------------------------------ ## >>> -## Rules specific for RTF output. ## >>> -## ------------------------------ ## >>> - >>> -if DX_COND_rtf >>> - >>> -DX_CLEAN_RTF = @DX_DOCDIR@/rtf >>> - >>> -endif DX_COND_rtf >>> - >>> -## ------------------------------ ## >>> -## Rules specific for XML output. ## >>> -## ------------------------------ ## >>> - >>> -if DX_COND_xml >>> - >>> -DX_CLEAN_XML = @DX_DOCDIR@/xml >>> - >>> -endif DX_COND_xml >>> - >>> -## ----------------------------- ## >>> -## Rules specific for PS output. ## >>> -## ----------------------------- ## >>> - >>> -if DX_COND_ps >>> - >>> -DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps >>> - >>> -DX_PS_GOAL = doxygen-ps >>> - >>> -doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps >>> - >>> -@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag >>> - cd @DX_DOCDIR@/latex; \ >>> - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>> - $(DX_LATEX) refman.tex; \ >>> - $(MAKEINDEX_PATH) refman.idx; \ >>> - $(DX_LATEX) refman.tex; \ >>> - countdown=5; \ >>> - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ >>> - refman.log > /dev/null 2>&1 \ >>> - && test $$countdown -gt 0; do \ >>> - $(DX_LATEX) refman.tex; \ >>> - countdown=`expr $$countdown - 1`; \ >>> - done; \ >>> - $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi >>> - >>> -endif DX_COND_ps >>> - >>> -## ------------------------------ ## >>> -## Rules specific for PDF output. ## >>> -## ------------------------------ ## >>> - >>> -if DX_COND_pdf >>> - >>> -DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf >>> - >>> -DX_PDF_GOAL = doxygen-pdf >>> - >>> -doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf >>> - >>> -@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag >>> - cd @DX_DOCDIR@/latex; \ >>> - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>> - $(DX_PDFLATEX) refman.tex; \ >>> - $(DX_MAKEINDEX) refman.idx; \ >>> - $(DX_PDFLATEX) refman.tex; \ >>> - countdown=5; \ >>> - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ >>> - refman.log > /dev/null 2>&1 \ >>> - && test $$countdown -gt 0; do \ >>> - $(DX_PDFLATEX) refman.tex; \ >>> - countdown=`expr $$countdown - 1`; \ >>> - done; \ >>> - mv refman.pdf ../@PACKAGE@.pdf >>> - >>> -endif DX_COND_pdf >>> - >>> -## ------------------------------------------------- ## >>> -## Rules specific for LaTeX (shared for PS and PDF). ## >>> -## ------------------------------------------------- ## >>> - >>> -if DX_COND_latex >>> - >>> -DX_CLEAN_LATEX = @DX_DOCDIR@/latex >>> - >>> -endif DX_COND_latex >>> - >>> -.PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) >>> - >>> -.INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>> - >>> -doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag >>> - >>> -doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>> - >>> -@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) >>> - rm -rf @DX_DOCDIR@ >>> - make --directory=$(srcdir)/doc/images >>> - $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) >>> - >>> -DX_CLEANFILES = \ >>> - @DX_DOCDIR@/@PACKAGE@.tag \ >>> - -r \ >>> - $(DX_CLEAN_HTML) \ >>> - $(DX_CLEAN_CHM) \ >>> - $(DX_CLEAN_CHI) \ >>> - $(DX_CLEAN_MAN) \ >>> - $(DX_CLEAN_RTF) \ >>> - $(DX_CLEAN_XML) \ >>> - $(DX_CLEAN_PS) \ >>> - $(DX_CLEAN_PDF) \ >>> - $(DX_CLEAN_LATEX) >>> - >>> -endif DX_COND_doc >>> diff --git a/configure.ac b/configure.ac >>> index 8108ff2..c0c2af3 100644 >>> --- a/configure.ac >>> +++ b/configure.ac >>> @@ -141,8 +141,9 @@ AC_ARG_ENABLE([cunit_support], >>> # Setup doxygen documentation >>> >>> ########################################################################## >>> DX_HTML_FEATURE(ON) >>> -DX_PDF_FEATURE(ON) >>> -DX_INIT_DOXYGEN($PACKAGE_NAME, doc/application-api-guide/doxygen.cfg, >>> doc/output) >>> +DX_PDF_FEATURE(OFF) >>> +DX_PS_FEATURE(OFF) >>> +DX_INIT_DOXYGEN($PACKAGE_NAME, >>> ${srcdir}/doc/application-api-guide/doxygen.cfg, >>> ${builddir}/doc/application-api-guide) >>> >>> ########################################################################## >>> # Enable/disable Unit tests >>> >>> ########################################################################## >>> diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4 >>> index 58bb016..d0858ca 100644 >>> --- a/m4/ax_prog_doxygen.m4 >>> +++ b/m4/ax_prog_doxygen.m4 >>> @@ -4,7 +4,7 @@ >>> # >>> # SYNOPSIS >>> # >>> -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) >>> +# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...) >>> # DX_DOXYGEN_FEATURE(ON|OFF) >>> # DX_DOT_FEATURE(ON|OFF) >>> # DX_HTML_FEATURE(ON|OFF) >>> @@ -45,25 +45,28 @@ >>> # Once all the feature defaults have been specified, call >>> DX_INIT_DOXYGEN >>> # with the following parameters: a one-word name for the project for >>> use >>> # as a filename base etc., an optional configuration file name (the >>> -# default is 'Doxyfile', the same as Doxygen's default), and an >>> optional >>> -# output directory name (the default is 'doxygen-doc'). >>> +# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), >>> and an >>> +# optional output directory name (the default is 'doxygen-doc'). To >>> run >>> +# doxygen multiple times for different configuration files and output >>> +# directories provide more parameters: the second, forth, sixth, etc >>> +# parameter are configuration file names and the third, fifth, >>> seventh, >>> +# etc parameter are output directories. No checking is done to catch >>> +# duplicates. >>> # >>> # Automake Support >>> # >>> -# The following is a template aminclude.am file for use with >>> Automake. >>> -# Make targets and variables values are controlled by the various >>> -# DX_COND_* conditionals set by autoconf. >>> +# The DX_RULES substitution can be used to add all needed rules to the >>> +# Makefile. Note that this is a substitution without being a variable: >>> +# only the @DX_RULES@ syntax will work. >>> # >>> # The provided targets are: >>> # >>> # doxygen-doc: Generate all doxygen documentation. >>> # >>> -# doxygen-html: Run doxygen, which will generate some of the >>> +# doxygen-run: Run doxygen, which will generate some of the >>> # documentation (HTML, CHM, CHI, MAN, RTF, XML) >>> # but will not do the post processing required >>> -# for the rest of it (PS, PDF, and some MAN). >>> -# >>> -# doxygen-man: Rename some doxygen generated man pages. >>> +# for the rest of it (PS, PDF). >>> # >>> # doxygen-ps: Generate doxygen PostScript documentation. >>> # >>> @@ -84,177 +87,17 @@ >>> # >>> # Then add this variable to MOSTLYCLEANFILES. >>> # >>> -# ----- begin aminclude.am ------------------------------------- >>> -# >>> -# ## --------------------------------- ## >>> -# ## Format-independent Doxygen rules. ## >>> -# ## --------------------------------- ## >>> -# >>> -# if DX_COND_doc >>> -# >>> -# ## ------------------------------- ## >>> -# ## Rules specific for HTML output. ## >>> -# ## ------------------------------- ## >>> -# >>> -# if DX_COND_html >>> -# >>> -# DX_CLEAN_HTML = @DX_DOCDIR@/html >>> -# >>> -# endif DX_COND_html >>> -# >>> -# ## ------------------------------ ## >>> -# ## Rules specific for CHM output. ## >>> -# ## ------------------------------ ## >>> -# >>> -# if DX_COND_chm >>> -# >>> -# DX_CLEAN_CHM = @DX_DOCDIR@/chm >>> -# >>> -# if DX_COND_chi >>> -# >>> -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi >>> -# >>> -# endif DX_COND_chi >>> -# >>> -# endif DX_COND_chm >>> -# >>> -# ## ------------------------------ ## >>> -# ## Rules specific for MAN output. ## >>> -# ## ------------------------------ ## >>> -# >>> -# if DX_COND_man >>> -# >>> -# DX_CLEAN_MAN = @DX_DOCDIR@/man >>> -# >>> -# endif DX_COND_man >>> -# >>> -# ## ------------------------------ ## >>> -# ## Rules specific for RTF output. ## >>> -# ## ------------------------------ ## >>> -# >>> -# if DX_COND_rtf >>> -# >>> -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf >>> -# >>> -# endif DX_COND_rtf >>> -# >>> -# ## ------------------------------ ## >>> -# ## Rules specific for XML output. ## >>> -# ## ------------------------------ ## >>> -# >>> -# if DX_COND_xml >>> -# >>> -# DX_CLEAN_XML = @DX_DOCDIR@/xml >>> -# >>> -# endif DX_COND_xml >>> -# >>> -# ## ----------------------------- ## >>> -# ## Rules specific for PS output. ## >>> -# ## ----------------------------- ## >>> -# >>> -# if DX_COND_ps >>> -# >>> -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps >>> -# >>> -# DX_PS_GOAL = doxygen-ps >>> -# >>> -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps >>> -# >>> -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag >>> -# cd @DX_DOCDIR@/latex; \ >>> -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>> -# $(DX_LATEX) refman.tex; \ >>> -# $(MAKEINDEX_PATH) refman.idx; \ >>> -# $(DX_LATEX) refman.tex; \ >>> -# countdown=5; \ >>> -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references >>> right)' \ >>> -# refman.log > /dev/null 2>&1 \ >>> -# && test $$countdown -gt 0; do \ >>> -# $(DX_LATEX) refman.tex; \ >>> -# countdown=`expr $$countdown - 1`; \ >>> -# done; \ >>> -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi >>> -# >>> -# endif DX_COND_ps >>> -# >>> -# ## ------------------------------ ## >>> -# ## Rules specific for PDF output. ## >>> -# ## ------------------------------ ## >>> -# >>> -# if DX_COND_pdf >>> -# >>> -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf >>> -# >>> -# DX_PDF_GOAL = doxygen-pdf >>> -# >>> -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf >>> -# >>> -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag >>> -# cd @DX_DOCDIR@/latex; \ >>> -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>> -# $(DX_PDFLATEX) refman.tex; \ >>> -# $(DX_MAKEINDEX) refman.idx; \ >>> -# $(DX_PDFLATEX) refman.tex; \ >>> -# countdown=5; \ >>> -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references >>> right)' \ >>> -# refman.log > /dev/null 2>&1 \ >>> -# && test $$countdown -gt 0; do \ >>> -# $(DX_PDFLATEX) refman.tex; \ >>> -# countdown=`expr $$countdown - 1`; \ >>> -# done; \ >>> -# mv refman.pdf ../@PACKAGE@.pdf >>> -# >>> -# endif DX_COND_pdf >>> -# >>> -# ## ------------------------------------------------- ## >>> -# ## Rules specific for LaTeX (shared for PS and PDF). ## >>> -# ## ------------------------------------------------- ## >>> -# >>> -# if DX_COND_latex >>> -# >>> -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex >>> -# >>> -# endif DX_COND_latex >>> -# >>> -# .PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) >>> -# >>> -# .INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>> -# >>> -# doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag >>> -# >>> -# doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>> -# >>> -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) >>> -# rm -rf @DX_DOCDIR@ >>> -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) >>> -# >>> -# DX_CLEANFILES = \ >>> -# @DX_DOCDIR@/@PACKAGE@.tag \ >>> -# -r \ >>> -# $(DX_CLEAN_HTML) \ >>> -# $(DX_CLEAN_CHM) \ >>> -# $(DX_CLEAN_CHI) \ >>> -# $(DX_CLEAN_MAN) \ >>> -# $(DX_CLEAN_RTF) \ >>> -# $(DX_CLEAN_XML) \ >>> -# $(DX_CLEAN_PS) \ >>> -# $(DX_CLEAN_PDF) \ >>> -# $(DX_CLEAN_LATEX) >>> -# >>> -# endif DX_COND_doc >>> -# >>> -# ----- end aminclude.am --------------------------------------- >>> -# >>> # LICENSE >>> # >>> # Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> >>> +# Copyright (c) 2015 Olaf Mandel <olaf@mandel.name> >>> # >>> # Copying and distribution of this file, with or without >>> modification, are >>> # permitted in any medium without royalty provided the copyright >>> notice >>> # and this notice are preserved. This file is offered as-is, without >>> any >>> # warranty. >>> >>> -#serial 12 >>> +#serial 18 >>> >>> ## ----------## >>> ## Defaults. ## >>> @@ -278,8 +121,14 @@ AC_DEFUN([DX_FEATURE_ps], ON) >>> >>> # DX_ENV_APPEND(VARIABLE, VALUE) >>> # ------------------------------ >>> -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. >>> -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) >>> +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it >>> +# as a substitution (but not a Makefile variable). The substitution >>> +# is skipped if the variable name is VERSION. >>> +AC_DEFUN([DX_ENV_APPEND], >>> +[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl >>> +m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl >>> +AM_SUBST_NOTMAKE([$1])])dnl >>> +]) >>> >>> # DX_DIRNAME_EXPR >>> # --------------- >>> @@ -364,7 +213,6 @@ if DX_TEST_FEATURE([$1]); then >>> $5 >>> : >>> fi >>> -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) >>> if DX_TEST_FEATURE([$1]); then >>> $6 >>> : >>> @@ -392,23 +240,38 @@ AC_DEFUN([DX_XML_FEATURE], >>> [AC_DEFUN([DX_FEATURE_xml], [$1])]) >>> AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) >>> AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) >>> >>> -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) >>> -# --------------------------------------------------------- >>> +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...) >>> +# -------------------------------------------------------------- >>> # PROJECT also serves as the base name for the documentation files. >>> -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is >>> "doxygen-doc". >>> +# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is >>> +# "doxygen-doc". >>> +# More arguments are interpreted as interleaved CONFIG-FILE and >>> +# OUTPUT-DOC-DIR values. >>> AC_DEFUN([DX_INIT_DOXYGEN], [ >>> >>> # Files: >>> AC_SUBST([DX_PROJECT], [$1]) >>> -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) >>> -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) >>> +AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])']) >>> +AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])']) >>> +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2, >>> + [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]), >>> + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), >>> + [$(srcdir)/Doxyfile])')])])dnl >>> +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2, >>> + [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]), >>> + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), >>> + [doxygen-doc])')])])dnl >>> +m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1, >>> + [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])], >>> + [])))dnl >>> >>> # Environment variables used inside doxygen.cfg: >>> DX_ENV_APPEND(SRCDIR, $srcdir) >>> -DX_ENV_APPEND(PROJECT, $DX_PROJECT) >>> -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) >>> +DX_ENV_APPEND(BUILDDIR, $builddir) >>> DX_ENV_APPEND(VERSION, $VERSION) >>> DX_ENV_APPEND(WITH_PLATFORM, $with_platform) >>> +DX_ENV_APPEND(PROJECT, $DX_PROJECT) >>> +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) >>> >>> # Doxygen itself: >>> DX_ARG_ABLE(doc, [generate any doxygen documentation], >>> @@ -495,7 +358,6 @@ DX_ARG_ABLE(pdf, [generate doxygen PDF >>> documentation], >>> DX_REQUIRE_PROG([DX_EGREP], egrep)]) >>> >>> # LaTeX generation for PS and/or PDF: >>> -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || >>> DX_TEST_FEATURE(pdf)) >>> if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then >>> DX_ENV_APPEND(GENERATE_LATEX, YES) >>> else >>> @@ -518,11 +380,226 @@ a4wide|a4|letter|legal|executive) >>> ;; >>> esac >>> >>> +# Rules: >>> +if test $DX_FLAG_html -eq 1; then >>> + DX_SNIPPET_html="## ------------------------------- ## >>> +## Rules specific for HTML output. ## >>> +## ------------------------------- ## >>> + >>> +DX_CLEAN_HTML = \$(DX_DOCDIR)/html[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/html]]) >>> + >>> +" >>> +else >>> + DX_SNIPPET_html="" >>> +fi >>> +if test $DX_FLAG_chi -eq 1; then >>> + DX_SNIPPET_chi=" >>> +DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])" >>> +else >>> + DX_SNIPPET_chi="" >>> +fi >>> +if test $DX_FLAG_chm -eq 1; then >>> + DX_SNIPPET_chm="## ------------------------------ ## >>> +## Rules specific for CHM output. ## >>> +## ------------------------------ ## >>> + >>> +DX_CLEAN_CHM = \$(DX_DOCDIR)/chm[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/chm]])\ >>> +${DX_SNIPPET_chi} >>> + >>> +" >>> +else >>> + DX_SNIPPET_chm="" >>> +fi >>> +if test $DX_FLAG_man -eq 1; then >>> + DX_SNIPPET_man="## ------------------------------ ## >>> +## Rules specific for MAN output. ## >>> +## ------------------------------ ## >>> + >>> +DX_CLEAN_MAN = \$(DX_DOCDIR)/man[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/man]]) >>> + >>> +" >>> +else >>> + DX_SNIPPET_man="" >>> +fi >>> +if test $DX_FLAG_rtf -eq 1; then >>> + DX_SNIPPET_rtf="## ------------------------------ ## >>> +## Rules specific for RTF output. ## >>> +## ------------------------------ ## >>> + >>> +DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/rtf]]) >>> + >>> +" >>> +else >>> + DX_SNIPPET_rtf="" >>> +fi >>> +if test $DX_FLAG_xml -eq 1; then >>> + DX_SNIPPET_xml="## ------------------------------ ## >>> +## Rules specific for XML output. ## >>> +## ------------------------------ ## >>> + >>> +DX_CLEAN_XML = \$(DX_DOCDIR)/xml[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/xml]]) >>> + >>> +" >>> +else >>> + DX_SNIPPET_xml="" >>> +fi >>> +if test $DX_FLAG_ps -eq 1; then >>> + DX_SNIPPET_ps="## ----------------------------- ## >>> +## Rules specific for PS output. ## >>> +## ----------------------------- ## >>> + >>> +DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]]) >>> + >>> +DX_PS_GOAL = doxygen-ps >>> + >>> +doxygen-ps: \$(DX_CLEAN_PS) >>> + >>> +m4_foreach([DX_i], [DX_loop], >>> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: >>> \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag >>> + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ >>> + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ >>> + \$(DX_LATEX) refman.tex; \\ >>> + \$(DX_MAKEINDEX) refman.idx; \\ >>> + \$(DX_LATEX) refman.tex; \\ >>> + countdown=5; \\ >>> + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' >>> \\ >>> + refman.log > /dev/null 2>&1 \\ >>> + && test \$\$countdown -gt 0; do \\ >>> + \$(DX_LATEX) refman.tex; \\ >>> + countdown=\`expr \$\$countdown - 1\`; \\ >>> + done; \\ >>> + \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi >>> + >>> +]])dnl >>> +" >>> +else >>> + DX_SNIPPET_ps="" >>> +fi >>> +if test $DX_FLAG_pdf -eq 1; then >>> + DX_SNIPPET_pdf="## ------------------------------ ## >>> +## Rules specific for PDF output. ## >>> +## ------------------------------ ## >>> + >>> +DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]]) >>> + >>> +DX_PDF_GOAL = doxygen-pdf >>> + >>> +doxygen-pdf: \$(DX_CLEAN_PDF) >>> + >>> +m4_foreach([DX_i], [DX_loop], >>> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: >>> \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag >>> + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ >>> + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ >>> + \$(DX_PDFLATEX) refman.tex; \\ >>> + \$(DX_MAKEINDEX) refman.idx; \\ >>> + \$(DX_PDFLATEX) refman.tex; \\ >>> + countdown=5; \\ >>> + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' >>> \\ >>> + refman.log > /dev/null 2>&1 \\ >>> + && test \$\$countdown -gt 0; do \\ >>> + \$(DX_PDFLATEX) refman.tex; \\ >>> + countdown=\`expr \$\$countdown - 1\`; \\ >>> + done; \\ >>> + mv refman.pdf ../\$(PACKAGE).pdf >>> + >>> +]])dnl >>> +" >>> +else >>> + DX_SNIPPET_pdf="" >>> +fi >>> +if test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1; then >>> + DX_SNIPPET_latex="## >>> ------------------------------------------------- ## >>> +## Rules specific for LaTeX (shared for PS and PDF). ## >>> +## ------------------------------------------------- ## >>> + >>> +DX_V_LATEX = \$(_DX_v_LATEX_\$(V)) >>> +_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY)) >>> +_DX_v_LATEX_0 = @echo \" LATEX \" \$[]][[]@; >>> + >>> +DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex[]dnl >>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>> + \$(DX_DOCDIR]DX_i[)/latex]]) >>> + >>> +" >>> +else >>> + DX_SNIPPET_latex="" >>> +fi >>> + >>> +if test $DX_FLAG_doc -eq 1; then >>> + DX_SNIPPET_doc="## --------------------------------- ## >>> +## Format-independent Doxygen rules. ## >>> +## --------------------------------- ## >>> + >>> +${DX_SNIPPET_html}\ >>> +${DX_SNIPPET_chm}\ >>> +${DX_SNIPPET_man}\ >>> +${DX_SNIPPET_rtf}\ >>> +${DX_SNIPPET_xml}\ >>> +${DX_SNIPPET_ps}\ >>> +${DX_SNIPPET_pdf}\ >>> +${DX_SNIPPET_latex}\ >>> +DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V)) >>> +_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY)) >>> +_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<; >>> + >>> +.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >>> + >>> +.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >>> + >>> +doxygen-run:[]m4_foreach([DX_i], [DX_loop], >>> + [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]]) >>> + >>> +doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >>> + >>> +m4_foreach([DX_i], [DX_loop], >>> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) >>> \$(pkginclude_HEADERS) >>> + \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[) >>> + \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) >>> \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[) >>> + \$(A""M_V_at)echo Timestamp >\$][@ >>> + >>> +]])dnl >>> +DX_CLEANFILES = \\ >>> +m4_foreach([DX_i], [DX_loop], >>> +[[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\ >>> +]])dnl >>> + -r \\ >>> + \$(DX_CLEAN_HTML) \\ >>> + \$(DX_CLEAN_CHM) \\ >>> + \$(DX_CLEAN_CHI) \\ >>> + \$(DX_CLEAN_MAN) \\ >>> + \$(DX_CLEAN_RTF) \\ >>> + \$(DX_CLEAN_XML) \\ >>> + \$(DX_CLEAN_PS) \\ >>> + \$(DX_CLEAN_PDF) \\ >>> + \$(DX_CLEAN_LATEX)" >>> +else >>> + DX_SNIPPET_doc="" >>> +fi >>> +AC_SUBST([DX_RULES], >>> +["${DX_SNIPPET_doc}"])dnl >>> +AM_SUBST_NOTMAKE([DX_RULES]) >>> + >>> #For debugging: >>> -#echo DX_FLAG_doc=$DX_FLAG_doc >>> +echo DX_FLAG_doc=$DX_FLAG_doc >>> #echo DX_FLAG_dot=$DX_FLAG_dot >>> #echo DX_FLAG_man=$DX_FLAG_man >>> -#echo DX_FLAG_html=$DX_FLAG_html >>> +echo DX_FLAG_html=$DX_FLAG_html >>> #echo DX_FLAG_chm=$DX_FLAG_chm >>> #echo DX_FLAG_chi=$DX_FLAG_chi >>> #echo DX_FLAG_rtf=$DX_FLAG_rtf >>> @@ -530,4 +607,4 @@ esac >>> #echo DX_FLAG_pdf=$DX_FLAG_pdf >>> #echo DX_FLAG_ps=$DX_FLAG_ps >>> #echo DX_ENV=$DX_ENV >>> -]) >>> +]) >>> \ No newline at end of file >>> -- >>> 2.5.0 >>> >>> _______________________________________________ >>> lng-odp mailing list >>> lng-odp@lists.linaro.org >>> https://lists.linaro.org/mailman/listinfo/lng-odp >>> >> >> > > > -- > Mike Holmes > Technical Manager - Linaro Networking Group > Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs > "Work should be fun and collborative, the rest follows" > > >
I see it, I did so many esoteric tests building in remote directories, installing etc, I have broken the basic case and did not do that one last time assuming it must be ok. On 15 February 2016 at 09:02, Bill Fischofer <bill.fischofer@linaro.org> wrote: > Yes, I'm vanilla Ubuntu 15.10 > > On Mon, Feb 15, 2016 at 7:12 AM, Mike Holmes <mike.holmes@linaro.org> > wrote: > >> Thanks, let me see if I can get this same result, I did that same >> procedure so many times - assume you are on 15.10 basic ubuntu box ? >> >> On 14 February 2016 at 15:49, Bill Fischofer <bill.fischofer@linaro.org> >> wrote: >> >>> Applying this series to a fresh clone if I do: >>> >>> ./bootstrap >>> ./configure --enable-cunit-support --enable-user-guides >>> make doxygen-doc >>> >>> I get this: >>> >>> bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc >>> DXGEN doc/application-api-guide/doxygen.cfg >>> error: configuration file ./doc/application-api-guide/doxygen.cfg not >>> found! >>> Doxygen version 1.8.9.1 >>> Copyright Dimitri van Heesch 1997-2014 >>> >>> You can use doxygen in a number of ways: >>> >>> 1) Use doxygen to generate a template configuration file: >>> /usr/bin/doxygen [-s] -g [configName] >>> >>> If - is used for configName doxygen will write to standard output. >>> >>> 2) Use doxygen to update an old configuration file: >>> /usr/bin/doxygen [-s] -u [configName] >>> >>> 3) Use doxygen to generate documentation using an existing configuration >>> file: >>> /usr/bin/doxygen [configName] >>> >>> If - is used for configName doxygen will read from standard input. >>> >>> 4) Use doxygen to generate a template file controlling the layout of the >>> generated documentation: >>> /usr/bin/doxygen -l [layoutFileName.xml] >>> >>> 5) Use doxygen to generate a template style sheet file for RTF, HTML or >>> Latex. >>> RTF: /usr/bin/doxygen -w rtf styleSheetFile >>> HTML: /usr/bin/doxygen -w html headerFile footerFile >>> styleSheetFile [configFile] >>> LaTeX: /usr/bin/doxygen -w latex headerFile footerFile >>> styleSheetFile [configFile] >>> >>> 6) Use doxygen to generate a rtf extensions file >>> RTF: /usr/bin/doxygen -e rtf extensionsFile >>> >>> If -s is specified the comments of the configuration items in the config >>> file will be omitted. >>> If configName is omitted `Doxyfile' will be used as a default. >>> >>> -v print version string >>> Makefile:893: recipe for target >>> 'doc/application-api-guide/opendataplane.tag' failed >>> make: *** [doc/application-api-guide/opendataplane.tag] Error 1 >>> >>> --- >>> If I do a make (which seems to generate the user guides correctly) and >>> then do a make doxygen-doc I get this: >>> >>> bill@Ubuntu15:~/linaro/mikedoc2$ make doxygen-doc >>> make: *** No rule to make target >>> 'doc/application-api-guide/doxygen.cfg', needed by >>> 'doc/application-api-guide/opendataplane.tag'. Stop. >>> >>> >>> >>> >>> On Sat, Feb 13, 2016 at 9:42 PM, Mike Holmes <mike.holmes@linaro.org> >>> wrote: >>> >>>> fixes https://bugs.linaro.org/show_bug.cgi?id=1946 >>>> >>>> Move to the latest m4 scripts for doxygen and revert to using it without >>>> modification, thus make doxygen-html becomes make doxygen-doc. >>>> Also cleans up the last parts of the previously removed .pdf support. >>>> Output now left in application-api-guide to match the other guides. >>>> >>>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org> >>>> --- >>>> Makefile.am | 2 +- >>>> README | 2 +- >>>> aminclude.am | 167 ------------------- >>>> configure.ac | 5 +- >>>> m4/ax_prog_doxygen.m4 | 449 >>>> +++++++++++++++++++++++++++++--------------------- >>>> 5 files changed, 268 insertions(+), 357 deletions(-) >>>> delete mode 100644 aminclude.am >>>> >>>> diff --git a/Makefile.am b/Makefile.am >>>> index 2acbe3d..2129472 100644 >>>> --- a/Makefile.am >>>> +++ b/Makefile.am >>>> @@ -15,6 +15,6 @@ SUBDIRS = @platform_with_platform@ \ >>>> example \ >>>> scripts >>>> >>>> -include $(top_srcdir)/aminclude.am >>>> +@DX_RULES@ >>>> >>>> EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README .scmversion >>>> diff --git a/README b/README >>>> index d8583be..4350b95 100644 >>>> --- a/README >>>> +++ b/README >>>> @@ -17,7 +17,7 @@ Main git repository: >>>> In general you can build: >>>> ./bootstrap >>>> ./configure >>>> - Use 'make' to build ODP library and samples and 'make >>>> doxygen-html' to build >>>> + Use 'make' to build ODP library and samples and 'make doxygen-doc' >>>> to build >>>> ODP API documentation. 'make install' will copy all required >>>> headers and >>>> binary files to the install directory. >>>> >>>> diff --git a/aminclude.am b/aminclude.am >>>> deleted file mode 100644 >>>> index 1b0ec01..0000000 >>>> --- a/aminclude.am >>>> +++ /dev/null >>>> @@ -1,167 +0,0 @@ >>>> -# LICENSE >>>> -# >>>> -# Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> >>>> -# >>>> -# Copying and distribution of this file, with or without >>>> modification, are >>>> -# permitted in any medium without royalty provided the copyright >>>> notice >>>> -# and this notice are preserved. This file is offered as-is, without >>>> any >>>> -# warranty. >>>> -# >>>> - >>>> -## --------------------------------- ## >>>> -## Format-independent Doxygen rules. ## >>>> -## --------------------------------- ## >>>> - >>>> -if DX_COND_doc >>>> - >>>> -## ------------------------------- ## >>>> -## Rules specific for HTML output. ## >>>> -## ------------------------------- ## >>>> - >>>> -if DX_COND_html >>>> - >>>> -DX_CLEAN_HTML = @DX_DOCDIR@/html >>>> - >>>> -endif DX_COND_html >>>> - >>>> -## ------------------------------ ## >>>> -## Rules specific for CHM output. ## >>>> -## ------------------------------ ## >>>> - >>>> -if DX_COND_chm >>>> - >>>> -DX_CLEAN_CHM = @DX_DOCDIR@/chm >>>> - >>>> -if DX_COND_chi >>>> - >>>> -DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi >>>> - >>>> -endif DX_COND_chi >>>> - >>>> -endif DX_COND_chm >>>> - >>>> -## ------------------------------ ## >>>> -## Rules specific for MAN output. ## >>>> -## ------------------------------ ## >>>> - >>>> -if DX_COND_man >>>> - >>>> -DX_CLEAN_MAN = @DX_DOCDIR@/man >>>> - >>>> -endif DX_COND_man >>>> - >>>> -## ------------------------------ ## >>>> -## Rules specific for RTF output. ## >>>> -## ------------------------------ ## >>>> - >>>> -if DX_COND_rtf >>>> - >>>> -DX_CLEAN_RTF = @DX_DOCDIR@/rtf >>>> - >>>> -endif DX_COND_rtf >>>> - >>>> -## ------------------------------ ## >>>> -## Rules specific for XML output. ## >>>> -## ------------------------------ ## >>>> - >>>> -if DX_COND_xml >>>> - >>>> -DX_CLEAN_XML = @DX_DOCDIR@/xml >>>> - >>>> -endif DX_COND_xml >>>> - >>>> -## ----------------------------- ## >>>> -## Rules specific for PS output. ## >>>> -## ----------------------------- ## >>>> - >>>> -if DX_COND_ps >>>> - >>>> -DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps >>>> - >>>> -DX_PS_GOAL = doxygen-ps >>>> - >>>> -doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps >>>> - >>>> -@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag >>>> - cd @DX_DOCDIR@/latex; \ >>>> - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>>> - $(DX_LATEX) refman.tex; \ >>>> - $(MAKEINDEX_PATH) refman.idx; \ >>>> - $(DX_LATEX) refman.tex; \ >>>> - countdown=5; \ >>>> - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' >>>> \ >>>> - refman.log > /dev/null 2>&1 \ >>>> - && test $$countdown -gt 0; do \ >>>> - $(DX_LATEX) refman.tex; \ >>>> - countdown=`expr $$countdown - 1`; \ >>>> - done; \ >>>> - $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi >>>> - >>>> -endif DX_COND_ps >>>> - >>>> -## ------------------------------ ## >>>> -## Rules specific for PDF output. ## >>>> -## ------------------------------ ## >>>> - >>>> -if DX_COND_pdf >>>> - >>>> -DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf >>>> - >>>> -DX_PDF_GOAL = doxygen-pdf >>>> - >>>> -doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf >>>> - >>>> -@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag >>>> - cd @DX_DOCDIR@/latex; \ >>>> - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>>> - $(DX_PDFLATEX) refman.tex; \ >>>> - $(DX_MAKEINDEX) refman.idx; \ >>>> - $(DX_PDFLATEX) refman.tex; \ >>>> - countdown=5; \ >>>> - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' >>>> \ >>>> - refman.log > /dev/null 2>&1 \ >>>> - && test $$countdown -gt 0; do \ >>>> - $(DX_PDFLATEX) refman.tex; \ >>>> - countdown=`expr $$countdown - 1`; \ >>>> - done; \ >>>> - mv refman.pdf ../@PACKAGE@.pdf >>>> - >>>> -endif DX_COND_pdf >>>> - >>>> -## ------------------------------------------------- ## >>>> -## Rules specific for LaTeX (shared for PS and PDF). ## >>>> -## ------------------------------------------------- ## >>>> - >>>> -if DX_COND_latex >>>> - >>>> -DX_CLEAN_LATEX = @DX_DOCDIR@/latex >>>> - >>>> -endif DX_COND_latex >>>> - >>>> -.PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) >>>> - >>>> -.INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>>> - >>>> -doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag >>>> - >>>> -doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>>> - >>>> -@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) >>>> - rm -rf @DX_DOCDIR@ >>>> - make --directory=$(srcdir)/doc/images >>>> - $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) >>>> - >>>> -DX_CLEANFILES = \ >>>> - @DX_DOCDIR@/@PACKAGE@.tag \ >>>> - -r \ >>>> - $(DX_CLEAN_HTML) \ >>>> - $(DX_CLEAN_CHM) \ >>>> - $(DX_CLEAN_CHI) \ >>>> - $(DX_CLEAN_MAN) \ >>>> - $(DX_CLEAN_RTF) \ >>>> - $(DX_CLEAN_XML) \ >>>> - $(DX_CLEAN_PS) \ >>>> - $(DX_CLEAN_PDF) \ >>>> - $(DX_CLEAN_LATEX) >>>> - >>>> -endif DX_COND_doc >>>> diff --git a/configure.ac b/configure.ac >>>> index 8108ff2..c0c2af3 100644 >>>> --- a/configure.ac >>>> +++ b/configure.ac >>>> @@ -141,8 +141,9 @@ AC_ARG_ENABLE([cunit_support], >>>> # Setup doxygen documentation >>>> >>>> ########################################################################## >>>> DX_HTML_FEATURE(ON) >>>> -DX_PDF_FEATURE(ON) >>>> -DX_INIT_DOXYGEN($PACKAGE_NAME, doc/application-api-guide/doxygen.cfg, >>>> doc/output) >>>> +DX_PDF_FEATURE(OFF) >>>> +DX_PS_FEATURE(OFF) >>>> +DX_INIT_DOXYGEN($PACKAGE_NAME, >>>> ${srcdir}/doc/application-api-guide/doxygen.cfg, >>>> ${builddir}/doc/application-api-guide) >>>> >>>> ########################################################################## >>>> # Enable/disable Unit tests >>>> >>>> ########################################################################## >>>> diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4 >>>> index 58bb016..d0858ca 100644 >>>> --- a/m4/ax_prog_doxygen.m4 >>>> +++ b/m4/ax_prog_doxygen.m4 >>>> @@ -4,7 +4,7 @@ >>>> # >>>> # SYNOPSIS >>>> # >>>> -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) >>>> +# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...) >>>> # DX_DOXYGEN_FEATURE(ON|OFF) >>>> # DX_DOT_FEATURE(ON|OFF) >>>> # DX_HTML_FEATURE(ON|OFF) >>>> @@ -45,25 +45,28 @@ >>>> # Once all the feature defaults have been specified, call >>>> DX_INIT_DOXYGEN >>>> # with the following parameters: a one-word name for the project for >>>> use >>>> # as a filename base etc., an optional configuration file name (the >>>> -# default is 'Doxyfile', the same as Doxygen's default), and an >>>> optional >>>> -# output directory name (the default is 'doxygen-doc'). >>>> +# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), >>>> and an >>>> +# optional output directory name (the default is 'doxygen-doc'). To >>>> run >>>> +# doxygen multiple times for different configuration files and output >>>> +# directories provide more parameters: the second, forth, sixth, etc >>>> +# parameter are configuration file names and the third, fifth, >>>> seventh, >>>> +# etc parameter are output directories. No checking is done to catch >>>> +# duplicates. >>>> # >>>> # Automake Support >>>> # >>>> -# The following is a template aminclude.am file for use with >>>> Automake. >>>> -# Make targets and variables values are controlled by the various >>>> -# DX_COND_* conditionals set by autoconf. >>>> +# The DX_RULES substitution can be used to add all needed rules to >>>> the >>>> +# Makefile. Note that this is a substitution without being a >>>> variable: >>>> +# only the @DX_RULES@ syntax will work. >>>> # >>>> # The provided targets are: >>>> # >>>> # doxygen-doc: Generate all doxygen documentation. >>>> # >>>> -# doxygen-html: Run doxygen, which will generate some of the >>>> +# doxygen-run: Run doxygen, which will generate some of the >>>> # documentation (HTML, CHM, CHI, MAN, RTF, XML) >>>> # but will not do the post processing required >>>> -# for the rest of it (PS, PDF, and some MAN). >>>> -# >>>> -# doxygen-man: Rename some doxygen generated man pages. >>>> +# for the rest of it (PS, PDF). >>>> # >>>> # doxygen-ps: Generate doxygen PostScript documentation. >>>> # >>>> @@ -84,177 +87,17 @@ >>>> # >>>> # Then add this variable to MOSTLYCLEANFILES. >>>> # >>>> -# ----- begin aminclude.am ------------------------------------- >>>> -# >>>> -# ## --------------------------------- ## >>>> -# ## Format-independent Doxygen rules. ## >>>> -# ## --------------------------------- ## >>>> -# >>>> -# if DX_COND_doc >>>> -# >>>> -# ## ------------------------------- ## >>>> -# ## Rules specific for HTML output. ## >>>> -# ## ------------------------------- ## >>>> -# >>>> -# if DX_COND_html >>>> -# >>>> -# DX_CLEAN_HTML = @DX_DOCDIR@/html >>>> -# >>>> -# endif DX_COND_html >>>> -# >>>> -# ## ------------------------------ ## >>>> -# ## Rules specific for CHM output. ## >>>> -# ## ------------------------------ ## >>>> -# >>>> -# if DX_COND_chm >>>> -# >>>> -# DX_CLEAN_CHM = @DX_DOCDIR@/chm >>>> -# >>>> -# if DX_COND_chi >>>> -# >>>> -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi >>>> -# >>>> -# endif DX_COND_chi >>>> -# >>>> -# endif DX_COND_chm >>>> -# >>>> -# ## ------------------------------ ## >>>> -# ## Rules specific for MAN output. ## >>>> -# ## ------------------------------ ## >>>> -# >>>> -# if DX_COND_man >>>> -# >>>> -# DX_CLEAN_MAN = @DX_DOCDIR@/man >>>> -# >>>> -# endif DX_COND_man >>>> -# >>>> -# ## ------------------------------ ## >>>> -# ## Rules specific for RTF output. ## >>>> -# ## ------------------------------ ## >>>> -# >>>> -# if DX_COND_rtf >>>> -# >>>> -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf >>>> -# >>>> -# endif DX_COND_rtf >>>> -# >>>> -# ## ------------------------------ ## >>>> -# ## Rules specific for XML output. ## >>>> -# ## ------------------------------ ## >>>> -# >>>> -# if DX_COND_xml >>>> -# >>>> -# DX_CLEAN_XML = @DX_DOCDIR@/xml >>>> -# >>>> -# endif DX_COND_xml >>>> -# >>>> -# ## ----------------------------- ## >>>> -# ## Rules specific for PS output. ## >>>> -# ## ----------------------------- ## >>>> -# >>>> -# if DX_COND_ps >>>> -# >>>> -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps >>>> -# >>>> -# DX_PS_GOAL = doxygen-ps >>>> -# >>>> -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps >>>> -# >>>> -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag >>>> -# cd @DX_DOCDIR@/latex; \ >>>> -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>>> -# $(DX_LATEX) refman.tex; \ >>>> -# $(MAKEINDEX_PATH) refman.idx; \ >>>> -# $(DX_LATEX) refman.tex; \ >>>> -# countdown=5; \ >>>> -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references >>>> right)' \ >>>> -# refman.log > /dev/null 2>&1 \ >>>> -# && test $$countdown -gt 0; do \ >>>> -# $(DX_LATEX) refman.tex; \ >>>> -# countdown=`expr $$countdown - 1`; \ >>>> -# done; \ >>>> -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi >>>> -# >>>> -# endif DX_COND_ps >>>> -# >>>> -# ## ------------------------------ ## >>>> -# ## Rules specific for PDF output. ## >>>> -# ## ------------------------------ ## >>>> -# >>>> -# if DX_COND_pdf >>>> -# >>>> -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf >>>> -# >>>> -# DX_PDF_GOAL = doxygen-pdf >>>> -# >>>> -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf >>>> -# >>>> -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag >>>> -# cd @DX_DOCDIR@/latex; \ >>>> -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ >>>> -# $(DX_PDFLATEX) refman.tex; \ >>>> -# $(DX_MAKEINDEX) refman.idx; \ >>>> -# $(DX_PDFLATEX) refman.tex; \ >>>> -# countdown=5; \ >>>> -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references >>>> right)' \ >>>> -# refman.log > /dev/null 2>&1 \ >>>> -# && test $$countdown -gt 0; do \ >>>> -# $(DX_PDFLATEX) refman.tex; \ >>>> -# countdown=`expr $$countdown - 1`; \ >>>> -# done; \ >>>> -# mv refman.pdf ../@PACKAGE@.pdf >>>> -# >>>> -# endif DX_COND_pdf >>>> -# >>>> -# ## ------------------------------------------------- ## >>>> -# ## Rules specific for LaTeX (shared for PS and PDF). ## >>>> -# ## ------------------------------------------------- ## >>>> -# >>>> -# if DX_COND_latex >>>> -# >>>> -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex >>>> -# >>>> -# endif DX_COND_latex >>>> -# >>>> -# .PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) >>>> -# >>>> -# .INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>>> -# >>>> -# doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag >>>> -# >>>> -# doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) >>>> -# >>>> -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) >>>> -# rm -rf @DX_DOCDIR@ >>>> -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) >>>> -# >>>> -# DX_CLEANFILES = \ >>>> -# @DX_DOCDIR@/@PACKAGE@.tag \ >>>> -# -r \ >>>> -# $(DX_CLEAN_HTML) \ >>>> -# $(DX_CLEAN_CHM) \ >>>> -# $(DX_CLEAN_CHI) \ >>>> -# $(DX_CLEAN_MAN) \ >>>> -# $(DX_CLEAN_RTF) \ >>>> -# $(DX_CLEAN_XML) \ >>>> -# $(DX_CLEAN_PS) \ >>>> -# $(DX_CLEAN_PDF) \ >>>> -# $(DX_CLEAN_LATEX) >>>> -# >>>> -# endif DX_COND_doc >>>> -# >>>> -# ----- end aminclude.am --------------------------------------- >>>> -# >>>> # LICENSE >>>> # >>>> # Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> >>>> +# Copyright (c) 2015 Olaf Mandel <olaf@mandel.name> >>>> # >>>> # Copying and distribution of this file, with or without >>>> modification, are >>>> # permitted in any medium without royalty provided the copyright >>>> notice >>>> # and this notice are preserved. This file is offered as-is, without >>>> any >>>> # warranty. >>>> >>>> -#serial 12 >>>> +#serial 18 >>>> >>>> ## ----------## >>>> ## Defaults. ## >>>> @@ -278,8 +121,14 @@ AC_DEFUN([DX_FEATURE_ps], ON) >>>> >>>> # DX_ENV_APPEND(VARIABLE, VALUE) >>>> # ------------------------------ >>>> -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. >>>> -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) >>>> +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it >>>> +# as a substitution (but not a Makefile variable). The substitution >>>> +# is skipped if the variable name is VERSION. >>>> +AC_DEFUN([DX_ENV_APPEND], >>>> +[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl >>>> +m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl >>>> +AM_SUBST_NOTMAKE([$1])])dnl >>>> +]) >>>> >>>> # DX_DIRNAME_EXPR >>>> # --------------- >>>> @@ -364,7 +213,6 @@ if DX_TEST_FEATURE([$1]); then >>>> $5 >>>> : >>>> fi >>>> -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) >>>> if DX_TEST_FEATURE([$1]); then >>>> $6 >>>> : >>>> @@ -392,23 +240,38 @@ AC_DEFUN([DX_XML_FEATURE], >>>> [AC_DEFUN([DX_FEATURE_xml], [$1])]) >>>> AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) >>>> AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) >>>> >>>> -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) >>>> -# --------------------------------------------------------- >>>> +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...) >>>> +# -------------------------------------------------------------- >>>> # PROJECT also serves as the base name for the documentation files. >>>> -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is >>>> "doxygen-doc". >>>> +# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is >>>> +# "doxygen-doc". >>>> +# More arguments are interpreted as interleaved CONFIG-FILE and >>>> +# OUTPUT-DOC-DIR values. >>>> AC_DEFUN([DX_INIT_DOXYGEN], [ >>>> >>>> # Files: >>>> AC_SUBST([DX_PROJECT], [$1]) >>>> -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) >>>> -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) >>>> +AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])']) >>>> +AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])']) >>>> +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2, >>>> + [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]), >>>> + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), >>>> + >>>> [$(srcdir)/Doxyfile])')])])dnl >>>> +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), >>>> 2, >>>> + [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]), >>>> + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), >>>> + [doxygen-doc])')])])dnl >>>> +m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1, >>>> + [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])], >>>> + [])))dnl >>>> >>>> # Environment variables used inside doxygen.cfg: >>>> DX_ENV_APPEND(SRCDIR, $srcdir) >>>> -DX_ENV_APPEND(PROJECT, $DX_PROJECT) >>>> -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) >>>> +DX_ENV_APPEND(BUILDDIR, $builddir) >>>> DX_ENV_APPEND(VERSION, $VERSION) >>>> DX_ENV_APPEND(WITH_PLATFORM, $with_platform) >>>> +DX_ENV_APPEND(PROJECT, $DX_PROJECT) >>>> +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) >>>> >>>> # Doxygen itself: >>>> DX_ARG_ABLE(doc, [generate any doxygen documentation], >>>> @@ -495,7 +358,6 @@ DX_ARG_ABLE(pdf, [generate doxygen PDF >>>> documentation], >>>> DX_REQUIRE_PROG([DX_EGREP], egrep)]) >>>> >>>> # LaTeX generation for PS and/or PDF: >>>> -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || >>>> DX_TEST_FEATURE(pdf)) >>>> if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then >>>> DX_ENV_APPEND(GENERATE_LATEX, YES) >>>> else >>>> @@ -518,11 +380,226 @@ a4wide|a4|letter|legal|executive) >>>> ;; >>>> esac >>>> >>>> +# Rules: >>>> +if test $DX_FLAG_html -eq 1; then >>>> + DX_SNIPPET_html="## ------------------------------- ## >>>> +## Rules specific for HTML output. ## >>>> +## ------------------------------- ## >>>> + >>>> +DX_CLEAN_HTML = \$(DX_DOCDIR)/html[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/html]]) >>>> + >>>> +" >>>> +else >>>> + DX_SNIPPET_html="" >>>> +fi >>>> +if test $DX_FLAG_chi -eq 1; then >>>> + DX_SNIPPET_chi=" >>>> +DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])" >>>> +else >>>> + DX_SNIPPET_chi="" >>>> +fi >>>> +if test $DX_FLAG_chm -eq 1; then >>>> + DX_SNIPPET_chm="## ------------------------------ ## >>>> +## Rules specific for CHM output. ## >>>> +## ------------------------------ ## >>>> + >>>> +DX_CLEAN_CHM = \$(DX_DOCDIR)/chm[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/chm]])\ >>>> +${DX_SNIPPET_chi} >>>> + >>>> +" >>>> +else >>>> + DX_SNIPPET_chm="" >>>> +fi >>>> +if test $DX_FLAG_man -eq 1; then >>>> + DX_SNIPPET_man="## ------------------------------ ## >>>> +## Rules specific for MAN output. ## >>>> +## ------------------------------ ## >>>> + >>>> +DX_CLEAN_MAN = \$(DX_DOCDIR)/man[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/man]]) >>>> + >>>> +" >>>> +else >>>> + DX_SNIPPET_man="" >>>> +fi >>>> +if test $DX_FLAG_rtf -eq 1; then >>>> + DX_SNIPPET_rtf="## ------------------------------ ## >>>> +## Rules specific for RTF output. ## >>>> +## ------------------------------ ## >>>> + >>>> +DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/rtf]]) >>>> + >>>> +" >>>> +else >>>> + DX_SNIPPET_rtf="" >>>> +fi >>>> +if test $DX_FLAG_xml -eq 1; then >>>> + DX_SNIPPET_xml="## ------------------------------ ## >>>> +## Rules specific for XML output. ## >>>> +## ------------------------------ ## >>>> + >>>> +DX_CLEAN_XML = \$(DX_DOCDIR)/xml[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/xml]]) >>>> + >>>> +" >>>> +else >>>> + DX_SNIPPET_xml="" >>>> +fi >>>> +if test $DX_FLAG_ps -eq 1; then >>>> + DX_SNIPPET_ps="## ----------------------------- ## >>>> +## Rules specific for PS output. ## >>>> +## ----------------------------- ## >>>> + >>>> +DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]]) >>>> + >>>> +DX_PS_GOAL = doxygen-ps >>>> + >>>> +doxygen-ps: \$(DX_CLEAN_PS) >>>> + >>>> +m4_foreach([DX_i], [DX_loop], >>>> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: >>>> \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag >>>> + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ >>>> + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ >>>> + \$(DX_LATEX) refman.tex; \\ >>>> + \$(DX_MAKEINDEX) refman.idx; \\ >>>> + \$(DX_LATEX) refman.tex; \\ >>>> + countdown=5; \\ >>>> + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references >>>> right)' \\ >>>> + refman.log > /dev/null 2>&1 \\ >>>> + && test \$\$countdown -gt 0; do \\ >>>> + \$(DX_LATEX) refman.tex; \\ >>>> + countdown=\`expr \$\$countdown - 1\`; \\ >>>> + done; \\ >>>> + \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi >>>> + >>>> +]])dnl >>>> +" >>>> +else >>>> + DX_SNIPPET_ps="" >>>> +fi >>>> +if test $DX_FLAG_pdf -eq 1; then >>>> + DX_SNIPPET_pdf="## ------------------------------ ## >>>> +## Rules specific for PDF output. ## >>>> +## ------------------------------ ## >>>> + >>>> +DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]]) >>>> + >>>> +DX_PDF_GOAL = doxygen-pdf >>>> + >>>> +doxygen-pdf: \$(DX_CLEAN_PDF) >>>> + >>>> +m4_foreach([DX_i], [DX_loop], >>>> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: >>>> \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag >>>> + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ >>>> + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ >>>> + \$(DX_PDFLATEX) refman.tex; \\ >>>> + \$(DX_MAKEINDEX) refman.idx; \\ >>>> + \$(DX_PDFLATEX) refman.tex; \\ >>>> + countdown=5; \\ >>>> + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references >>>> right)' \\ >>>> + refman.log > /dev/null 2>&1 \\ >>>> + && test \$\$countdown -gt 0; do \\ >>>> + \$(DX_PDFLATEX) refman.tex; \\ >>>> + countdown=\`expr \$\$countdown - 1\`; \\ >>>> + done; \\ >>>> + mv refman.pdf ../\$(PACKAGE).pdf >>>> + >>>> +]])dnl >>>> +" >>>> +else >>>> + DX_SNIPPET_pdf="" >>>> +fi >>>> +if test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1; then >>>> + DX_SNIPPET_latex="## >>>> ------------------------------------------------- ## >>>> +## Rules specific for LaTeX (shared for PS and PDF). ## >>>> +## ------------------------------------------------- ## >>>> + >>>> +DX_V_LATEX = \$(_DX_v_LATEX_\$(V)) >>>> +_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY)) >>>> +_DX_v_LATEX_0 = @echo \" LATEX \" \$[]][[]@; >>>> + >>>> +DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex[]dnl >>>> +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ >>>> + \$(DX_DOCDIR]DX_i[)/latex]]) >>>> + >>>> +" >>>> +else >>>> + DX_SNIPPET_latex="" >>>> +fi >>>> + >>>> +if test $DX_FLAG_doc -eq 1; then >>>> + DX_SNIPPET_doc="## --------------------------------- ## >>>> +## Format-independent Doxygen rules. ## >>>> +## --------------------------------- ## >>>> + >>>> +${DX_SNIPPET_html}\ >>>> +${DX_SNIPPET_chm}\ >>>> +${DX_SNIPPET_man}\ >>>> +${DX_SNIPPET_rtf}\ >>>> +${DX_SNIPPET_xml}\ >>>> +${DX_SNIPPET_ps}\ >>>> +${DX_SNIPPET_pdf}\ >>>> +${DX_SNIPPET_latex}\ >>>> +DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V)) >>>> +_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY)) >>>> +_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<; >>>> + >>>> +.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >>>> + >>>> +.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >>>> + >>>> +doxygen-run:[]m4_foreach([DX_i], [DX_loop], >>>> + [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]]) >>>> + >>>> +doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) >>>> + >>>> +m4_foreach([DX_i], [DX_loop], >>>> +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) >>>> \$(pkginclude_HEADERS) >>>> + \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[) >>>> + \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) >>>> \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[) >>>> + \$(A""M_V_at)echo Timestamp >\$][@ >>>> + >>>> +]])dnl >>>> +DX_CLEANFILES = \\ >>>> +m4_foreach([DX_i], [DX_loop], >>>> +[[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\ >>>> +]])dnl >>>> + -r \\ >>>> + \$(DX_CLEAN_HTML) \\ >>>> + \$(DX_CLEAN_CHM) \\ >>>> + \$(DX_CLEAN_CHI) \\ >>>> + \$(DX_CLEAN_MAN) \\ >>>> + \$(DX_CLEAN_RTF) \\ >>>> + \$(DX_CLEAN_XML) \\ >>>> + \$(DX_CLEAN_PS) \\ >>>> + \$(DX_CLEAN_PDF) \\ >>>> + \$(DX_CLEAN_LATEX)" >>>> +else >>>> + DX_SNIPPET_doc="" >>>> +fi >>>> +AC_SUBST([DX_RULES], >>>> +["${DX_SNIPPET_doc}"])dnl >>>> +AM_SUBST_NOTMAKE([DX_RULES]) >>>> + >>>> #For debugging: >>>> -#echo DX_FLAG_doc=$DX_FLAG_doc >>>> +echo DX_FLAG_doc=$DX_FLAG_doc >>>> #echo DX_FLAG_dot=$DX_FLAG_dot >>>> #echo DX_FLAG_man=$DX_FLAG_man >>>> -#echo DX_FLAG_html=$DX_FLAG_html >>>> +echo DX_FLAG_html=$DX_FLAG_html >>>> #echo DX_FLAG_chm=$DX_FLAG_chm >>>> #echo DX_FLAG_chi=$DX_FLAG_chi >>>> #echo DX_FLAG_rtf=$DX_FLAG_rtf >>>> @@ -530,4 +607,4 @@ esac >>>> #echo DX_FLAG_pdf=$DX_FLAG_pdf >>>> #echo DX_FLAG_ps=$DX_FLAG_ps >>>> #echo DX_ENV=$DX_ENV >>>> -]) >>>> +]) >>>> \ No newline at end of file >>>> -- >>>> 2.5.0 >>>> >>>> _______________________________________________ >>>> lng-odp mailing list >>>> lng-odp@lists.linaro.org >>>> https://lists.linaro.org/mailman/listinfo/lng-odp >>>> >>> >>> >> >> >> -- >> Mike Holmes >> Technical Manager - Linaro Networking Group >> Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs >> "Work should be fun and collborative, the rest follows" >> >> >> > -- Mike Holmes Technical Manager - Linaro Networking Group Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs "Work should be fun and collborative, the rest follows"
diff --git a/Makefile.am b/Makefile.am index 2acbe3d..2129472 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,6 +15,6 @@ SUBDIRS = @platform_with_platform@ \ example \ scripts -include $(top_srcdir)/aminclude.am +@DX_RULES@ EXTRA_DIST = bootstrap $(DX_CONFIG) CHANGELOG config/README .scmversion diff --git a/README b/README index d8583be..4350b95 100644 --- a/README +++ b/README @@ -17,7 +17,7 @@ Main git repository: In general you can build: ./bootstrap ./configure - Use 'make' to build ODP library and samples and 'make doxygen-html' to build + Use 'make' to build ODP library and samples and 'make doxygen-doc' to build ODP API documentation. 'make install' will copy all required headers and binary files to the install directory. diff --git a/aminclude.am b/aminclude.am deleted file mode 100644 index 1b0ec01..0000000 --- a/aminclude.am +++ /dev/null @@ -1,167 +0,0 @@ -# LICENSE -# -# Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. -# - -## --------------------------------- ## -## Format-independent Doxygen rules. ## -## --------------------------------- ## - -if DX_COND_doc - -## ------------------------------- ## -## Rules specific for HTML output. ## -## ------------------------------- ## - -if DX_COND_html - -DX_CLEAN_HTML = @DX_DOCDIR@/html - -endif DX_COND_html - -## ------------------------------ ## -## Rules specific for CHM output. ## -## ------------------------------ ## - -if DX_COND_chm - -DX_CLEAN_CHM = @DX_DOCDIR@/chm - -if DX_COND_chi - -DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi - -endif DX_COND_chi - -endif DX_COND_chm - -## ------------------------------ ## -## Rules specific for MAN output. ## -## ------------------------------ ## - -if DX_COND_man - -DX_CLEAN_MAN = @DX_DOCDIR@/man - -endif DX_COND_man - -## ------------------------------ ## -## Rules specific for RTF output. ## -## ------------------------------ ## - -if DX_COND_rtf - -DX_CLEAN_RTF = @DX_DOCDIR@/rtf - -endif DX_COND_rtf - -## ------------------------------ ## -## Rules specific for XML output. ## -## ------------------------------ ## - -if DX_COND_xml - -DX_CLEAN_XML = @DX_DOCDIR@/xml - -endif DX_COND_xml - -## ----------------------------- ## -## Rules specific for PS output. ## -## ----------------------------- ## - -if DX_COND_ps - -DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps - -DX_PS_GOAL = doxygen-ps - -doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps - -@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag - cd @DX_DOCDIR@/latex; \ - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ - $(DX_LATEX) refman.tex; \ - $(MAKEINDEX_PATH) refman.idx; \ - $(DX_LATEX) refman.tex; \ - countdown=5; \ - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ - refman.log > /dev/null 2>&1 \ - && test $$countdown -gt 0; do \ - $(DX_LATEX) refman.tex; \ - countdown=`expr $$countdown - 1`; \ - done; \ - $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi - -endif DX_COND_ps - -## ------------------------------ ## -## Rules specific for PDF output. ## -## ------------------------------ ## - -if DX_COND_pdf - -DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf - -DX_PDF_GOAL = doxygen-pdf - -doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf - -@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag - cd @DX_DOCDIR@/latex; \ - rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ - $(DX_PDFLATEX) refman.tex; \ - $(DX_MAKEINDEX) refman.idx; \ - $(DX_PDFLATEX) refman.tex; \ - countdown=5; \ - while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ - refman.log > /dev/null 2>&1 \ - && test $$countdown -gt 0; do \ - $(DX_PDFLATEX) refman.tex; \ - countdown=`expr $$countdown - 1`; \ - done; \ - mv refman.pdf ../@PACKAGE@.pdf - -endif DX_COND_pdf - -## ------------------------------------------------- ## -## Rules specific for LaTeX (shared for PS and PDF). ## -## ------------------------------------------------- ## - -if DX_COND_latex - -DX_CLEAN_LATEX = @DX_DOCDIR@/latex - -endif DX_COND_latex - -.PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) - -.INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) - -doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag - -doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) - -@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) - rm -rf @DX_DOCDIR@ - make --directory=$(srcdir)/doc/images - $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) - -DX_CLEANFILES = \ - @DX_DOCDIR@/@PACKAGE@.tag \ - -r \ - $(DX_CLEAN_HTML) \ - $(DX_CLEAN_CHM) \ - $(DX_CLEAN_CHI) \ - $(DX_CLEAN_MAN) \ - $(DX_CLEAN_RTF) \ - $(DX_CLEAN_XML) \ - $(DX_CLEAN_PS) \ - $(DX_CLEAN_PDF) \ - $(DX_CLEAN_LATEX) - -endif DX_COND_doc diff --git a/configure.ac b/configure.ac index 8108ff2..c0c2af3 100644 --- a/configure.ac +++ b/configure.ac @@ -141,8 +141,9 @@ AC_ARG_ENABLE([cunit_support], # Setup doxygen documentation ########################################################################## DX_HTML_FEATURE(ON) -DX_PDF_FEATURE(ON) -DX_INIT_DOXYGEN($PACKAGE_NAME, doc/application-api-guide/doxygen.cfg, doc/output) +DX_PDF_FEATURE(OFF) +DX_PS_FEATURE(OFF) +DX_INIT_DOXYGEN($PACKAGE_NAME, ${srcdir}/doc/application-api-guide/doxygen.cfg, ${builddir}/doc/application-api-guide) ########################################################################## # Enable/disable Unit tests ########################################################################## diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4 index 58bb016..d0858ca 100644 --- a/m4/ax_prog_doxygen.m4 +++ b/m4/ax_prog_doxygen.m4 @@ -4,7 +4,7 @@ # # SYNOPSIS # -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) +# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...) # DX_DOXYGEN_FEATURE(ON|OFF) # DX_DOT_FEATURE(ON|OFF) # DX_HTML_FEATURE(ON|OFF) @@ -45,25 +45,28 @@ # Once all the feature defaults have been specified, call DX_INIT_DOXYGEN # with the following parameters: a one-word name for the project for use # as a filename base etc., an optional configuration file name (the -# default is 'Doxyfile', the same as Doxygen's default), and an optional -# output directory name (the default is 'doxygen-doc'). +# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), and an +# optional output directory name (the default is 'doxygen-doc'). To run +# doxygen multiple times for different configuration files and output +# directories provide more parameters: the second, forth, sixth, etc +# parameter are configuration file names and the third, fifth, seventh, +# etc parameter are output directories. No checking is done to catch +# duplicates. # # Automake Support # -# The following is a template aminclude.am file for use with Automake. -# Make targets and variables values are controlled by the various -# DX_COND_* conditionals set by autoconf. +# The DX_RULES substitution can be used to add all needed rules to the +# Makefile. Note that this is a substitution without being a variable: +# only the @DX_RULES@ syntax will work. # # The provided targets are: # # doxygen-doc: Generate all doxygen documentation. # -# doxygen-html: Run doxygen, which will generate some of the +# doxygen-run: Run doxygen, which will generate some of the # documentation (HTML, CHM, CHI, MAN, RTF, XML) # but will not do the post processing required -# for the rest of it (PS, PDF, and some MAN). -# -# doxygen-man: Rename some doxygen generated man pages. +# for the rest of it (PS, PDF). # # doxygen-ps: Generate doxygen PostScript documentation. # @@ -84,177 +87,17 @@ # # Then add this variable to MOSTLYCLEANFILES. # -# ----- begin aminclude.am ------------------------------------- -# -# ## --------------------------------- ## -# ## Format-independent Doxygen rules. ## -# ## --------------------------------- ## -# -# if DX_COND_doc -# -# ## ------------------------------- ## -# ## Rules specific for HTML output. ## -# ## ------------------------------- ## -# -# if DX_COND_html -# -# DX_CLEAN_HTML = @DX_DOCDIR@/html -# -# endif DX_COND_html -# -# ## ------------------------------ ## -# ## Rules specific for CHM output. ## -# ## ------------------------------ ## -# -# if DX_COND_chm -# -# DX_CLEAN_CHM = @DX_DOCDIR@/chm -# -# if DX_COND_chi -# -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi -# -# endif DX_COND_chi -# -# endif DX_COND_chm -# -# ## ------------------------------ ## -# ## Rules specific for MAN output. ## -# ## ------------------------------ ## -# -# if DX_COND_man -# -# DX_CLEAN_MAN = @DX_DOCDIR@/man -# -# endif DX_COND_man -# -# ## ------------------------------ ## -# ## Rules specific for RTF output. ## -# ## ------------------------------ ## -# -# if DX_COND_rtf -# -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf -# -# endif DX_COND_rtf -# -# ## ------------------------------ ## -# ## Rules specific for XML output. ## -# ## ------------------------------ ## -# -# if DX_COND_xml -# -# DX_CLEAN_XML = @DX_DOCDIR@/xml -# -# endif DX_COND_xml -# -# ## ----------------------------- ## -# ## Rules specific for PS output. ## -# ## ----------------------------- ## -# -# if DX_COND_ps -# -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps -# -# DX_PS_GOAL = doxygen-ps -# -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps -# -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag -# cd @DX_DOCDIR@/latex; \ -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ -# $(DX_LATEX) refman.tex; \ -# $(MAKEINDEX_PATH) refman.idx; \ -# $(DX_LATEX) refman.tex; \ -# countdown=5; \ -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ -# refman.log > /dev/null 2>&1 \ -# && test $$countdown -gt 0; do \ -# $(DX_LATEX) refman.tex; \ -# countdown=`expr $$countdown - 1`; \ -# done; \ -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi -# -# endif DX_COND_ps -# -# ## ------------------------------ ## -# ## Rules specific for PDF output. ## -# ## ------------------------------ ## -# -# if DX_COND_pdf -# -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf -# -# DX_PDF_GOAL = doxygen-pdf -# -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf -# -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag -# cd @DX_DOCDIR@/latex; \ -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ -# $(DX_PDFLATEX) refman.tex; \ -# $(DX_MAKEINDEX) refman.idx; \ -# $(DX_PDFLATEX) refman.tex; \ -# countdown=5; \ -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ -# refman.log > /dev/null 2>&1 \ -# && test $$countdown -gt 0; do \ -# $(DX_PDFLATEX) refman.tex; \ -# countdown=`expr $$countdown - 1`; \ -# done; \ -# mv refman.pdf ../@PACKAGE@.pdf -# -# endif DX_COND_pdf -# -# ## ------------------------------------------------- ## -# ## Rules specific for LaTeX (shared for PS and PDF). ## -# ## ------------------------------------------------- ## -# -# if DX_COND_latex -# -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex -# -# endif DX_COND_latex -# -# .PHONY: doxygen-html doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# .INTERMEDIATE: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# doxygen-html: @DX_DOCDIR@/@PACKAGE@.tag -# -# doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) -# rm -rf @DX_DOCDIR@ -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) -# -# DX_CLEANFILES = \ -# @DX_DOCDIR@/@PACKAGE@.tag \ -# -r \ -# $(DX_CLEAN_HTML) \ -# $(DX_CLEAN_CHM) \ -# $(DX_CLEAN_CHI) \ -# $(DX_CLEAN_MAN) \ -# $(DX_CLEAN_RTF) \ -# $(DX_CLEAN_XML) \ -# $(DX_CLEAN_PS) \ -# $(DX_CLEAN_PDF) \ -# $(DX_CLEAN_LATEX) -# -# endif DX_COND_doc -# -# ----- end aminclude.am --------------------------------------- -# # LICENSE # # Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org> +# Copyright (c) 2015 Olaf Mandel <olaf@mandel.name> # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 12 +#serial 18 ## ----------## ## Defaults. ## @@ -278,8 +121,14 @@ AC_DEFUN([DX_FEATURE_ps], ON) # DX_ENV_APPEND(VARIABLE, VALUE) # ------------------------------ -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it +# as a substitution (but not a Makefile variable). The substitution +# is skipped if the variable name is VERSION. +AC_DEFUN([DX_ENV_APPEND], +[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl +m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl +AM_SUBST_NOTMAKE([$1])])dnl +]) # DX_DIRNAME_EXPR # --------------- @@ -364,7 +213,6 @@ if DX_TEST_FEATURE([$1]); then $5 : fi -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) if DX_TEST_FEATURE([$1]); then $6 : @@ -392,23 +240,38 @@ AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) -# --------------------------------------------------------- +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...) +# -------------------------------------------------------------- # PROJECT also serves as the base name for the documentation files. -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc". +# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is +# "doxygen-doc". +# More arguments are interpreted as interleaved CONFIG-FILE and +# OUTPUT-DOC-DIR values. AC_DEFUN([DX_INIT_DOXYGEN], [ # Files: AC_SUBST([DX_PROJECT], [$1]) -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) +AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])']) +AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])']) +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2, + [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]), + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), + [$(srcdir)/Doxyfile])')])])dnl +m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2, + [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]), + 'm4_default_nblank_quoted(m4_argn(DX_i, $@), + [doxygen-doc])')])])dnl +m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1, + [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])], + [])))dnl # Environment variables used inside doxygen.cfg: DX_ENV_APPEND(SRCDIR, $srcdir) -DX_ENV_APPEND(PROJECT, $DX_PROJECT) -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) +DX_ENV_APPEND(BUILDDIR, $builddir) DX_ENV_APPEND(VERSION, $VERSION) DX_ENV_APPEND(WITH_PLATFORM, $with_platform) +DX_ENV_APPEND(PROJECT, $DX_PROJECT) +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) # Doxygen itself: DX_ARG_ABLE(doc, [generate any doxygen documentation], @@ -495,7 +358,6 @@ DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], DX_REQUIRE_PROG([DX_EGREP], egrep)]) # LaTeX generation for PS and/or PDF: -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf)) if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then DX_ENV_APPEND(GENERATE_LATEX, YES) else @@ -518,11 +380,226 @@ a4wide|a4|letter|legal|executive) ;; esac +# Rules: +if test $DX_FLAG_html -eq 1; then + DX_SNIPPET_html="## ------------------------------- ## +## Rules specific for HTML output. ## +## ------------------------------- ## + +DX_CLEAN_HTML = \$(DX_DOCDIR)/html[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/html]]) + +" +else + DX_SNIPPET_html="" +fi +if test $DX_FLAG_chi -eq 1; then + DX_SNIPPET_chi=" +DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])" +else + DX_SNIPPET_chi="" +fi +if test $DX_FLAG_chm -eq 1; then + DX_SNIPPET_chm="## ------------------------------ ## +## Rules specific for CHM output. ## +## ------------------------------ ## + +DX_CLEAN_CHM = \$(DX_DOCDIR)/chm[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/chm]])\ +${DX_SNIPPET_chi} + +" +else + DX_SNIPPET_chm="" +fi +if test $DX_FLAG_man -eq 1; then + DX_SNIPPET_man="## ------------------------------ ## +## Rules specific for MAN output. ## +## ------------------------------ ## + +DX_CLEAN_MAN = \$(DX_DOCDIR)/man[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/man]]) + +" +else + DX_SNIPPET_man="" +fi +if test $DX_FLAG_rtf -eq 1; then + DX_SNIPPET_rtf="## ------------------------------ ## +## Rules specific for RTF output. ## +## ------------------------------ ## + +DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/rtf]]) + +" +else + DX_SNIPPET_rtf="" +fi +if test $DX_FLAG_xml -eq 1; then + DX_SNIPPET_xml="## ------------------------------ ## +## Rules specific for XML output. ## +## ------------------------------ ## + +DX_CLEAN_XML = \$(DX_DOCDIR)/xml[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/xml]]) + +" +else + DX_SNIPPET_xml="" +fi +if test $DX_FLAG_ps -eq 1; then + DX_SNIPPET_ps="## ----------------------------- ## +## Rules specific for PS output. ## +## ----------------------------- ## + +DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]]) + +DX_PS_GOAL = doxygen-ps + +doxygen-ps: \$(DX_CLEAN_PS) + +m4_foreach([DX_i], [DX_loop], +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ + \$(DX_LATEX) refman.tex; \\ + \$(DX_MAKEINDEX) refman.idx; \\ + \$(DX_LATEX) refman.tex; \\ + countdown=5; \\ + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\ + refman.log > /dev/null 2>&1 \\ + && test \$\$countdown -gt 0; do \\ + \$(DX_LATEX) refman.tex; \\ + countdown=\`expr \$\$countdown - 1\`; \\ + done; \\ + \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi + +]])dnl +" +else + DX_SNIPPET_ps="" +fi +if test $DX_FLAG_pdf -eq 1; then + DX_SNIPPET_pdf="## ------------------------------ ## +## Rules specific for PDF output. ## +## ------------------------------ ## + +DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]]) + +DX_PDF_GOAL = doxygen-pdf + +doxygen-pdf: \$(DX_CLEAN_PDF) + +m4_foreach([DX_i], [DX_loop], +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag + \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\ + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\ + \$(DX_PDFLATEX) refman.tex; \\ + \$(DX_MAKEINDEX) refman.idx; \\ + \$(DX_PDFLATEX) refman.tex; \\ + countdown=5; \\ + while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\ + refman.log > /dev/null 2>&1 \\ + && test \$\$countdown -gt 0; do \\ + \$(DX_PDFLATEX) refman.tex; \\ + countdown=\`expr \$\$countdown - 1\`; \\ + done; \\ + mv refman.pdf ../\$(PACKAGE).pdf + +]])dnl +" +else + DX_SNIPPET_pdf="" +fi +if test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1; then + DX_SNIPPET_latex="## ------------------------------------------------- ## +## Rules specific for LaTeX (shared for PS and PDF). ## +## ------------------------------------------------- ## + +DX_V_LATEX = \$(_DX_v_LATEX_\$(V)) +_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY)) +_DX_v_LATEX_0 = @echo \" LATEX \" \$[]][[]@; + +DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex[]dnl +m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\ + \$(DX_DOCDIR]DX_i[)/latex]]) + +" +else + DX_SNIPPET_latex="" +fi + +if test $DX_FLAG_doc -eq 1; then + DX_SNIPPET_doc="## --------------------------------- ## +## Format-independent Doxygen rules. ## +## --------------------------------- ## + +${DX_SNIPPET_html}\ +${DX_SNIPPET_chm}\ +${DX_SNIPPET_man}\ +${DX_SNIPPET_rtf}\ +${DX_SNIPPET_xml}\ +${DX_SNIPPET_ps}\ +${DX_SNIPPET_pdf}\ +${DX_SNIPPET_latex}\ +DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V)) +_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY)) +_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<; + +.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL) + +.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) + +doxygen-run:[]m4_foreach([DX_i], [DX_loop], + [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]]) + +doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL) + +m4_foreach([DX_i], [DX_loop], +[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) \$(pkginclude_HEADERS) + \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[) + \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[) + \$(A""M_V_at)echo Timestamp >\$][@ + +]])dnl +DX_CLEANFILES = \\ +m4_foreach([DX_i], [DX_loop], +[[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\ +]])dnl + -r \\ + \$(DX_CLEAN_HTML) \\ + \$(DX_CLEAN_CHM) \\ + \$(DX_CLEAN_CHI) \\ + \$(DX_CLEAN_MAN) \\ + \$(DX_CLEAN_RTF) \\ + \$(DX_CLEAN_XML) \\ + \$(DX_CLEAN_PS) \\ + \$(DX_CLEAN_PDF) \\ + \$(DX_CLEAN_LATEX)" +else + DX_SNIPPET_doc="" +fi +AC_SUBST([DX_RULES], +["${DX_SNIPPET_doc}"])dnl +AM_SUBST_NOTMAKE([DX_RULES]) + #For debugging: -#echo DX_FLAG_doc=$DX_FLAG_doc +echo DX_FLAG_doc=$DX_FLAG_doc #echo DX_FLAG_dot=$DX_FLAG_dot #echo DX_FLAG_man=$DX_FLAG_man -#echo DX_FLAG_html=$DX_FLAG_html +echo DX_FLAG_html=$DX_FLAG_html #echo DX_FLAG_chm=$DX_FLAG_chm #echo DX_FLAG_chi=$DX_FLAG_chi #echo DX_FLAG_rtf=$DX_FLAG_rtf @@ -530,4 +607,4 @@ esac #echo DX_FLAG_pdf=$DX_FLAG_pdf #echo DX_FLAG_ps=$DX_FLAG_ps #echo DX_ENV=$DX_ENV -]) +]) \ No newline at end of file
fixes https://bugs.linaro.org/show_bug.cgi?id=1946 Move to the latest m4 scripts for doxygen and revert to using it without modification, thus make doxygen-html becomes make doxygen-doc. Also cleans up the last parts of the previously removed .pdf support. Output now left in application-api-guide to match the other guides. Signed-off-by: Mike Holmes <mike.holmes@linaro.org> --- Makefile.am | 2 +- README | 2 +- aminclude.am | 167 ------------------- configure.ac | 5 +- m4/ax_prog_doxygen.m4 | 449 +++++++++++++++++++++++++++++--------------------- 5 files changed, 268 insertions(+), 357 deletions(-) delete mode 100644 aminclude.am