# copyright John Maddock 2013 # 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. import modules ; import path ; local ntl-path = [ modules.peek : NTL_PATH ] ; local gmp_path = [ modules.peek : GMP_PATH ] ; local mpfr_path = [ modules.peek : MPFR_PATH ] ; local mpfi_path = [ modules.peek : MPFI_PATH ] ; local tommath_path = [ modules.peek : TOMMATH_PATH ] ; project : requirements $(gmp_path) $(gmp_path)/mpfr $(gmp_path)/gmpfrxx $(mpfr_path) $(mpfi_path) $(mpfi_path)/src $(tommath_path) ../../.. # We set these to make it easier to set up and test GMP and MPFR under Win32: #msvc:static #msvc:static #msvc:all #intel-win:static #intel-win:static # Speed up compiles: #msvc:off #intel:off gcc:-Wall gcc:-Wextra intel:SLOW_COMPILER BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE ; lib gmp : : $(gmp_path) ; lib mpfr : : $(gmp_path) $(mpfr_path) $(mpfr_path)/build.vc10/lib/Win32/Debug ; lib mpfi : : $(gmp_path) $(mpfr_path) $(mpfr_path)/build.vc10/lib/Win32/Debug $(mpfi_path) $(mpfi_path)/src ; lib quadmath ; rule generate_objs ( suffix : variant_count : build_opts * ) { local result ; switch $(variant_count) { case "1" : variant_list = 1 ; case "2" : variant_list = 1 2 ; case "3" : variant_list = 1 2 3 ; case "4" : variant_list = 1 2 3 4 ; case "5" : variant_list = 1 2 3 4 5 ; case "6" : variant_list = 1 2 3 4 5 6 ; } for group_id in 1 2 3 4 5 6 7 8 9 10 { for variant_id in $(variant_list) { name = "test_instances$(suffix)_$(group_id)_$(variant_id)" ; obj $(name) : instances.cpp : release BOOST_MATH_TEST_TYPE=test_type_$(variant_id) TEST_GROUP_$(group_id) $(build_opts) ; result += $(name) ; } } return $(result) ; } lib test_instances_mpf : [ generate_objs "_mpf" : 4 : TEST_MPF_50 ] : [ check-target-builds ../../../config//has_gmp : : no ] ; lib test_instances_mpfr : [ generate_objs "_mpfr" : 3 : TEST_MPFR_50 ] : [ check-target-builds ../../../config//has_mpfr : : no ] ; lib test_instances_cpp_dec_float : [ generate_objs "_cpp_dec_float" : 3 : TEST_CPP_DEC_FLOAT ] : ; lib test_instances_cpp_bin_float : [ generate_objs "_cpp_bin_float" : 1 : TEST_CPP_BIN_FLOAT ] : ; lib test_instances_float128 : [ generate_objs "_float128" : 1 : TEST_FLOAT128 ] : [ check-target-builds ../../../config//has_float128 : : no ] ; lib test_instances_intel_quad : [ generate_objs "_intel_quad" : 1 : TEST_FLOAT128 -Qoption,cpp,--extended_float_type ] : [ check-target-builds ../../../config//has_intel_quad : -Qoption,cpp,--extended_float_type : no ] ; explicit test_instances_mpf ; explicit test_instances_mpfr ; explicit test_instances_cpp_dec_float ; explicit test_instances_cpp_bin_float ; explicit test_instances_float128 ; explicit test_instances_intel_quad ;