1# Copyright 2009-2013 Karsten Ahnert 2# Copyright 2011-2012 Mario Mulansky 3# Copyright 2012 Daniel James 4# Copyright 2013 Pascal Germroth 5# Distributed under the Boost Software License, Version 1.0. 6# (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 8 9using quickbook ; 10using boostbook ; 11using doxygen ; 12import modules ; 13path-constant here : . ; 14 15project : requirements 16 <include>$(BOOST_ROOT)/tools/auto_index/include 17 ; 18 19if --enable-index in [ modules.peek : ARGV ] 20{ 21 ECHO "Building the odeint docs with automatic index generation enabled." ; 22 23 using auto-index ; 24 25 project : requirements 26 27 <auto-index>on 28 <auto-index-verbose>on 29 30 # Choose indexing method (separately for html and pdf): 31 <format>html:<auto-index-internal>on # on (or off) to use internally generated indexes. 32 # <format>html:<xsl:param>generate.index=0 # Don't let the XSL stylesheets generate indexes. 33 34 <format>pdf:<auto-index-internal>off # on (or off) to use internally generated indexes. 35 # <auto-index-type>index # Use <index>...</index> as the XML wrapper. 36 37 <format>pdf:<xsl:param>index.on.type=1 # For the native stylesheets to generate the different indexes. 38 # PDF native index support is probably better for PDFs as then you actually get page numbers. 39 40 <auto-index-script>odeint.idx # Specifies the name of the index script to load. 41 <auto-index-prefix>../include 42 43 # Inform Quickbook that there is to be an index(es). 44 <quickbook-define>enable_index 45 ; 46} 47else 48{ 49 ECHO "Building the odeint docs with automatic index generation disabled. To get an auto-index, try building with --enable-index." ; 50} 51 52 53 54doxygen reference 55 : 56# [ glob ../include/boost/numeric/odeint/*.hpp ] 57 [ glob ../include/boost/numeric/odeint/stepper/*.hpp ] 58 [ glob ../incude/boost/numeric/odeint/stepper/base/*.hpp ] 59# [ glob ../include/boost/numeric/odeint/stepper/generation/*.hpp ] 60 [ glob ../include/boost/numeric/odeint/integrate/*.hpp : ../include/boost/numeric/odeint/integrate/null_observer.hpp ../include/boost/numeric/odeint/integrate/observer_collection.hpp ] 61 [ glob ../include/boost/numeric/odeint/iterator/*.hpp ] 62# [ glob ../include/boost/numeric/odeint/iterator/impl/*.hpp ] 63# [ glob ../include/boost/numeric/odeint/algebra/*.hpp ] 64# [ glob ../include/boost/numeric/odeint/util/*.hpp ] 65# ../include/boost/numeric/odeint.hpp 66 : 67 68 # Lots of parameters passed to Doxygen. You can see these in the doxygen docs, or the Wizard Expert tab displays them. 69 # If you have successfuly built your Doxygen docs standalone using the Wizard (strongly recommended as it is much quicker). 70 # The values in your project's doxyfile are what to put as the Doxygen parameters passed below. 71 <doxygen:param>WARNINGS=YES 72 <doxygen:param>WARN_LOGFILE=AutoDoxywarnings.log 73 <doxygen:param>WARN_IF_UNDOCUMENTED=NO # Default NO but useful if you aim to Doxygen document *all* members. 74 <doxygen:param>QUIET=NO 75 <doxygen:param>WARN_NO_PARAMDOC=NO # Default no, but YES useful if you aim to document all function parameters. 76 <doxygen:param>DOXYFILE_ENCODING=UTF-8 77 <doxygen:param>PROJECT_NAME="odeint" 78 <doxygen:param>PROJECT_NUMBER=2.2 79 <doxygen:param>TAB_SIZE=2 80 <doxygen:param>SORT_MEMBER_DOCS=NO 81 <doxygen:param>SORT_BRIEF_DOCS=NO 82 <doxygen:param>SORT_MEMBERS_CTORS_1ST=NO 83 <doxygen:param>EXTRACT_PRIVATE=NO 84 <doxygen:param>INLINE_INHERITED_MEMB=YES 85 <doxygen:param>INHERIT_DOCS=YES 86 <doxygen:param>EXTRACT_STATIC=YES 87 <doxygen:param>EXTRACT_ANON_NSPACES=NO 88 <doxygen:param>EXTRACT_LOCAL_CLASSES=YES 89 <doxygen:param>EXTRACT_LOCAL_METHODS=YES 90 <doxygen:param>HIDE_UNDOC_MEMBERS=NO 91 <doxygen:param>HIDE_UNDOC_CLASSES=YES 92 <doxygen:param>HIDE_FRIEND_COMPOUNDS=NO 93 #<doxygen:param>HIDE_INBODY_DOCS=NO 94 <doxygen:param>INTERNAL_DOCS=YES 95 <doxygen:param>CASE_SENSE_NAMES=NO 96 <doxygen:param>HIDE_SCOPE_NAMES=NO 97 98 # Preprocessor settings. 99 # Some ugly examples of predefined macro calls (from Boost.Units library) :( 100 <doxygen:param>"PREDEFINED= \\ 101 \"BOOST_UNITS_STATIC_CONSTANT(a,b)=static const b a\" \\ 102 \"BOOST_UNITS_TYPEOF(a)=typeof(a)\" \\ 103 \"BOOST_PREVENT_MACRO_SUBSTITUTION=\" \\ 104 \"BOOST_UNITS_HAS_TYPEOF=1\" \\ 105 \"DOXYGEN_SKIP=1\" " 106 <doxygen:param>ENABLE_PREPROCESSING=YES # Evaluates all C-preprocessor directives found in files. 107 <doxygen:param>MACRO_EXPANSION=YES # Will expand all macro names. 108 <doxygen:param>EXPAND_ONLY_PREDEF=YES # Only predefined macros expanded. See units library for an example. 109 <doxygen:param>SEARCH_INCLUDES=YES # Search #include files found. 110 <doxygen:param>INLINE_INFO=YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] is inserted in the documentation for inline members. 111 112 <doxygen:param>SHOW_INCLUDE_FILES=NO # List of the files that are included by a file in the documentation of that file. 113 <doxygen:param>REPEAT_BRIEF=YES # Prepend the brief description of a member or function before the detailed description 114 <doxygen:param>BRIEF_MEMBER_DESC=YES # Include brief member descriptions after the members that are listed in the file and class 115 <doxygen:param>MULTILINE_CPP_IS_BRIEF=YES # Treat a multi-line C++ special comment block (i.e. a block of //! or /// comments) as a brief description. 116 # May be best to always use \brief and \details to avoid ambiguity? 117 # <doxygen:param>STRIP_FROM_PATH=NO # Most useful to leave default to strip just the directory from which Doxygen is run. 118 # Yes gives the full path, but NO is more useful, only giving enough to be 119 # <doxygen:param>CPP_CLI_SUPPORT=NO # unless, most unusually, you are compiled for a 'managed' CLI application. 120 <doxygen:param>SHOW_USED_FILES=YES # Default YES to show a list files used to generate documention. 121 <doxygen:param>SHOW_DIRECTORIES=YES # Default NO, but useful to show directory heirarchy. 122 <doxygen:param>SHOW_FILES=YES # Default YES is to include a tab for a page of files listed. Useful. 123 <doxygen:param>SHOW_NAMESPACES=YES # Default YES to include tab for list of namespaces. Useful if you have namespacess other than boost:: 124 <doxygen:param>FILE_PATTERNS= # Types of files to be used as input. Default includes *.c *.cc *.cxx *.cpp *.c++ *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp *.h++ *.py 125 # Might include .qbk? 126 127 <doxygen:param>RECURSIVE=YES # Search recursively down subdirectories. 128 <doxygen:param>EXCLUDE= # Files or directories that should be excluded from INPUT source files. 129 # Headers and footers are actually rather attractive, 130 # <doxygen:param>HTML_HEADER="doxygen/checks_doxygen_header.html" # A sample including a draft stamp and 'Not_Yet_In_Boost' logo. 131 # Take care that if you use this (recommended), you need to ensure that the html 132 # <doxygen:param>HTML_FOOTER="doxygen/checks_doxygen_footer.html" # This is very useful to add copyright, date of revision, versioning etc. 133 134 # A custom stylesheet is also useful, as the default syntax coloring is 'unusual' ;-) 135 <doxygen:param>HTML_STYLESHEET="doxygen/doxygen.css" # Placed in the doxygen directory, 136 # this will change to your choice of C++ syntax coloring when viewing source from Doxygen. 137 # Users can place (or edit) their own personal choice CSS file here. 138 139 # Default is just Reference but you can provide your own title for reference section here. 140 <xsl:param>"boost.doxygen.reftitle=odeint Reference" 141; 142 143 144xml odeint 145 : 146 odeint.qbk 147 : 148; 149 150boostbook standalone 151 : 152 odeint 153 : 154 155 # Path for links to Boost: 156 #<xsl:param>boost.root=\$(local-boost-root) # Link to Boost logo boost.png 157 # Links are relative and trying to make absolute does NOT work. 158 # And remember that all links MUST (unless in quotes) use backslash, not forward that is trip char. 159 160 <xsl:param>boost.root=../../../../.. # OK but link to I:/boost_trunk/boost.png 161 162 # Also control links to admonitions, so need to set separately. 163 #<xsl:param>boost.root=../../../../../../../boost_1_47_0 # OK file:///I:/boost_1_48_0/boost.png 164 # Quickbook [@boost:/boost/units/detail/utility.hpp] should make it relative to xsl parameter boost.root. 165 166 # Use the your own local Boost stylesheet: 167 # <xsl:param>html.stylesheet=../html/boostbook.css 168 169 # Some general style settings: 170 # see http://docbook.sourceforge.net/release/xsl/current/doc/html/index.html 171 <xsl:param>table.footnote.number.format=1 # Identifies the format used for footnote numbers in tables. 172 <xsl:param>footnote.number.format=1 # Identifies the format used for text footnote numbers. 173 174 # Default to not including the Boost logo in the navbar, when one expressly asks to include the navbar. 175 # Boost jamroot now includes 176 # Default to not include a navbar. 177 #<xsl:param>nav.layout=none # No navigation bar (home, prev, next). 178 # defining creates a runtime error: Global parameter nav.layout already defined 179 #<xsl:param>nav.layout=horizontal # to get a horizontal navigation bar (you probably DO want this). 180 181 <xsl:param>boost.image.src=logo.jpg # 182 <xsl:param>boost.image.width=294 # Width of logo in pixels. 183 <xsl:param>boost.image.height=127 # Height of logo in pixels. 184 185 186 # HTML options: 187 # ------------ 188 <xsl:param>navig.graphics=1 # Use graphics not text for navigation. 189 <xsl:param>chunk.section.depth=2 # How far down we chunk nested sections, basically all of them. 190 <xsl:param>chunk.first.sections=1 # Don't put the first section on the same page as the TOC. 191 <xsl:param>toc.section.depth=2 # How far down sections get TOCs. 192 <xsl:param>toc.max.depth=2 # Max depth in each TOC. 193 <xsl:param>generate.section.toc.level=3 # How far down we go with TOCs. 194 195 #<format>html:<xsl:param>admon.graphics.extension=".png" # default type for admonitions (important, warning, note ...) 196 #<format>html:<xsl:param>admon.graphics.path=$(nav-images)/ # path to admonition (warning, note...) image (.png) files. 197 198 # <xsl:param name="draft.watermark.image">http://docbook.sourceforge.net/release/images/draft.png</xsl:param> 199 # but use a local copy of draft.png. 200 201 # PDF Options: 202 # ----------- 203 # TOC Generation 204 <xsl:param>fop1.extensions=0 # DISable extensions for FOP version 0.90 and later . 205 <format>pdf:<xsl:param>fop.extensions=0 # DISable extensions for FOP version 0.20.5 and earlier. 206 <format>pdf:<xsl:param>xep.extensions=1 # Use XEP extension- PDF bookmarks, document information and better index processing. 207 208 # No indent on body text: 209 <format>pdf:<xsl:param>body.start.indent=0pt # 210 <format>pdf:<xsl:param>paper.type=A4 # Paper type = A4 211 # http://xml.resource.org/public/rfc/html/rfc2346.html 212 # Making Postscript and PDF International, J Palme, RFC 2346 recommends 213 # If you are using US letter paper format, ensure that both left and right margins are at least 21 mm (0.8 in). 214 # If you are using A4 paper, ensure that both the top and bottom margins are at least 33 mm (1.3 in). 215 # Margins sizes: 216 #<format>pdf:<xsl:param>page.margin.top=1.3in 217 #<format>pdf:<xsl:param>page.margin.inner=0.8in 218 #<format>pdf:<xsl:param>page.margin.bottom=1.3in 219 #<format>pdf:<xsl:param>page.margin.outer=0.8in 220 221 # http://docbook.sourceforge.net/release/xsl/current/doc/index.html 222 # DocBook XSL Stylesheets: Reference Documentation. 223 224 # Yes, we want graphics for admonishments: 225 <xsl:param>admon.graphics=1 226 # Set these one for PDF generation *only*: 227 # In PDF format, default PNG graphics are awful, so better use SVG images (type .svg) instead. 228 <format>pdf:<xsl:param>admon.graphics.extension=".svg" # 229 <format>pdf:<xsl:param>use.role.for.mediaobject=1 # Use print role on next line. 230 <format>pdf:<xsl:param>preferred.mediaobject.role=print # pdf role is to be printed. 231 <format>pdf:<xsl:param>img.src.path=$(here)/html/ # Path of image (.svg) files. (Note trailing /) ? 232 #<format>pdf:<xsl:param>admon.graphics.path=$(nav_images)/ # path to admonition (warning, note...) image (.svg) files. 233 #<format>pdf:<xsl:param>draft.mode="yes" # Yes if draft watermark wanted! 234 #<format>pdf:<xsl:param>draft.watermark.image="draft.png" # Watermark (local copy). 235 #<format>pdf:<xsl:param>draft.watermark.image=http://docbook.sourceforge.net/release/images/draft.png # Watermark. 236 237 <dependency>reference # Doxygen reference section 238 # <dependency>pdf-install # final pdf 239 # <dependency>png-install # Boost standard icons in both png 240 # <dependency>svg-install # and svg. 241; 242 243 244# To install a copy of 'master' boostbook.css and logo. 245# install html : ../../../doc/html/boostbook.css ; 246# install ../ : ../../../boost.png ; 247 248 249 250# Install (copy) the 'master' copy of boostbook Cascading Style sheet 251# from your current Boost-root to the /doc/html folder. 252# path-constant boost-root : [ modules.peek : BOOST ] ; 253# install css-install : $(boost-root)/doc/src/boostbook.css : <location>html ; 254 255# path-constant boost-root : [ modules.peek : BOOST ] ; 256 257 258# Install (copy) the 'master' copies of all icon images (both PNG and SVG) 259# and the Boost logo from your current Boost-root 260# to the local /doc/html/images folder so that html is complete and standalone. 261# install png-install : [ glob $(boost-root)/doc/src/images/*.png $(boost-root)/boost.png ] : <location>html/images ; 262# install svg-install : [ glob $(boost-root)/doc/src/images/*.svg ] : <location>html/images ; 263 264# install unordered_pdf : standalone/<format>pdf : <location>. ; 265# explicit unordered_pdf ; 266# The explicit rule is there so that it's only installed when the target is explicitly named. 267 268# Effectively copies the file from \bin folder to the \doc folder. 269# install pdf-install : standalone : <location>. <install-type>PDF ; 270# But will not work as expected if doxygen and/or autoindex is used 271# because a modified pdf file is created, so this command below 272# will rename the file to the expected filename, here quick_auto_dox_index.pdf. 273# <location>. means installed in same place as this jamfile, /doc. 274 275install pdfinstall : standalone : <install-type>PDF <location>. <name>odeint.pdf ; 276 277install callouts : [ glob src/images/callouts/*.png ] : <location>html/images/callouts ; 278