mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	
		
			
	
	
		
			189 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			189 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | # Copyright Daryle Walker, Hubert Holin, John Maddock 2006 - 2007 | ||
|  | # copyright Paul A. Bristow 2006 - 2010 | ||
|  | # Distributed under the Boost Software License, Version 1.0. | ||
|  | # (See accompanying file LICENSE_1_0.txt or copy at | ||
|  | # http://www.boost.org/LICENSE_1_0.txt. | ||
|  | # \math_toolkit\libs\math\test\jamfile.v2 | ||
|  | # Runs all math toolkit tests, functions & distributions, | ||
|  | # and build math examples. | ||
|  | 
 | ||
|  | # bring in the rules for testing | ||
|  | import testing ; | ||
|  | import modules ; | ||
|  | import path ; | ||
|  | import pch ; | ||
|  | import ../../../config/checks/config : requires ; | ||
|  | using quickbook ; | ||
|  | using auto-index ; | ||
|  | 
 | ||
|  | import ../../../predef/check/predef | ||
|  |     : check require | ||
|  |     : predef-check predef-require ; | ||
|  | 
 | ||
|  | project | ||
|  |     : requirements | ||
|  |       <include>../../include_private | ||
|  |     ; | ||
|  | 
 | ||
|  | if $(is_unix) | ||
|  | { | ||
|  | 	local osname = [ SHELL uname ] ; | ||
|  | 
 | ||
|  | 	switch $(osname) | ||
|  | 	{ | ||
|  | 		case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ; | ||
|  | 		case "*BSD*" : OTHERFLAGS = "-lpthread" ; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | # | ||
|  | # Configuration first: | ||
|  | # | ||
|  | lib gsl ; | ||
|  | lib gslcblas ; | ||
|  | lib Rmath ; | ||
|  | obj has_libstdcxx_tr1 : has_libstdcxx_tr1.cpp ; | ||
|  | explicit has_libstdcxx_tr1 ; | ||
|  | obj has_c99_cmath : has_c99_cmath.cpp ; | ||
|  | explicit has_c99_cmath ; | ||
|  | exe has_gsl : has_gsl.cpp gsl gslcblas ; | ||
|  | explicit has_gsl ; | ||
|  | exe has_rmath : has_rmath.cpp Rmath ; | ||
|  | explicit has_rmath ; | ||
|  | obj is_intel_win : is_intel_win.cpp ; | ||
|  | explicit is_intel_win ; | ||
|  | 
 | ||
|  | CEPHES_SOURCE = acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c  | ||
|  | btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c  | ||
|  | cosh.c dawsn.c drand.c ei.c ellie.c ellik.c ellpe.c ellpj.c ellpk.c  | ||
|  | exp.c exp10.c exp2.c expn.c expx2.c fabs.c fac.c fdtr.c  | ||
|  | fresnl.c gamma.c gdtr.c hyp2f1.c hyperg.c i0.c i1.c igami.c incbet.c  | ||
|  | incbi.c igam.c isnan.c iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c kolmogorov.c  | ||
|  | log.c log2.c log10.c lrand.c nbdtr.c ndtr.c ndtri.c pdtr.c planck.c  | ||
|  | polevl.c polmisc.c polylog.c polyn.c pow.c powi.c psi.c rgamma.c round.c  | ||
|  | shichi.c sici.c sin.c sindg.c sinh.c spence.c stdtr.c struve.c  | ||
|  | tan.c tandg.c tanh.c unity.c yn.c zeta.c zetac.c  | ||
|  | sqrt.c floor.c setprec.c mtherr.c ; | ||
|  | 
 | ||
|  | DCDFLIB_SOURCE = dcdflib.c ipmpar.c ; | ||
|  | 
 | ||
|  | path-constant here : . ; | ||
|  | make $(here)/third_party/cephes_double/acosh.c : : @check_exists ; | ||
|  | make $(here)/third_party/dcdflib/dcdflib.c : : @check_exists ; | ||
|  | actions check_exists | ||
|  | { | ||
|  |     stat $(<) | ||
|  | } | ||
|  | explicit $(here)/third_party/cephes_double/acosh.c ; | ||
|  | explicit $(here)/third_party/dcdflib/dcdflib.c ; | ||
|  | 
 | ||
|  | lib cephes_double : $(here)/third_party/cephes_double/$(CEPHES_SOURCE) | ||
|  |     :          | ||
|  |         release | ||
|  |         <link>static | ||
|  |         [ check-target-builds $(here)/third_party/cephes_double/acosh.c : : <build>no ]  | ||
|  |    ; | ||
|  | 
 | ||
|  | explicit cephes_double ; | ||
|  | 
 | ||
|  | lib dcdflib : $(here)/third_party/dcdflib/$(DCDFLIB_SOURCE) | ||
|  |     :          | ||
|  |         release | ||
|  |         <link>static | ||
|  |         [ check-target-builds $(here)/third_party/dcdflib/dcdflib.c : : <build>no ]  | ||
|  |    ; | ||
|  | 
 | ||
|  | explicit dcdflib ; | ||
|  | 
 | ||
|  | obj table_helper : table_helper.cpp ; | ||
|  | 
 | ||
|  | rule all-tests { | ||
|  |      local result ; | ||
|  |      for local source in [ glob test*.cpp ] | ||
|  |      { | ||
|  |         result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |         : : : release <include>../../test  | ||
|  |         [ check-target-builds ../accuracy//has_c99_cmath : <define>TEST_C99 ]  | ||
|  |         [ check-target-builds ../accuracy//has_libstdcxx_tr1 : <define>TEST_LIBSTDCXX ]  | ||
|  |         [ check-target-builds ../accuracy//has_gsl : <define>TEST_GSL <source>gsl <source>gslcblas ] | ||
|  |         [ check-target-builds ../accuracy//has_rmath : <define>TEST_RMATH <source>Rmath ] | ||
|  |        # [ check-target-builds is_intel_win : <build>no : ] | ||
|  |         [ check-target-builds $(here)/third_party/dcdflib/dcdflib.c : <define>TEST_DCDFLIB <source>dcdflib ] | ||
|  |         <target-os>linux:<linkflags>-lpthread <target-os>linux:<linkflags>-lrt | ||
|  |         #<toolset>msvc:<address-model>64 | ||
|  |         ] ; | ||
|  |      } | ||
|  |      return $(result) ;      | ||
|  | } | ||
|  |              | ||
|  | # | ||
|  | # Special cases to test different compiler options, | ||
|  | # cbrt first as an example of a trivial function: | ||
|  | # | ||
|  | run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |      : : : debug <define>COMPILER_COMPARISON_TABLES [ predef-require "BOOST_COMP_MSVC" ] <address-model>32 : test_cbrt_msvc_debug ; | ||
|  | run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |      : : : release <define>COMPILER_COMPARISON_TABLES [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>32 : test_cbrt_msvc_release_32 ; | ||
|  | run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |      : : : release <define>COMPILER_COMPARISON_TABLES [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>64 : test_cbrt_msvc_release_64 ; | ||
|  | run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |      : : : release <define>COMPILER_COMPARISON_TABLES [ check-target-builds is_intel_win : : <build>no ] <toolset>intel:<cxxflags>-Ox <address-model>64 : test_cbrt_intel_release ; | ||
|  | # | ||
|  | # Now jn as a little more complex: | ||
|  | # | ||
|  | run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : debug <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <address-model>32 : test_jn_msvc_debug ; | ||
|  | run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>32 : test_jn_msvc_release_32 ; | ||
|  | run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>64 : test_jn_msvc_release_64 ; | ||
|  | run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ check-target-builds is_intel_win : : <build>no ] <address-model>64 : test_jn_intel_release ; | ||
|  | # | ||
|  | # Then something really expensive, like the inverse-incomplete-beta: | ||
|  | # | ||
|  | run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : debug <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <address-model>32 : test_ibeta_inv_msvc_debug ; | ||
|  | run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>32 : test_ibeta_inv_msvc_release_32 ; | ||
|  | run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>64 : test_ibeta_inv_msvc_release_64 ; | ||
|  | run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper | ||
|  |    : : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ check-target-builds is_intel_win : : <build>no ] <toolset>intel:<cxxflags>-Ox <address-model>64 : test_ibeta_inv_intel_release ; | ||
|  | 
 | ||
|  | test-suite report_gen : [ all-tests ] test_cbrt_msvc_debug test_cbrt_msvc_release_32 test_cbrt_msvc_release_64 test_cbrt_intel_release  | ||
|  |    test_jn_msvc_debug test_jn_msvc_release_32 test_jn_msvc_release_64 test_jn_intel_release test_ibeta_inv_msvc_debug  | ||
|  |    test_ibeta_inv_msvc_release_32 test_ibeta_inv_msvc_release_64 test_ibeta_inv_intel_release ; | ||
|  | 
 | ||
|  | path-constant images_location : html ; | ||
|  | path-constant here : . ; | ||
|  | 
 | ||
|  | xml report : doc/report.qbk : <dependency>report_gen ; | ||
|  | boostbook standalone | ||
|  |     : | ||
|  |         report | ||
|  |     : | ||
|  |         # Path for links to Boost: | ||
|  |         <xsl:param>boost.root=../../../../.. | ||
|  |          | ||
|  |         # Some general style settings: | ||
|  |         <xsl:param>table.footnote.number.format=1 | ||
|  |         <xsl:param>footnote.number.format=1 | ||
|  |         <xsl:param>html.stylesheet=boostbook.css | ||
|  | 
 | ||
|  |         # HTML options first: | ||
|  |         # Use graphics not text for navigation: | ||
|  |         <xsl:param>navig.graphics=1 | ||
|  |         # How far down we chunk nested sections, basically all of them: | ||
|  |         <xsl:param>chunk.section.depth=0 | ||
|  |         # Don't put the first section on the same page as the TOC: | ||
|  |         <xsl:param>chunk.first.sections=0 | ||
|  |         # How far down sections get TOC's | ||
|  |         <xsl:param>toc.section.depth=2 | ||
|  |         # Max depth in each TOC: | ||
|  |         <xsl:param>toc.max.depth=4 | ||
|  |         # How far down we go with TOC's | ||
|  |         <xsl:param>generate.section.toc.level=10 | ||
|  |     ; | ||
|  | 
 |