Jamfile.v2 9.9 KB

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