File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libnet / m4 / ax_prog_doxygen.m4
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:11:37 2023 UTC (12 months ago) by misho
Branches: libnet, MAIN
CVS tags: v1_2p1, HEAD
Version 1.2p1

    1: # ===========================================================================
    2: #      http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html
    3: # ===========================================================================
    4: #
    5: # SYNOPSIS
    6: #
    7: #   DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...)
    8: #   DX_DOXYGEN_FEATURE(ON|OFF)
    9: #   DX_DOT_FEATURE(ON|OFF)
   10: #   DX_HTML_FEATURE(ON|OFF)
   11: #   DX_CHM_FEATURE(ON|OFF)
   12: #   DX_CHI_FEATURE(ON|OFF)
   13: #   DX_MAN_FEATURE(ON|OFF)
   14: #   DX_RTF_FEATURE(ON|OFF)
   15: #   DX_XML_FEATURE(ON|OFF)
   16: #   DX_PDF_FEATURE(ON|OFF)
   17: #   DX_PS_FEATURE(ON|OFF)
   18: #
   19: # DESCRIPTION
   20: #
   21: #   The DX_*_FEATURE macros control the default setting for the given
   22: #   Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for
   23: #   generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML
   24: #   help (for MS users), 'CHI' for generating a seperate .chi file by the
   25: #   .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate
   26: #   output formats. The environment variable DOXYGEN_PAPER_SIZE may be
   27: #   specified to override the default 'a4wide' paper size.
   28: #
   29: #   By default, HTML, PDF and PS documentation is generated as this seems to
   30: #   be the most popular and portable combination. MAN pages created by
   31: #   Doxygen are usually problematic, though by picking an appropriate subset
   32: #   and doing some massaging they might be better than nothing. CHM and RTF
   33: #   are specific for MS (note that you can't generate both HTML and CHM at
   34: #   the same time). The XML is rather useless unless you apply specialized
   35: #   post-processing to it.
   36: #
   37: #   The macros mainly control the default state of the feature. The use can
   38: #   override the default by specifying --enable or --disable. The macros
   39: #   ensure that contradictory flags are not given (e.g.,
   40: #   --enable-doxygen-html and --enable-doxygen-chm,
   41: #   --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each
   42: #   feature will be automatically disabled (with a warning) if the required
   43: #   programs are missing.
   44: #
   45: #   Once all the feature defaults have been specified, call DX_INIT_DOXYGEN
   46: #   with the following parameters: a one-word name for the project for use
   47: #   as a filename base etc., an optional configuration file name (the
   48: #   default is '$(srcdir)/Doxyfile', the same as Doxygen's default), and an
   49: #   optional output directory name (the default is 'doxygen-doc'). To run
   50: #   doxygen multiple times for different configuration files and output
   51: #   directories provide more parameters: the second, forth, sixth, etc
   52: #   parameter are configuration file names and the third, fifth, seventh,
   53: #   etc parameter are output directories. No checking is done to catch
   54: #   duplicates.
   55: #
   56: #   Automake Support
   57: #
   58: #   The DX_RULES substitution can be used to add all needed rules to the
   59: #   Makefile. Note that this is a substitution without being a variable:
   60: #   only the @DX_RULES@ syntax will work.
   61: #
   62: #   The provided targets are:
   63: #
   64: #     doxygen-doc: Generate all doxygen documentation.
   65: #
   66: #     doxygen-run: Run doxygen, which will generate some of the
   67: #                  documentation (HTML, CHM, CHI, MAN, RTF, XML)
   68: #                  but will not do the post processing required
   69: #                  for the rest of it (PS, PDF).
   70: #
   71: #     doxygen-ps:  Generate doxygen PostScript documentation.
   72: #
   73: #     doxygen-pdf: Generate doxygen PDF documentation.
   74: #
   75: #   Note that by default these are not integrated into the automake targets.
   76: #   If doxygen is used to generate man pages, you can achieve this
   77: #   integration by setting man3_MANS to the list of man pages generated and
   78: #   then adding the dependency:
   79: #
   80: #     $(man3_MANS): doxygen-doc
   81: #
   82: #   This will cause make to run doxygen and generate all the documentation.
   83: #
   84: #   The following variable is intended for use in Makefile.am:
   85: #
   86: #     DX_CLEANFILES = everything to clean.
   87: #
   88: #   Then add this variable to MOSTLYCLEANFILES.
   89: #
   90: # LICENSE
   91: #
   92: #   Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org>
   93: #   Copyright (c) 2015 Olaf Mandel <olaf@mandel.name>
   94: #
   95: #   Copying and distribution of this file, with or without modification, are
   96: #   permitted in any medium without royalty provided the copyright notice
   97: #   and this notice are preserved. This file is offered as-is, without any
   98: #   warranty.
   99: 
  100: #serial 20
  101: 
  102: ## ----------##
  103: ## Defaults. ##
  104: ## ----------##
  105: 
  106: DX_ENV=""
  107: AC_DEFUN([DX_FEATURE_doc],  ON)
  108: AC_DEFUN([DX_FEATURE_dot],  OFF)
  109: AC_DEFUN([DX_FEATURE_man],  OFF)
  110: AC_DEFUN([DX_FEATURE_html], ON)
  111: AC_DEFUN([DX_FEATURE_chm],  OFF)
  112: AC_DEFUN([DX_FEATURE_chi],  OFF)
  113: AC_DEFUN([DX_FEATURE_rtf],  OFF)
  114: AC_DEFUN([DX_FEATURE_xml],  OFF)
  115: AC_DEFUN([DX_FEATURE_pdf],  ON)
  116: AC_DEFUN([DX_FEATURE_ps],   ON)
  117: 
  118: ## --------------- ##
  119: ## Private macros. ##
  120: ## --------------- ##
  121: 
  122: # DX_ENV_APPEND(VARIABLE, VALUE)
  123: # ------------------------------
  124: # Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it
  125: # as a substitution (but not a Makefile variable). The substitution
  126: # is skipped if the variable name is VERSION.
  127: AC_DEFUN([DX_ENV_APPEND],
  128: [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl
  129: m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl
  130: AM_SUBST_NOTMAKE([$1])])dnl
  131: ])
  132: 
  133: # DX_DIRNAME_EXPR
  134: # ---------------
  135: # Expand into a shell expression prints the directory part of a path.
  136: AC_DEFUN([DX_DIRNAME_EXPR],
  137:          [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']])
  138: 
  139: # DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF)
  140: # -------------------------------------
  141: # Expands according to the M4 (static) status of the feature.
  142: AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])])
  143: 
  144: # DX_REQUIRE_PROG(VARIABLE, PROGRAM)
  145: # ----------------------------------
  146: # Require the specified program to be found for the DX_CURRENT_FEATURE to work.
  147: AC_DEFUN([DX_REQUIRE_PROG], [
  148: AC_PATH_TOOL([$1], [$2])
  149: if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then
  150:     AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION])
  151:     AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
  152: fi
  153: ])
  154: 
  155: # DX_TEST_FEATURE(FEATURE)
  156: # ------------------------
  157: # Expand to a shell expression testing whether the feature is active.
  158: AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1])
  159: 
  160: # DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE)
  161: # -------------------------------------------------
  162: # Verify that a required features has the right state before trying to turn on
  163: # the DX_CURRENT_FEATURE.
  164: AC_DEFUN([DX_CHECK_DEPEND], [
  165: test "$DX_FLAG_$1" = "$2" \
  166: || AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1,
  167:                             requires, contradicts) doxygen-DX_CURRENT_FEATURE])
  168: ])
  169: 
  170: # DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE)
  171: # ----------------------------------------------------------
  172: # Turn off the DX_CURRENT_FEATURE if the required feature is off.
  173: AC_DEFUN([DX_CLEAR_DEPEND], [
  174: test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
  175: ])
  176: 
  177: # DX_FEATURE_ARG(FEATURE, DESCRIPTION,
  178: #                CHECK_DEPEND, CLEAR_DEPEND,
  179: #                REQUIRE, DO-IF-ON, DO-IF-OFF)
  180: # --------------------------------------------
  181: # Parse the command-line option controlling a feature. CHECK_DEPEND is called
  182: # if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND),
  183: # otherwise CLEAR_DEPEND is called to turn off the default state if a required
  184: # feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional
  185: # requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and
  186: # DO-IF-ON or DO-IF-OFF are called according to the final state of the feature.
  187: AC_DEFUN([DX_ARG_ABLE], [
  188:     AC_DEFUN([DX_CURRENT_FEATURE], [$1])
  189:     AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2])
  190:     AC_ARG_ENABLE(doxygen-$1,
  191:                   [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1],
  192:                                                       [--enable-doxygen-$1]),
  193:                                   DX_IF_FEATURE([$1], [don't $2], [$2]))],
  194:                   [
  195: case "$enableval" in
  196: #(
  197: y|Y|yes|Yes|YES)
  198:     AC_SUBST([DX_FLAG_$1], 1)
  199:     $3
  200: ;; #(
  201: n|N|no|No|NO)
  202:     AC_SUBST([DX_FLAG_$1], 0)
  203: ;; #(
  204: *)
  205:     AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1])
  206: ;;
  207: esac
  208: ], [
  209: AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)])
  210: $4
  211: ])
  212: if DX_TEST_FEATURE([$1]); then
  213:     $5
  214:     :
  215: fi
  216: if DX_TEST_FEATURE([$1]); then
  217:     $6
  218:     :
  219: else
  220:     $7
  221:     :
  222: fi
  223: ])
  224: 
  225: ## -------------- ##
  226: ## Public macros. ##
  227: ## -------------- ##
  228: 
  229: # DX_XXX_FEATURE(DEFAULT_STATE)
  230: # -----------------------------
  231: AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc],  [$1])])
  232: AC_DEFUN([DX_DOT_FEATURE],     [AC_DEFUN([DX_FEATURE_dot], [$1])])
  233: AC_DEFUN([DX_MAN_FEATURE],     [AC_DEFUN([DX_FEATURE_man],  [$1])])
  234: AC_DEFUN([DX_HTML_FEATURE],    [AC_DEFUN([DX_FEATURE_html], [$1])])
  235: AC_DEFUN([DX_CHM_FEATURE],     [AC_DEFUN([DX_FEATURE_chm],  [$1])])
  236: AC_DEFUN([DX_CHI_FEATURE],     [AC_DEFUN([DX_FEATURE_chi],  [$1])])
  237: AC_DEFUN([DX_RTF_FEATURE],     [AC_DEFUN([DX_FEATURE_rtf],  [$1])])
  238: AC_DEFUN([DX_XML_FEATURE],     [AC_DEFUN([DX_FEATURE_xml],  [$1])])
  239: AC_DEFUN([DX_XML_FEATURE],     [AC_DEFUN([DX_FEATURE_xml],  [$1])])
  240: AC_DEFUN([DX_PDF_FEATURE],     [AC_DEFUN([DX_FEATURE_pdf],  [$1])])
  241: AC_DEFUN([DX_PS_FEATURE],      [AC_DEFUN([DX_FEATURE_ps],   [$1])])
  242: 
  243: # DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...)
  244: # --------------------------------------------------------------
  245: # PROJECT also serves as the base name for the documentation files.
  246: # The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is
  247: # "doxygen-doc".
  248: # More arguments are interpreted as interleaved CONFIG-FILE and
  249: # OUTPUT-DOC-DIR values.
  250: AC_DEFUN([DX_INIT_DOXYGEN], [
  251: 
  252: # Files:
  253: AC_SUBST([DX_PROJECT], [$1])
  254: AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])'])
  255: AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])'])
  256: m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2,
  257:       [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]),
  258:                 'm4_default_nblank_quoted(m4_argn(DX_i, $@),
  259:                                           [$(srcdir)/Doxyfile])')])])dnl
  260: m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2,
  261:       [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]),
  262:                 'm4_default_nblank_quoted(m4_argn(DX_i, $@),
  263:                                           [doxygen-doc])')])])dnl
  264: m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1,
  265:           [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])],
  266:           [])))dnl
  267: 
  268: # Environment variables used inside doxygen.cfg:
  269: DX_ENV_APPEND(SRCDIR, $srcdir)
  270: DX_ENV_APPEND(PROJECT, $DX_PROJECT)
  271: DX_ENV_APPEND(VERSION, $PACKAGE_VERSION)
  272: 
  273: # Doxygen itself:
  274: DX_ARG_ABLE(doc, [generate any doxygen documentation],
  275:             [],
  276:             [],
  277:             [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen)
  278:              DX_REQUIRE_PROG([DX_PERL], perl)],
  279:             [DX_ENV_APPEND(PERL_PATH, $DX_PERL)])
  280: 
  281: # Dot for graphics:
  282: DX_ARG_ABLE(dot, [generate graphics for doxygen documentation],
  283:             [DX_CHECK_DEPEND(doc, 1)],
  284:             [DX_CLEAR_DEPEND(doc, 1)],
  285:             [DX_REQUIRE_PROG([DX_DOT], dot)],
  286:             [DX_ENV_APPEND(HAVE_DOT, YES)
  287:              DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])],
  288:             [DX_ENV_APPEND(HAVE_DOT, NO)])
  289: 
  290: # Man pages generation:
  291: DX_ARG_ABLE(man, [generate doxygen manual pages],
  292:             [DX_CHECK_DEPEND(doc, 1)],
  293:             [DX_CLEAR_DEPEND(doc, 1)],
  294:             [],
  295:             [DX_ENV_APPEND(GENERATE_MAN, YES)],
  296:             [DX_ENV_APPEND(GENERATE_MAN, NO)])
  297: 
  298: # RTF file generation:
  299: DX_ARG_ABLE(rtf, [generate doxygen RTF documentation],
  300:             [DX_CHECK_DEPEND(doc, 1)],
  301:             [DX_CLEAR_DEPEND(doc, 1)],
  302:             [],
  303:             [DX_ENV_APPEND(GENERATE_RTF, YES)],
  304:             [DX_ENV_APPEND(GENERATE_RTF, NO)])
  305: 
  306: # XML file generation:
  307: DX_ARG_ABLE(xml, [generate doxygen XML documentation],
  308:             [DX_CHECK_DEPEND(doc, 1)],
  309:             [DX_CLEAR_DEPEND(doc, 1)],
  310:             [],
  311:             [DX_ENV_APPEND(GENERATE_XML, YES)],
  312:             [DX_ENV_APPEND(GENERATE_XML, NO)])
  313: 
  314: # (Compressed) HTML help generation:
  315: DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation],
  316:             [DX_CHECK_DEPEND(doc, 1)],
  317:             [DX_CLEAR_DEPEND(doc, 1)],
  318:             [DX_REQUIRE_PROG([DX_HHC], hhc)],
  319:             [DX_ENV_APPEND(HHC_PATH, $DX_HHC)
  320:              DX_ENV_APPEND(GENERATE_HTML, YES)
  321:              DX_ENV_APPEND(GENERATE_HTMLHELP, YES)],
  322:             [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)])
  323: 
  324: # Seperate CHI file generation.
  325: DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file],
  326:             [DX_CHECK_DEPEND(chm, 1)],
  327:             [DX_CLEAR_DEPEND(chm, 1)],
  328:             [],
  329:             [DX_ENV_APPEND(GENERATE_CHI, YES)],
  330:             [DX_ENV_APPEND(GENERATE_CHI, NO)])
  331: 
  332: # Plain HTML pages generation:
  333: DX_ARG_ABLE(html, [generate doxygen plain HTML documentation],
  334:             [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)],
  335:             [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)],
  336:             [],
  337:             [DX_ENV_APPEND(GENERATE_HTML, YES)],
  338:             [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)])
  339: 
  340: # PostScript file generation:
  341: DX_ARG_ABLE(ps, [generate doxygen PostScript documentation],
  342:             [DX_CHECK_DEPEND(doc, 1)],
  343:             [DX_CLEAR_DEPEND(doc, 1)],
  344:             [DX_REQUIRE_PROG([DX_LATEX], latex)
  345:              DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
  346:              DX_REQUIRE_PROG([DX_DVIPS], dvips)
  347:              DX_REQUIRE_PROG([DX_EGREP], egrep)])
  348: 
  349: # PDF file generation:
  350: DX_ARG_ABLE(pdf, [generate doxygen PDF documentation],
  351:             [DX_CHECK_DEPEND(doc, 1)],
  352:             [DX_CLEAR_DEPEND(doc, 1)],
  353:             [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex)
  354:              DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
  355:              DX_REQUIRE_PROG([DX_EGREP], egrep)])
  356: 
  357: # LaTeX generation for PS and/or PDF:
  358: if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then
  359:     DX_ENV_APPEND(GENERATE_LATEX, YES)
  360: else
  361:     DX_ENV_APPEND(GENERATE_LATEX, NO)
  362: fi
  363: 
  364: # Paper size for PS and/or PDF:
  365: AC_ARG_VAR(DOXYGEN_PAPER_SIZE,
  366:            [a4wide (default), a4, letter, legal or executive])
  367: case "$DOXYGEN_PAPER_SIZE" in
  368: #(
  369: "")
  370:     AC_SUBST(DOXYGEN_PAPER_SIZE, "")
  371: ;; #(
  372: a4wide|a4|letter|legal|executive)
  373:     DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE)
  374: ;; #(
  375: *)
  376:     AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'])
  377: ;;
  378: esac
  379: 
  380: # Rules:
  381: AS_IF([[test $DX_FLAG_html -eq 1]],
  382: [[DX_SNIPPET_html="## ------------------------------- ##
  383: ## Rules specific for HTML output. ##
  384: ## ------------------------------- ##
  385: 
  386: DX_CLEAN_HTML = \$(DX_DOCDIR)/html]dnl
  387: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  388:                 \$(DX_DOCDIR]DX_i[)/html]])[
  389: 
  390: "]],
  391: [[DX_SNIPPET_html=""]])
  392: AS_IF([[test $DX_FLAG_chi -eq 1]],
  393: [[DX_SNIPPET_chi="
  394: DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi]dnl
  395: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  396:                \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])["]],
  397: [[DX_SNIPPET_chi=""]])
  398: AS_IF([[test $DX_FLAG_chm -eq 1]],
  399: [[DX_SNIPPET_chm="## ------------------------------ ##
  400: ## Rules specific for CHM output. ##
  401: ## ------------------------------ ##
  402: 
  403: DX_CLEAN_CHM = \$(DX_DOCDIR)/chm]dnl
  404: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  405:                \$(DX_DOCDIR]DX_i[)/chm]])[\
  406: ${DX_SNIPPET_chi}
  407: 
  408: "]],
  409: [[DX_SNIPPET_chm=""]])
  410: AS_IF([[test $DX_FLAG_man -eq 1]],
  411: [[DX_SNIPPET_man="## ------------------------------ ##
  412: ## Rules specific for MAN output. ##
  413: ## ------------------------------ ##
  414: 
  415: DX_CLEAN_MAN = \$(DX_DOCDIR)/man]dnl
  416: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  417:                \$(DX_DOCDIR]DX_i[)/man]])[
  418: 
  419: "]],
  420: [[DX_SNIPPET_man=""]])
  421: AS_IF([[test $DX_FLAG_rtf -eq 1]],
  422: [[DX_SNIPPET_rtf="## ------------------------------ ##
  423: ## Rules specific for RTF output. ##
  424: ## ------------------------------ ##
  425: 
  426: DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf]dnl
  427: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  428:                \$(DX_DOCDIR]DX_i[)/rtf]])[
  429: 
  430: "]],
  431: [[DX_SNIPPET_rtf=""]])
  432: AS_IF([[test $DX_FLAG_xml -eq 1]],
  433: [[DX_SNIPPET_xml="## ------------------------------ ##
  434: ## Rules specific for XML output. ##
  435: ## ------------------------------ ##
  436: 
  437: DX_CLEAN_XML = \$(DX_DOCDIR)/xml]dnl
  438: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  439:                \$(DX_DOCDIR]DX_i[)/xml]])[
  440: 
  441: "]],
  442: [[DX_SNIPPET_xml=""]])
  443: AS_IF([[test $DX_FLAG_ps -eq 1]],
  444: [[DX_SNIPPET_ps="## ----------------------------- ##
  445: ## Rules specific for PS output. ##
  446: ## ----------------------------- ##
  447: 
  448: DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps]dnl
  449: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  450:               \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]])[
  451: 
  452: DX_PS_GOAL = doxygen-ps
  453: 
  454: doxygen-ps: \$(DX_CLEAN_PS)
  455: 
  456: ]m4_foreach([DX_i], [DX_loop],
  457: [[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag
  458: 	\$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\
  459: 	rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\
  460: 	\$(DX_LATEX) refman.tex; \\
  461: 	\$(DX_MAKEINDEX) refman.idx; \\
  462: 	\$(DX_LATEX) refman.tex; \\
  463: 	countdown=5; \\
  464: 	while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\
  465: 	                  refman.log > /dev/null 2>&1 \\
  466: 	   && test \$\$countdown -gt 0; do \\
  467: 	    \$(DX_LATEX) refman.tex; \\
  468:             countdown=\`expr \$\$countdown - 1\`; \\
  469: 	done; \\
  470: 	\$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi
  471: 
  472: ]])["]],
  473: [[DX_SNIPPET_ps=""]])
  474: AS_IF([[test $DX_FLAG_pdf -eq 1]],
  475: [[DX_SNIPPET_pdf="## ------------------------------ ##
  476: ## Rules specific for PDF output. ##
  477: ## ------------------------------ ##
  478: 
  479: DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf]dnl
  480: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  481:                \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]])[
  482: 
  483: DX_PDF_GOAL = doxygen-pdf
  484: 
  485: doxygen-pdf: \$(DX_CLEAN_PDF)
  486: 
  487: ]m4_foreach([DX_i], [DX_loop],
  488: [[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag
  489: 	\$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\
  490: 	rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\
  491: 	\$(DX_PDFLATEX) refman.tex; \\
  492: 	\$(DX_MAKEINDEX) refman.idx; \\
  493: 	\$(DX_PDFLATEX) refman.tex; \\
  494: 	countdown=5; \\
  495: 	while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\
  496: 	                  refman.log > /dev/null 2>&1 \\
  497: 	   && test \$\$countdown -gt 0; do \\
  498: 	    \$(DX_PDFLATEX) refman.tex; \\
  499: 	    countdown=\`expr \$\$countdown - 1\`; \\
  500: 	done; \\
  501: 	mv refman.pdf ../\$(PACKAGE).pdf
  502: 
  503: ]])["]],
  504: [[DX_SNIPPET_pdf=""]])
  505: AS_IF([[test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1]],
  506: [[DX_SNIPPET_latex="## ------------------------------------------------- ##
  507: ## Rules specific for LaTeX (shared for PS and PDF). ##
  508: ## ------------------------------------------------- ##
  509: 
  510: DX_V_LATEX = \$(_DX_v_LATEX_\$(V))
  511: _DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY))
  512: _DX_v_LATEX_0 = @echo \"  LATEX \" \$][@;
  513: 
  514: DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex]dnl
  515: m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
  516:                  \$(DX_DOCDIR]DX_i[)/latex]])[
  517: 
  518: "]],
  519: [[DX_SNIPPET_latex=""]])
  520: 
  521: AS_IF([[test $DX_FLAG_doc -eq 1]],
  522: [[DX_SNIPPET_doc="## --------------------------------- ##
  523: ## Format-independent Doxygen rules. ##
  524: ## --------------------------------- ##
  525: 
  526: ${DX_SNIPPET_html}\
  527: ${DX_SNIPPET_chm}\
  528: ${DX_SNIPPET_man}\
  529: ${DX_SNIPPET_rtf}\
  530: ${DX_SNIPPET_xml}\
  531: ${DX_SNIPPET_ps}\
  532: ${DX_SNIPPET_pdf}\
  533: ${DX_SNIPPET_latex}\
  534: DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V))
  535: _DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY))
  536: _DX_v_DXGEN_0 = @echo \"  DXGEN \" \$<;
  537: 
  538: .PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
  539: 
  540: .INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
  541: 
  542: doxygen-run:]m4_foreach([DX_i], [DX_loop],
  543:                          [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]])[
  544: 
  545: doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
  546: 
  547: ]m4_foreach([DX_i], [DX_loop],
  548: [[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) \$(pkginclude_HEADERS)
  549: 	\$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[)
  550: 	\$(A""M_V_at)echo Timestamp >\$][@
  551: 
  552: ]])dnl
  553: [DX_CLEANFILES = \\]
  554: m4_foreach([DX_i], [DX_loop],
  555: [[	\$(DX_DOCDIR]DX_i[)/doxygen_sqlite3.db \\
  556: 	\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\
  557: ]])dnl
  558: [	-r \\
  559: 	\$(DX_CLEAN_HTML) \\
  560: 	\$(DX_CLEAN_CHM) \\
  561: 	\$(DX_CLEAN_CHI) \\
  562: 	\$(DX_CLEAN_MAN) \\
  563: 	\$(DX_CLEAN_RTF) \\
  564: 	\$(DX_CLEAN_XML) \\
  565: 	\$(DX_CLEAN_PS) \\
  566: 	\$(DX_CLEAN_PDF) \\
  567: 	\$(DX_CLEAN_LATEX)"]],
  568: [[DX_SNIPPET_doc=""]])
  569: AC_SUBST([DX_RULES],
  570: ["${DX_SNIPPET_doc}"])dnl
  571: AM_SUBST_NOTMAKE([DX_RULES])
  572: 
  573: #For debugging:
  574: #echo DX_FLAG_doc=$DX_FLAG_doc
  575: #echo DX_FLAG_dot=$DX_FLAG_dot
  576: #echo DX_FLAG_man=$DX_FLAG_man
  577: #echo DX_FLAG_html=$DX_FLAG_html
  578: #echo DX_FLAG_chm=$DX_FLAG_chm
  579: #echo DX_FLAG_chi=$DX_FLAG_chi
  580: #echo DX_FLAG_rtf=$DX_FLAG_rtf
  581: #echo DX_FLAG_xml=$DX_FLAG_xml
  582: #echo DX_FLAG_pdf=$DX_FLAG_pdf
  583: #echo DX_FLAG_ps=$DX_FLAG_ps
  584: #echo DX_ENV=$DX_ENV
  585: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>