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 35 if DX_COND_doc 36 37 ## ------------------------------- ## 38 ## Rules specific for HTML output. ## 39 ## ------------------------------- ## 40 41 if DX_COND_html 42 43 DX_CLEAN_HTML = @DX_DOCDIR@/html 44 45 endif DX_COND_html 46 47 ## ------------------------------ ## 48 ## Rules specific for CHM output. ## 49 ## ------------------------------ ## 50 51 if DX_COND_chm 52 53 DX_CLEAN_CHM = @DX_DOCDIR@/chm 54 55 if DX_COND_chi 56 57 DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi 58 59 endif DX_COND_chi 60 61 endif DX_COND_chm 62 63 ## ------------------------------ ## 64 ## Rules specific for MAN output. ## 65 ## ------------------------------ ## 66 67 if DX_COND_man 68 69 DX_CLEAN_MAN = @DX_DOCDIR@/man 70 71 endif DX_COND_man 72 73 ## ------------------------------ ## 74 ## Rules specific for RTF output. ## 75 ## ------------------------------ ## 76 77 if DX_COND_rtf 78 79 DX_CLEAN_RTF = @DX_DOCDIR@/rtf 80 81 endif DX_COND_rtf 82 83 ## ------------------------------ ## 84 ## Rules specific for XML output. ## 85 ## ------------------------------ ## 86 87 if DX_COND_xml 88 89 DX_CLEAN_XML = @DX_DOCDIR@/xml 90 91 endif DX_COND_xml 92 93 ## ----------------------------- ## 94 ## Rules specific for PS output. ## 95 ## ----------------------------- ## 96 97 if DX_COND_ps 98 99 DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps 100 101 DX_PS_GOAL = doxygen-ps 102 103 doxygen-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 120 endif DX_COND_ps 121 122 ## ------------------------------ ## 123 ## Rules specific for PDF output. ## 124 ## ------------------------------ ## 125 126 if DX_COND_pdf 127 128 DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf 129 130 DX_PDF_GOAL = doxygen-pdf 131 132 doxygen-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 149 endif DX_COND_pdf 150 151 ## ------------------------------------------------- ## 152 ## Rules specific for LaTeX (shared for PS and PDF). ## 153 ## ------------------------------------------------- ## 154 155 if DX_COND_latex 156 157 DX_CLEAN_LATEX = @DX_DOCDIR@/latex 158 159 endif 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 165 doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag 166 167 doxygen-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 174 DX_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 187 endif DX_COND_doc 188