• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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