1# Copyright (C) 2004 Oren Ben-Kiki 2# This file is distributed under the same terms as the Automake macro files. 3 4# Generate automatic documentation using Doxygen. Goals and variables values 5# are controlled by the various DX_COND_??? conditionals set by autoconf. 6# 7# The provided goals are: 8# doxygen-doc: Generate all doxygen documentation. 9# doxygen-run: Run doxygen, which will generate some of the documentation 10# (HTML, CHM, CHI, MAN, RTF, XML) but will not do the post 11# processing required for the rest of it (PS, PDF, and some MAN). 12# doxygen-man: Rename some doxygen generated man pages. 13# doxygen-ps: Generate doxygen PostScript documentation. 14# doxygen-pdf: Generate doxygen PDF documentation. 15# 16# Note that by default these are not integrated into the automake goals. If 17# doxygen is used to generate man pages, you can achieve this integration by 18# setting man3_MANS to the list of man pages generated and then adding the 19# dependency: 20# 21# $(man3_MANS): doxygen-doc 22# 23# This will cause make to run doxygen and generate all the documentation. 24# 25# The following variable is intended for use in Makefile.am: 26# 27# DX_CLEANFILES = everything to clean. 28# 29# This is usually added to MOSTLYCLEANFILES. 30 31## --------------------------------- ## 32## Format-independent Doxygen rules. ## 33## --------------------------------- ## 34 35if DX_COND_doc 36 37## ------------------------------- ## 38## Rules specific for HTML output. ## 39## ------------------------------- ## 40 41if DX_COND_html 42 43DX_CLEAN_HTML = @DX_DOCDIR@/html 44 45endif DX_COND_html 46 47## ------------------------------ ## 48## Rules specific for CHM output. ## 49## ------------------------------ ## 50 51if DX_COND_chm 52 53DX_CLEAN_CHM = @DX_DOCDIR@/chm 54 55if DX_COND_chi 56 57DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi 58 59endif DX_COND_chi 60 61endif DX_COND_chm 62 63## ------------------------------ ## 64## Rules specific for MAN output. ## 65## ------------------------------ ## 66 67if DX_COND_man 68 69DX_CLEAN_MAN = @DX_DOCDIR@/man 70 71endif DX_COND_man 72 73## ------------------------------ ## 74## Rules specific for RTF output. ## 75## ------------------------------ ## 76 77if DX_COND_rtf 78 79DX_CLEAN_RTF = @DX_DOCDIR@/rtf 80 81endif DX_COND_rtf 82 83## ------------------------------ ## 84## Rules specific for XML output. ## 85## ------------------------------ ## 86 87if DX_COND_xml 88 89DX_CLEAN_XML = @DX_DOCDIR@/xml 90 91endif DX_COND_xml 92 93## ----------------------------- ## 94## Rules specific for PS output. ## 95## ----------------------------- ## 96 97if DX_COND_ps 98 99DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps 100 101DX_PS_GOAL = doxygen-ps 102 103doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps 104 105@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag 106 cd @DX_DOCDIR@/latex; \ 107 rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ 108 $(DX_LATEX) refman.tex; \ 109 $(MAKEINDEX_PATH) refman.idx; \ 110 $(DX_LATEX) refman.tex; \ 111 countdown=5; \ 112 while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ 113 refman.log > /dev/null 2>&1 \ 114 && test $$countdown -gt 0; do \ 115 $(DX_LATEX) refman.tex; \ 116 countdown=`expr $$countdown - 1`; \ 117 done; \ 118 $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi 119 120endif DX_COND_ps 121 122## ------------------------------ ## 123## Rules specific for PDF output. ## 124## ------------------------------ ## 125 126if DX_COND_pdf 127 128DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf 129 130DX_PDF_GOAL = doxygen-pdf 131 132doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf 133 134@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag 135 cd @DX_DOCDIR@/latex; \ 136 rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ 137 $(DX_PDFLATEX) refman.tex; \ 138 $(DX_MAKEINDEX) refman.idx; \ 139 $(DX_PDFLATEX) refman.tex; \ 140 countdown=5; \ 141 while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ 142 refman.log > /dev/null 2>&1 \ 143 && test $$countdown -gt 0; do \ 144 $(DX_PDFLATEX) refman.tex; \ 145 countdown=`expr $$countdown - 1`; \ 146 done; \ 147 mv refman.pdf ../@PACKAGE@.pdf 148 149endif DX_COND_pdf 150 151## ------------------------------------------------- ## 152## Rules specific for LaTeX (shared for PS and PDF). ## 153## ------------------------------------------------- ## 154 155if DX_COND_latex 156 157DX_CLEAN_LATEX = @DX_DOCDIR@/latex 158 159endif DX_COND_latex 160 161.PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) 162 163.INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) 164 165doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag 166 167doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) 168 169@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) $(DX_INPUT) $(DX_EXAMPLE_PATH)/$(DX_EXAMPLE_PATTERNS) 170 rm -rf @DX_DOCDIR@ 171 INPUT='$(DX_INPUT)' EXAMPLE_PATH='$(DX_EXAMPLE_PATH)' EXAMPLE_PATTERNS='$(DX_EXAMPLE_PATTERNS)' \ 172 $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) 173 174DX_CLEANFILES = \ 175 @DX_DOCDIR@/@PACKAGE@.tag \ 176 -r \ 177 $(DX_CLEAN_HTML) \ 178 $(DX_CLEAN_CHM) \ 179 $(DX_CLEAN_CHI) \ 180 $(DX_CLEAN_MAN) \ 181 $(DX_CLEAN_RTF) \ 182 $(DX_CLEAN_XML) \ 183 $(DX_CLEAN_PS) \ 184 $(DX_CLEAN_PDF) \ 185 $(DX_CLEAN_LATEX) 186 187endif DX_COND_doc 188