1# Copyright Daryle Walker, Hubert Holin, John Maddock 2006 - 2007 2# copyright Paul A. Bristow 2006 - 2010 3# Distributed under the Boost Software License, Version 1.0. 4# (See accompanying file LICENSE_1_0.txt or copy at 5# http://www.boost.org/LICENSE_1_0.txt. 6# \math_toolkit\libs\math\test\jamfile.v2 7# Runs all math toolkit tests, functions & distributions, 8# and build math examples. 9 10# bring in the rules for testing 11import testing ; 12import modules ; 13import path ; 14import pch ; 15import ../../../config/checks/config : requires ; 16using quickbook ; 17using auto-index ; 18 19project 20 : requirements 21 <include>../../include_private 22 ; 23 24if $(is_unix) 25{ 26 local osname = [ SHELL uname ] ; 27 28 switch $(osname) 29 { 30 case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ; 31 case "*BSD*" : OTHERFLAGS = "-lpthread" ; 32 } 33} 34 35# 36# Configuration first: 37# 38lib gsl ; 39lib gslcblas ; 40lib Rmath ; 41obj has_cxx17_cmath : has_cxx17_cmath.cpp ; 42explicit has_cxx17_cmath ; 43obj has_c99_cmath : has_c99_cmath.cpp ; 44explicit has_c99_cmath ; 45exe has_gsl : has_gsl.cpp gsl gslcblas ; 46explicit has_gsl ; 47exe has_rmath : has_rmath.cpp Rmath ; 48explicit has_rmath ; 49 50CEPHES_SOURCE = acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c 51btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c 52cosh.c dawsn.c drand.c ei.c ellie.c ellik.c ellpe.c ellpj.c ellpk.c 53exp.c exp10.c exp2.c expn.c expx2.c fabs.c fac.c fdtr.c 54fresnl.c gamma.c gdtr.c hyp2f1.c hyperg.c i0.c i1.c igami.c incbet.c 55incbi.c igam.c isnan.c iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c kolmogorov.c 56log.c log2.c log10.c lrand.c nbdtr.c ndtr.c ndtri.c pdtr.c planck.c 57polevl.c polmisc.c polylog.c polyn.c pow.c powi.c psi.c rgamma.c round.c 58shichi.c sici.c sin.c sindg.c sinh.c spence.c stdtr.c struve.c 59tan.c tandg.c tanh.c unity.c yn.c zeta.c zetac.c 60sqrt.c floor.c setprec.c mtherr.c ; 61 62path-constant here : . ; 63make $(here)/third_party/cephes_double/acosh.c : : @check_exists ; 64actions check_exists 65{ 66 stat $(<) 67} 68explicit $(here)/third_party/cephes_double/acosh.c ; 69 70lib cephes_double : $(here)/third_party/cephes_double/$(CEPHES_SOURCE) 71 : 72 release 73 <link>static 74 [ check-target-builds $(here)/third_party/cephes_double/acosh.c : : <build>no ] 75 ; 76 77explicit cephes_double ; 78 79rule all-tests { 80 local result ; 81 for local source in [ glob test*.cpp ] 82 { 83 result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/filesystem /boost/test//boost_unit_test_framework 84 : : : 85 [ check-target-builds has_gsl : <define>ALWAYS_TEST_DOUBLE : ] 86 <target-os>linux:<linkflags>-lpthread 87 <target-os>linux:<linkflags>-lrt 88 <toolset>gcc:<linkflags>$(OTHERFLAGS) ] 89 ; 90 result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/filesystem /boost/test//boost_unit_test_framework 91 : : : [ check-target-builds has_cxx17_cmath : <define>TEST_CXX17_CMATH : <build>no ] 92 <target-os>linux:<linkflags>-lpthread 93 <target-os>linux:<linkflags>-lrt 94 <toolset>gcc:<linkflags>$(OTHERFLAGS) 95 : $(source:B)_cxx17_cmath ] 96 ; 97 result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/filesystem /boost/test//boost_unit_test_framework 98 : : : [ check-target-builds has_c99_cmath : <define>TEST_C99 : <build>no ] 99 <target-os>linux:<linkflags>-lpthread 100 <target-os>linux:<linkflags>-lrt 101 <toolset>gcc:<linkflags>$(OTHERFLAGS) 102 : $(source:B)_c99 ] 103 ; 104 result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/filesystem /boost/test//boost_unit_test_framework gsl gslcblas 105 : : : [ check-target-builds has_gsl : <define>TEST_GSL : <build>no ] 106 <target-os>linux:<linkflags>-lpthread 107 <target-os>linux:<linkflags>-lrt 108 <toolset>gcc:<linkflags>$(OTHERFLAGS) 109 : $(source:B)_gsl ] 110 ; 111 result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/filesystem /boost/test//boost_unit_test_framework Rmath 112 : : : [ check-target-builds has_rmath : <define>TEST_RMATH : <build>no ] 113 <target-os>linux:<linkflags>-lpthread 114 <target-os>linux:<linkflags>-lrt 115 <toolset>gcc:<linkflags>$(OTHERFLAGS) 116 : $(source:B)_rmath ] 117 ; 118 result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/filesystem /boost/test//boost_unit_test_framework cephes_double 119 : : : [ check-target-builds $(here)/third_party/cephes_double/acosh.c : <define>TEST_CEPHES <source>cephes_double : <build>no ] 120 <target-os>linux:<linkflags>-lpthread 121 <target-os>linux:<linkflags>-lrt 122 <toolset>gcc:<linkflags>$(OTHERFLAGS) 123 : $(source:B)_cephes ] 124 ; 125 } 126 return $(result) ; 127} 128 129test-suite report_gen : [ all-tests ] ; 130 131path-constant images_location : html ; 132path-constant here : . ; 133 134xml report : doc/report.qbk : <dependency>report_gen ; 135boostbook standalone 136 : 137 report 138 : 139 # Path for links to Boost: 140 <xsl:param>boost.root=../../../../.. 141 142 # Some general style settings: 143 <xsl:param>table.footnote.number.format=1 144 <xsl:param>footnote.number.format=1 145 <xsl:param>html.stylesheet=http://www.boost.org/doc/libs/1_58_0/doc/src/boostbook.css 146 147 # HTML options first: 148 # Use graphics not text for navigation: 149 <xsl:param>navig.graphics=1 150 # How far down we chunk nested sections, basically all of them: 151 <xsl:param>chunk.section.depth=0 152 # Don't put the first section on the same page as the TOC: 153 <xsl:param>chunk.first.sections=0 154 # How far down sections get TOC's 155 <xsl:param>toc.section.depth=2 156 # Max depth in each TOC: 157 <xsl:param>toc.max.depth=4 158 # How far down we go with TOC's 159 <xsl:param>generate.section.toc.level=10 160 ; 161 162