1# Copyright John Maddock 2008. Use, modification, and distribution are 2# subject to the Boost Software License, Version 1.0. (See accompanying 3# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 5import os ; 6import common ; 7import doxygen ; 8using quickbook ; 9import modules ; 10 11path-constant images_location : html ; 12 13# 14# Accumulators docs are dependent upon 15# latex dvips and ps being in your PATH. 16# This is true for most Unix installs, but 17# not on Win32, where you will need to install 18# MkTex and Ghostscript and add these tools 19# to your path. 20# 21make latex.check : : @check-latex ; 22actions check-latex 23{ 24 latex -version > latex.version 25} 26 27make dvips.check : : @check-dvips ; 28actions check-dvips 29{ 30 dvips -version > dvips.version 31} 32 33make gs.check : : @check-gs ; 34 35import os ; 36 37if [ os.name ] = "NT" 38{ 39 actions check-gs 40 { 41 gswin32c -version > gs.version 42 } 43} 44else 45{ 46 actions check-gs 47 { 48 gs -version > gs.version 49 } 50} 51 52 53# Use Doxygen to emit a tagfile with the definition of depends_on<>. That 54# tagfile will be used by Doxygen below when generating the Statistics Library 55# Reference. This is all so that the Doxygen-generated documentation for the 56# features shows the dependency relationships between them. 57doxygen tagfile 58 : 59 ../../boost/accumulators/framework/depends_on.hpp 60 ../../boost/accumulators/framework/extractor.hpp 61 : 62 <doxygen:param>MACRO_EXPANSION=YES 63 <doxygen:param>EXPAND_ONLY_PREDEF=YES 64 <doxygen:param>GENERATE_TAGFILE=accumulators.tag 65 <doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\ 66 \"BOOST_PP_REPEAT_FROM_TO(a,b,c,d)=\" \\ 67 \"BOOST_PP_ENUM_PARAMS(a,b)=b ## 1, b ## 2, ...\"" 68 <dependency>latex.check 69 <dependency>dvips.check 70 <dependency>gs.check 71 ; 72 73# Generate the HTML form of the stats documentation, as this causes Doxygen to 74# generate .png images for the LaTeX formulas embedded in the doc comments. 75doxygen statsdoc.html 76 : 77 weighted_tail_quantile.hpp 78 : 79 <dependency>latex.check 80 <dependency>dvips.check 81 <dependency>gs.check 82 ; 83 84if [ os.name ] = NT 85{ 86 CP = copy /y ; 87 MKDIR = mkdir ; 88 FROM = \\..\\..\\..\\html\\statsdoc\\*.png ; 89 TOHTML = .\\html\\images\\accumulators ; 90 TOPDF = \\images\\accumulators ; 91} 92else 93{ 94 CP = cp ; 95 MKDIR = mkdir -p ; 96 FROM = /../../html/statsdoc/*.png ; 97 TOHTML = ./html/images/accumulators ; 98 TOPDF = /images/accumulators ; 99} 100 101actions copy-latex-pngs 102{ 103 $(MKDIR) $(TOHTML) 104 $(MKDIR) $(<:D)$(TOPDF) 105 $(CP) $(<:D)$(FROM) $(TOHTML) 106 $(CP) $(<:D)$(FROM) $(<:D)$(TOPDF) 107 echo "Stamped" > "$(<)" 108} 109 110# This causes the png files built above to be copied into the 111# html/images/accumulators directory. 112make statsdoclatex.tag 113 : statsdoc.html 114 : @copy-latex-pngs 115 ; 116 117doxygen statsdoc 118 : 119 weighted_tail_quantile.hpp 120 : 121 <doxygen:param>EXTRACT_ALL=YES 122 <doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\ 123 \"BOOST_PP_REPEAT_FROM_TO(a,b,c,d)=\" \\ 124 \"BOOST_PP_REPEAT(a,b,c)=\" \\ 125 \"BOOST_PARAMETER_KEYWORD(a,b)=\\ 126 namespace a { struct b {}; } \\ 127 boost::parameter::keyword<a::b> const b;\" \\ 128 \"BOOST_PP_ENUM_PARAMS(a,b)=b ## 1, b ## 2, ...\"" 129 <doxygen:param>HIDE_UNDOC_MEMBERS=NO 130 <doxygen:param>EXTRACT_PRIVATE=NO 131 <doxygen:param>ENABLE_PREPROCESSING=YES 132 <doxygen:param>MACRO_EXPANSION=YES 133 <doxygen:param>EXPAND_ONLY_PREDEF=YES 134 <doxygen:param>SEARCH_INCLUDES=NO 135 <doxygen:param>TAGFILES=accumulators.tag 136 <xsl:param>boost.doxygen.header.prefix=doc 137 <xsl:param>boost.doxygen.formuladir=images/accumulators/ 138 <reftitle>"Statistics Library Reference" 139 <dependency>tagfile 140 <dependency>statsdoclatex.tag 141 <dependency>latex.check 142 <dependency>dvips.check 143 <dependency>gs.check 144 ; 145 146if htmlhelp in [ modules.peek : ARGV ] 147{ 148 # 149 # Start with a rule to convert htmlhelp project into 150 # compiled help file: 151 # 152 make htmlhelp/htmlhelp.chm : standalone : @hhc ; 153 actions ignore hhc 154 { 155 hhc htmlhelp/htmlhelp.hhp 156 } 157 # 158 # These install rules copy our images into a subdirectory of the created 159 # htmlhelp project directory: unfortunately hhc.exe will only embed 160 # images in a subdirectory of the project root. 161 # 162 install htmlhelp1 : [ glob html/images/*.png ] : <location>htmlhelp/images ; 163 install htmlhelp1a : [ glob html/images/*.svg ] : <location>htmlhelp/images ; 164 install htmlhelp2 : [ glob html/images/accumulators/*.png ] : <dependency>statsdoc <location>htmlhelp/images/accumulators ; 165 install htmlhelp3 : [ glob ../src/images/*.png ] : <dependency>statsdoc <location>htmlhelp/images ; 166 install htmlhelp4 : [ glob ../src/images/callouts/*.png ] : <dependency>statsdoc <location>htmlhelp/images/callouts ; 167} 168 169xml test : test.qbk ; 170boostbook standalone 171 : 172 test 173 : 174 <dependency>statsdoc 175 <format>htmlhelp:<dependency>htmlhelp1 176 <format>htmlhelp:<dependency>htmlhelp1a 177 <format>htmlhelp:<dependency>htmlhelp2 178 <format>htmlhelp:<dependency>htmlhelp3 179 <format>htmlhelp:<dependency>htmlhelp4 180 181 # HTML options first: 182 #====================================================================== 183 184 <xsl:param>toc.max.depth=2 185 <xsl:param>toc.section.depth=2 186 <xsl:param>chunk.section.depth=1 187 <xsl:param>boost.root=../../.. 188 <xsl:param>navig.graphics=1 189 <xsl:param>boost.mathjax=1 190 <xsl:path>$(images_location)/.. 191 192 193 # PDF Options: 194 #====================================================================== 195 <format>pdf:<xsl:param>img.src.path=$(images_location)/ 196 <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/test/html 197 198 # HTML Help Options: 199 #====================================================================== 200 #<format>htmlhelp:<xsl:param>img.src.path=../html 201 <format>htmlhelp:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/test/html 202 <format>htmlhelp:<xsl:param>htmlhelp.chm=test.chm 203 ; 204 205 206install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ; 207explicit pdfinstall ; 208