Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / accumulators / doc / Jamfile.v2
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
5 import os ;
6 import common ;
7 import doxygen ;
8 import 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 #
18 make latex.check : : @check-latex ;
19 actions check-latex
20 {
21     latex -version > latex.version
22 }
23
24 make dvips.check : : @check-dvips ;
25 actions check-dvips
26 {
27     dvips -version > dvips.version
28 }
29
30 make gs.check : : @check-gs ;
31
32 import os ;
33
34 if [ os.name ] = "NT"
35 {
36    actions check-gs
37    {
38        gswin32c -version > gs.version
39    }
40 }
41 else
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.
53 doxygen 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
69 doxygen 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.
98 doxygen 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
109 if [ 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 }
117 else
118 {
119     CP = cp ;
120     MKDIR = mkdir -p ;
121     FROM = /../../html/statsdoc/*.png ;
122     TOHTML = ./html/images/accumulators ;
123     TOPDF = /images/accumulators ;
124 }
125
126 actions 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.
137 make statsdoclatex.tag
138     : statsdoc.html
139     : @copy-latex-pngs
140     ;
141
142 doxygen 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
172 doxygen 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
221 xml 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
231 path-constant images_location : html ;
232
233 boostbook 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