diff mbox

doc: update to latest ax_prog_doxygen.m4

Message ID 1455042718-20085-1-git-send-email-mike.holmes@linaro.org
State Superseded
Headers show

Commit Message

Mike Holmes Feb. 9, 2016, 6:31 p.m. UTC
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.

Signed-off-by: Mike Holmes <mike.holmes@linaro.org>
---
 Makefile.am           |   2 +-
 README                |   2 +-
 aminclude.am          | 167 -------------------
 configure.ac          |   5 +-
 doc/Makefile.am       |   2 +-
 m4/ax_prog_doxygen.m4 | 449 +++++++++++++++++++++++++++++---------------------
 6 files changed, 269 insertions(+), 358 deletions(-)
 delete mode 100644 aminclude.am

Comments

Bill Fischofer Feb. 9, 2016, 7:45 p.m. UTC | #1
This looks good, however I was just about to dig into this a bit myself
since I notice that if you do a make doxygen-html one of the side-effects
is to blow away the doc/output directory, which clobbers any previously
generated user guides that make produced.  This should be changed to only
clear out the html subdirectory.

Something that can easily be folded in here, or should that be a separate
patch?

On Tue, Feb 9, 2016 at 12:31 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.

>

> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

> ---

>  Makefile.am           |   2 +-

>  README                |   2 +-

>  aminclude.am          | 167 -------------------

>  configure.ac          |   5 +-

>  doc/Makefile.am       |   2 +-

>  m4/ax_prog_doxygen.m4 | 449

> +++++++++++++++++++++++++++++---------------------

>  6 files changed, 269 insertions(+), 358 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..c0088b1 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/output)

>  ##########################################################################

>  # Enable/disable Unit tests

>  ##########################################################################

> diff --git a/doc/Makefile.am b/doc/Makefile.am

> index 2a38106..8294536 100644

> --- a/doc/Makefile.am

> +++ b/doc/Makefile.am

> @@ -1,6 +1,6 @@

> -if user_guide

>  clean-local:

>         rm -rf output

>

> +if user_guide

>  SUBDIRS = images implementers-guide users-guide process-guide

>  endif

> 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 Feb. 9, 2016, 7:53 p.m. UTC | #2
On 9 February 2016 at 14:45, Bill Fischofer <bill.fischofer@linaro.org>
wrote:

> This looks good, however I was just about to dig into this a bit myself

> since I notice that if you do a make doxygen-html one of the side-effects

> is to blow away the doc/output directory, which clobbers any previously

> generated user guides that make produced.  This should be changed to only

> clear out the html subdirectory.

>

> Something that can easily be folded in here, or should that be a separate

> patch?

>



The doxygen-html rule should have now disappeared altogether, but make
doxygen-doc has that issue, let me look, it might be trivial to pull into
this


Mike

>

> On Tue, Feb 9, 2016 at 12:31 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.

>>

>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

>> ---

>>  Makefile.am           |   2 +-

>>  README                |   2 +-

>>  aminclude.am          | 167 -------------------

>>  configure.ac          |   5 +-

>>  doc/Makefile.am       |   2 +-

>>  m4/ax_prog_doxygen.m4 | 449

>> +++++++++++++++++++++++++++++---------------------

>>  6 files changed, 269 insertions(+), 358 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..c0088b1 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/output)

>>

>>  ##########################################################################

>>  # Enable/disable Unit tests

>>

>>  ##########################################################################

>> diff --git a/doc/Makefile.am b/doc/Makefile.am

>> index 2a38106..8294536 100644

>> --- a/doc/Makefile.am

>> +++ b/doc/Makefile.am

>> @@ -1,6 +1,6 @@

>> -if user_guide

>>  clean-local:

>>         rm -rf output

>>

>> +if user_guide

>>  SUBDIRS = images implementers-guide users-guide process-guide

>>  endif

>> 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 Feb. 14, 2016, 3:12 a.m. UTC | #3
New patch series to be sent that adds:
documents depending on the images they use
drops the output dir
cleans up referencing the images from the ascii docs

On 9 February 2016 at 14:53, Mike Holmes <mike.holmes@linaro.org> wrote:

>

>

> On 9 February 2016 at 14:45, Bill Fischofer <bill.fischofer@linaro.org>

> wrote:

>

>> This looks good, however I was just about to dig into this a bit myself

>> since I notice that if you do a make doxygen-html one of the side-effects

>> is to blow away the doc/output directory, which clobbers any previously

>> generated user guides that make produced.  This should be changed to only

>> clear out the html subdirectory.

>>

>> Something that can easily be folded in here, or should that be a separate

>> patch?

>>

>

>

> The doxygen-html rule should have now disappeared altogether, but make

> doxygen-doc has that issue, let me look, it might be trivial to pull into

> this

>

>

> Mike

>

>>

>> On Tue, Feb 9, 2016 at 12:31 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.

>>>

>>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

>>> ---

>>>  Makefile.am           |   2 +-

>>>  README                |   2 +-

>>>  aminclude.am          | 167 -------------------

>>>  configure.ac          |   5 +-

>>>  doc/Makefile.am       |   2 +-

>>>  m4/ax_prog_doxygen.m4 | 449

>>> +++++++++++++++++++++++++++++---------------------

>>>  6 files changed, 269 insertions(+), 358 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..c0088b1 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/output)

>>>

>>>  ##########################################################################

>>>  # Enable/disable Unit tests

>>>

>>>  ##########################################################################

>>> diff --git a/doc/Makefile.am b/doc/Makefile.am

>>> index 2a38106..8294536 100644

>>> --- a/doc/Makefile.am

>>> +++ b/doc/Makefile.am

>>> @@ -1,6 +1,6 @@

>>> -if user_guide

>>>  clean-local:

>>>         rm -rf output

>>>

>>> +if user_guide

>>>  SUBDIRS = images implementers-guide users-guide process-guide

>>>  endif

>>> 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 mbox

Patch

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..c0088b1 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/output)
 ##########################################################################
 # Enable/disable Unit tests
 ##########################################################################
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 2a38106..8294536 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,6 +1,6 @@ 
-if user_guide
 clean-local:
 	rm -rf output
 
+if user_guide
 SUBDIRS = images implementers-guide users-guide process-guide
 endif
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