1# Copyright Eric Niebler 2005. 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 ; 8import quickbook ; 9 10# 11# Accumulators docs are dependent upon 12# latex dvips and ps being in your PATH. 13# This is true for most Unix installs, but 14# not on Win32, where you will need to install 15# MkTex and Ghostscript and add these tools 16# to your path. 17# 18make latex.check : : @check-latex ; 19actions check-latex 20{ 21 latex -version > latex.version 22} 23 24make dvips.check : : @check-dvips ; 25actions check-dvips 26{ 27 dvips -version > dvips.version 28} 29 30make gs.check : : @check-gs ; 31 32import os ; 33 34if [ os.name ] = "NT" 35{ 36 actions check-gs 37 { 38 gswin32c -version > gs.version 39 } 40} 41else 42{ 43 actions check-gs 44 { 45 gs -version > gs.version 46 } 47} 48 49# Use Doxygen to emit a tagfile with the definition of depends_on<>. That 50# tagfile will be used by Doxygen below when generating the Statistics Library 51# Reference. This is all so that the Doxygen-generated documentation for the 52# features shows the dependency relationships between them. 53doxygen tagfile 54 : 55 ../../../boost/accumulators/framework/depends_on.hpp 56 ../../../boost/accumulators/framework/extractor.hpp 57 : 58 <doxygen:param>MACRO_EXPANSION=YES 59 <doxygen:param>EXPAND_ONLY_PREDEF=YES 60 <doxygen:param>GENERATE_TAGFILE=accumulators.tag 61 <doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\ 62 \"BOOST_PP_REPEAT_FROM_TO(a,b,c,d)=\" \\ 63 \"BOOST_PP_ENUM_PARAMS(a,b)=b ## 1, b ## 2, ...\"" 64 <dependency>latex.check 65 <dependency>dvips.check 66 <dependency>gs.check 67 ; 68 69doxygen accdoc 70 : 71 [ glob ../../../boost/accumulators/accumulators*.hpp ] 72 [ glob ../../../boost/accumulators/framework/*.hpp ] 73 [ glob ../../../boost/accumulators/framework/parameters/*.hpp ] 74 [ glob ../../../boost/accumulators/framework/accumulators/*.hpp ] 75 : 76 <doxygen:param>EXTRACT_ALL=YES 77 <doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\ 78 \"BOOST_PP_REPEAT_FROM_TO(a,b,c,d)=\" \\ 79 \"BOOST_PP_REPEAT(a,b,c)=\" \\ 80 \"BOOST_PARAMETER_KEYWORD(a,b)=\\ 81 namespace a { struct b {}; } \\ 82 boost::parameter::keyword<a::b> const b;\" \\ 83 \"BOOST_PP_ENUM_PARAMS(a,b)=b ## 1, b ## 2, ...\"" 84 <doxygen:param>HIDE_UNDOC_MEMBERS=NO 85 <doxygen:param>EXTRACT_PRIVATE=NO 86 <doxygen:param>ENABLE_PREPROCESSING=YES 87 <doxygen:param>MACRO_EXPANSION=YES 88 <doxygen:param>EXPAND_ONLY_PREDEF=YES 89 <doxygen:param>SEARCH_INCLUDES=NO 90 <reftitle>"Accumulators Framework Reference" 91 <dependency>latex.check 92 <dependency>dvips.check 93 <dependency>gs.check 94 ; 95 96# Generate the HTML form of the stats documentation, as this causes Doxygen to 97# generate .png images for the LaTeX formulas embedded in the doc comments. 98doxygen statsdoc.html 99 : 100 [ glob ../../../boost/accumulators/statistics*.hpp ] 101 [ glob ../../../boost/accumulators/statistics/*.hpp ] 102 [ glob ../../../boost/accumulators/statistics/variates/*.hpp ] 103 : 104 <dependency>latex.check 105 <dependency>dvips.check 106 <dependency>gs.check 107 ; 108 109if [ os.name ] = NT 110{ 111 CP = copy /y ; 112 MKDIR = mkdir ; 113 FROM = \\..\\..\\..\\html\\statsdoc\\*.png ; 114 TOHTML = .\\html\\images\\accumulators ; 115 TOPDF = \\images\\accumulators ; 116} 117else 118{ 119 CP = cp ; 120 MKDIR = mkdir -p ; 121 FROM = /../../html/statsdoc/*.png ; 122 TOHTML = ./html/images/accumulators ; 123 TOPDF = /images/accumulators ; 124} 125 126actions copy-latex-pngs 127{ 128 $(MKDIR) $(TOHTML) 129 $(MKDIR) $(<:D)$(TOPDF) 130 $(CP) $(<:D)$(FROM) $(TOHTML) 131 $(CP) $(<:D)$(FROM) $(<:D)$(TOPDF) 132 echo "Stamped" > "$(<)" 133} 134 135# This causes the png files built above to be copied into the 136# html/images/accumulators directory. 137make statsdoclatex.tag 138 : statsdoc.html 139 : @copy-latex-pngs 140 ; 141 142doxygen statsdoc 143 : 144 [ glob ../../../boost/accumulators/statistics*.hpp ] 145 [ glob ../../../boost/accumulators/statistics/*.hpp ] 146 [ glob ../../../boost/accumulators/statistics/variates/*.hpp ] 147 : 148 <doxygen:param>EXTRACT_ALL=YES 149 <doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\ 150 \"BOOST_PP_REPEAT_FROM_TO(a,b,c,d)=\" \\ 151 \"BOOST_PP_REPEAT(a,b,c)=\" \\ 152 \"BOOST_PARAMETER_KEYWORD(a,b)=\\ 153 namespace a { struct b {}; } \\ 154 boost::parameter::keyword<a::b> const b;\" \\ 155 \"BOOST_PP_ENUM_PARAMS(a,b)=b ## 1, b ## 2, ...\"" 156 <doxygen:param>HIDE_UNDOC_MEMBERS=NO 157 <doxygen:param>EXTRACT_PRIVATE=NO 158 <doxygen:param>ENABLE_PREPROCESSING=YES 159 <doxygen:param>MACRO_EXPANSION=YES 160 <doxygen:param>EXPAND_ONLY_PREDEF=YES 161 <doxygen:param>SEARCH_INCLUDES=NO 162 <doxygen:param>TAGFILES=accumulators.tag 163 <xsl:param>boost.doxygen.formuladir=images/accumulators/ 164 <reftitle>"Statistics Library Reference" 165 <dependency>tagfile 166 <dependency>statsdoclatex.tag 167 <dependency>latex.check 168 <dependency>dvips.check 169 <dependency>gs.check 170 ; 171 172doxygen opdoc 173 : 174 [ glob ../../../boost/accumulators/numeric/functional.hpp ] 175 [ glob ../../../boost/accumulators/numeric/functional/*.hpp ] 176 : 177 <doxygen:param>EXTRACT_ALL=YES 178 <doxygen:param>"PREDEFINED=\"BOOST_NUMERIC_FUNCTIONAL_DOXYGEN_INVOKED=1\" \\ 179 \"BOOST_NUMERIC_FUNCTIONAL_DEFINE_BINARY_OP(a,b,c)=\\ 180 namespace functional { \\ 181 template<class Left,class Right,class EnableIf=void> struct a ## _base \\ 182 : std::binary_function<Left, Right, typeof(lvalue<Left>() b lvalue<Right>())> { \\ 183 /** \\return left b right */ \\ 184 result_type operator()(Left &left, Right &right) const; }; \\ 185 template<class Left,class Right, \\ 186 class LeftTag=typename tag<Left>::type, \\ 187 class RightTag=typename tag<Right>::type> \\ 188 struct a : a ## _base<Left,Right,void> {}; } \\ 189 namespace op { \\ 190 struct a : boost::detail::function2< \\ 191 functional::a<_1,_2,functional::tag<_1>,functional::tag<_2> > > {}; } \\ 192 namespace { \\ 193 /** \\return functional::a<Left, Right>()(left, right) */ \\ 194 op::a const & a = boost::detail::pod_singleton<op::min_assign>::instance; } \" \\ 195 \"BOOST_NUMERIC_FUNCTIONAL_DEFINE_UNARY_OP(a,b)=\\ 196 namespace functional { \\ 197 template<class Arg,class EnableIf=void> struct a ## _base \\ 198 : std::unary_function<Arg, typeof(b lvalue<Arg>())> { \\ 199 /** \\return b arg */ \\ 200 result_type operator()(Arg & arg) const; }; \\ 201 template<class Arg,class Tag=typename tag<Arg>::type> \\ 202 struct a : a ## _base<Arg,void> {}; } \\ 203 namespace op { \\ 204 struct a : boost::detail::function1< \\ 205 functional::a<_,functional::tag<_> > > {}; } \\ 206 namespace { \\ 207 /** \\return functional::a<Arg>()(arg) */ \\ 208 op::a const & a = boost::detail::pod_singleton<op::min_assign>::instance; }\"" 209 <doxygen:param>HIDE_UNDOC_MEMBERS=NO 210 <doxygen:param>EXTRACT_PRIVATE=NO 211 <doxygen:param>ENABLE_PREPROCESSING=YES 212 <doxygen:param>MACRO_EXPANSION=YES 213 <doxygen:param>EXPAND_ONLY_PREDEF=YES 214 <doxygen:param>SEARCH_INCLUDES=NO 215 <reftitle>"Numeric Operators Library Reference" 216 <dependency>latex.check 217 <dependency>dvips.check 218 <dependency>gs.check 219 ; 220 221xml accumulators 222 : 223 accumulators.qbk 224 : 225 <xsl:param>boost.max.id.length=1024 226 <xsl:param>toc.max.depth=4 227 <xsl:param>toc.section.depth=4 228 <xsl:param>chunk.section.depth=2 229 ; 230 231path-constant images_location : html ; 232 233boostbook standalone 234 : 235 accumulators 236 : 237 <xsl:param>boost.root=../../../.. 238 <xsl:param>boost.max.id.length=1024 239 <xsl:param>toc.max.depth=4 240 <xsl:param>toc.section.depth=4 241 <xsl:param>chunk.section.depth=2 242 <dependency>accdoc 243 <dependency>statsdoc 244 <dependency>opdoc 245 <format>pdf:<xsl:param>img.src.path=$(images_location)/ 246 <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html 247 ; 248 249############################################################################### 250alias boostdoc 251 : accumulators 252 : 253 : <dependency>accdoc <dependency>statsdoc <dependency>opdoc 254 : ; 255explicit boostdoc ; 256alias boostrelease ; 257explicit boostrelease ; 258