Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / multiprecision / test / Jamfile.v2
index 78e940c..ac4d484 100644 (file)
@@ -59,6 +59,15 @@ project : requirements
    <toolset>intel-win:<runtime-link>static
    <toolset>intel-win:<link>static
    <toolset>clang-win:<link>static
+   
+   # Assembler error "File too big" caused by lots of C++ templates, for example, math/floating_point_examples.cpp.
+   # Some projects on some toolsets may require
+   #   <toolset>gcc-mingw:<cxxflags>\"-Wa,-mbig-obj\"
+   # See https://digitalkarabela.com/mingw-w64-how-to-fix-file-too-big-too-many-sections/
+   # <toolset>gcc-mingw:<cxxflags>-Wa,-mbig-obj # Some projects may overflow assembler and require equivalent of MSVC /bigobj.
+   # Requires version 2.30 of GNU binutils.
+   # Best applied only to projects that require this, see multiprecision/example  run math/floating_point_examples.cpp.
+   
    # Speed up compiles:
    <toolset>msvc:<debug-symbols>off
    <toolset>intel:<debug-symbols>off
@@ -122,7 +131,7 @@ test-suite arithmetic_tests :
    [ run test_arithmetic_tommath_rat.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
    [ run test_arithmetic_tommath_br.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
 
-   [ run test_arithmetic_cpp_int_1.cpp no_eh_support ]
+   [ run test_arithmetic_cpp_int_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
    [ run test_arithmetic_cpp_int_2.cpp no_eh_support ]
    [ run test_arithmetic_cpp_int_3.cpp no_eh_support ]
    [ run test_arithmetic_cpp_int_4.cpp no_eh_support ]
@@ -234,14 +243,14 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_BACKEND
+              <define>TEST_BACKEND
               : test_numeric_limits_backend_concept ]
 
       [ run test_numeric_limits.cpp gmp no_eh_support
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPF_50
+              <define>TEST_MPF_50
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_numeric_limits_mpf50 ]
 
@@ -249,7 +258,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPF
+              <define>TEST_MPF
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_numeric_limits_mpf ]
 
@@ -257,7 +266,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPZ
+              <define>TEST_MPZ
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_numeric_limits_mpz ]
 
@@ -265,7 +274,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPQ
+              <define>TEST_MPQ
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_numeric_limits_mpq ]
 
@@ -273,7 +282,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFR
+              <define>TEST_MPFR
                [ check-target-builds ../config//has_mpfr : : <build>no ]
               : test_numeric_limits_mpfr ]
 
@@ -281,7 +290,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFR_50
+              <define>TEST_MPFR_50
                [ check-target-builds ../config//has_mpfr : : <build>no ]
               : test_numeric_limits_mpfr_50 ]
 
@@ -289,21 +298,21 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_DEC_FLOAT
+              <define>TEST_CPP_DEC_FLOAT
               : test_numeric_limits_cpp_dec_float ]
 
       [ run test_numeric_limits.cpp no_eh_support
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_BIN_FLOAT
+              <define>TEST_CPP_BIN_FLOAT
               : test_numeric_limits_cpp_bin_float ]
 
       [ run test_numeric_limits.cpp $(TOMMATH) no_eh_support
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_TOMMATH
+              <define>TEST_TOMMATH
                [ check-target-builds ../config//has_tommath : : <build>no ]
               : test_numeric_limits_tommath ]
 
@@ -311,14 +320,14 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_INT
+              <define>TEST_CPP_INT
               : test_numeric_limits_cpp_int ]
 
       [ run test_numeric_limits.cpp mpfi mpfr gmp no_eh_support
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFI_50
+              <define>TEST_MPFI_50
                [ check-target-builds ../config//has_mpfi : : <build>no ]
               : test_numeric_limits_mpfi_50 ]
 
@@ -327,14 +336,14 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_FLOAT128
+              <define>TEST_FLOAT128
                [ check-target-builds ../config//has_float128 : : <build>no ]
               : test_numeric_limits_float128 ]
       [ run test_numeric_limits.cpp no_eh_support
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_FLOAT128
+              <define>TEST_FLOAT128
                [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
               : test_numeric_limits_intel_quad ]
 
@@ -351,7 +360,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFR
+              <define>TEST_MPFR
                [ check-target-builds ../config//has_mpfr : : <build>no ]
               : test_move_mpfr ]
 
@@ -359,7 +368,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPC
+              <define>TEST_MPC
                [ check-target-builds ../config//has_mpc : : <build>no ]
               : test_move_mpc ]
 
@@ -367,7 +376,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_GMP
+              <define>TEST_GMP
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_move_gmp ]
 
@@ -375,7 +384,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_TOMMATH
+              <define>TEST_TOMMATH
                [ check-target-builds ../config//has_tommath : : <build>no ]
               : test_move_tommath ]
 
@@ -383,7 +392,7 @@ test-suite functions_and_limits :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_INT
+              <define>TEST_CPP_INT
               : test_move_cpp_int ]
 
       [ get_function_tests ]
@@ -413,7 +422,7 @@ test-suite conversions :
            : # command line
            : # input files
            : # requirements
-                <define>TEST_MPF_50
+           <define>TEST_MPF_50
             [ check-target-builds ../config//has_gmp : : <build>no ]
            : test_constants_mpf50 ]
 
@@ -421,7 +430,7 @@ test-suite conversions :
            : # command line
            : # input files
            : # requirements
-                <define>TEST_MPFR_50
+           <define>TEST_MPFR_50
             [ check-target-builds ../config//has_mpfr : : <build>no ]
            : test_constants_mpfr_50 ]
 
@@ -429,7 +438,7 @@ test-suite conversions :
            : # command line
            : # input files
            : # requirements
-                <define>TEST_CPP_DEC_FLOAT
+           <define>TEST_CPP_DEC_FLOAT
            : test_constants_cpp_dec_float ]
 
 
@@ -443,120 +452,120 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_mpz_int.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_tom_int.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_cpp_rational.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_gmp_rational.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_tom_rational.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_cpp_bin_float.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_cpp_dec_float.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_mpf_float.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_mpfr_float.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_mpfi_float.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
       [ run test_convert_from_float128.cpp
               : # command line
               : # input files
               : # requirements
-                   [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
-                   [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
-                   [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
-                   [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
+              [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
+              [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
+              [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
+              [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
                [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ] 
               ]
 
@@ -566,7 +575,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_BIN_FLOAT
+              <define>TEST_CPP_BIN_FLOAT
                <define>TEST1
                release # Otherwise [ runtime is slow
               : test_cpp_bin_float_io_1
@@ -576,7 +585,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_BIN_FLOAT
+              <define>TEST_CPP_BIN_FLOAT
                <define>TEST2
                release # Otherwise [ runtime is slow
               : test_cpp_bin_float_io_2
@@ -586,7 +595,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFR
+              <define>TEST_MPFR
                [ check-target-builds ../config//has_mpfr : : <build>no ]
                release # Otherwise [ runtime is slow
               ]
@@ -595,7 +604,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_DEC_FLOAT
+              <define>TEST_CPP_DEC_FLOAT
                release # Otherwise [ runtime is slow
               : test_float_io_cpp_dec_float ]
 
@@ -603,7 +612,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPF_50
+              <define>TEST_MPF_50
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_float_io_mpf ]
@@ -612,7 +621,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFR_50
+              <define>TEST_MPFR_50
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_mpfr : : <build>no ]
               : test_float_io_mpfr ]
@@ -621,7 +630,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPFI_50
+              <define>TEST_MPFI_50
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_mpfi : : <build>no ]
               : test_float_io_mpfi ]
@@ -630,7 +639,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_FLOAT128
+              <define>TEST_FLOAT128
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_float128 : : <build>no ]
               : test_float_io_float128 ]
@@ -638,7 +647,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_FLOAT128
+              <define>TEST_FLOAT128
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
               : test_float_io_intel_quad ]
@@ -647,7 +656,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_TOMMATH
+              <define>TEST_TOMMATH
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_tommath : : <build>no ]
               : test_int_io_tommath ]
@@ -656,7 +665,7 @@ test-suite conversions :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPZ
+              <define>TEST_MPZ
                release # Otherwise [ runtime is slow
                [ check-target-builds ../config//has_gmp : : <build>no ]
               : test_int_io_mpz ]
@@ -670,7 +679,7 @@ test-suite cpp_int_tests :
            : # command line
            : # input files
            : # requirements
-                <define>TEST_CPP_INT
+           <define>TEST_CPP_INT
             release # Otherwise    [ runtime is slow
            : test_int_io_cpp_int ]
 
@@ -739,7 +748,7 @@ test-suite cpp_int_tests :
       [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST2 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_2 ]
       [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST3 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_3 ]
       [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST4 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_4 ]
-      [ run test_cpp_int_deserial.cpp ../../serialization/build//boost_serialization ../../filesystem/build//boost_filesystem : $(here) : : release <toolset>gcc-mingw:<link>static  ]
+      [ run test_cpp_int_deserial.cpp ../../serialization/build//boost_serialization ../../filesystem/build//boost_filesystem : $(here)/serial_txts : : release <toolset>gcc-mingw:<link>static  ]
       [ run test_cpp_rat_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static  ]
 
 ;
@@ -751,6 +760,19 @@ test-suite misc :
          [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type <define>HAVE_FLOAT128 : ] 
          [ requires cxx11_constexpr cxx11_user_defined_literals ] ]
 
+      [ compile constexpr_test_arithmetic_backend.cpp : 
+         [ requires cxx14_constexpr cxx17_if_constexpr ] ]
+      [ compile constexpr_test_float128.cpp : 
+         [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_float128 : <source>quadmath : <build>no ] ]
+
+      [ run constexpr_test_cpp_int.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
+      [ run constexpr_test_cpp_int_2.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
+      [ run constexpr_test_cpp_int_3.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
+      [ run constexpr_test_cpp_int_4.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
+      [ run constexpr_test_cpp_int_5.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
+      [ run constexpr_test_cpp_int_6.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : <toolset>clang:<cxxflags>-fconstexpr-steps=268435456 : <build>no ] [ check-target-builds ../config//has_constexpr_limits : <cxxflags>-fconstexpr-ops-limit=268435456 ] ]
+      [ run constexpr_test_cpp_int_7.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : <toolset>clang:<cxxflags>-fconstexpr-steps=268435456 : <build>no ] ]
+
       [ compile test_nothrow_cpp_int.cpp ]
       [ compile test_nothrow_cpp_rational.cpp ]
       [ compile test_nothrow_cpp_bin_float.cpp ]
@@ -771,7 +793,7 @@ test-suite misc :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_TOMMATH
+              <define>TEST_TOMMATH
                [ check-target-builds ../config//has_tommath : : <build>no ]
                release # Otherwise [ runtime is slow
               : test_rational_io_tommath ]
@@ -780,7 +802,7 @@ test-suite misc :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_MPQ
+              <define>TEST_MPQ
                [ check-target-builds ../config//has_gmp : : <build>no ]
                release # Otherwise [ runtime is slow
               : test_rational_io_mpz ]
@@ -789,7 +811,7 @@ test-suite misc :
               : # command line
               : # input files
               : # requirements
-                   <define>TEST_CPP_INT
+              <define>TEST_CPP_INT
                release # Otherwise [ runtime is slow
               : test_rational_io_cpp_int ]
 
@@ -1129,7 +1151,7 @@ rule get_concept_checks
 
       result += [ compile $(source)  mpfr
               : # requirements
-                   <define>TEST_MPFR_50
+              <define>TEST_MPFR_50
                [ check-target-builds ../config//has_mpfr : : <build>no ]
                <debug-symbols>off
                <optimization>space
@@ -1137,7 +1159,7 @@ rule get_concept_checks
 
       result += [ compile $(source)  mpfr
               : # requirements
-                   <define>TEST_MPFR_6
+              <define>TEST_MPFR_6
                [ check-target-builds ../config//has_mpfr : : <build>no ]
                <debug-symbols>off
                <optimization>space
@@ -1145,7 +1167,7 @@ rule get_concept_checks
 
       result += [ compile $(source)  mpfr
               : # requirements
-                   <define>TEST_MPFR_15
+              <define>TEST_MPFR_15
                [ check-target-builds ../config//has_mpfr : : <build>no ]
                <debug-symbols>off
                <optimization>space
@@ -1153,7 +1175,7 @@ rule get_concept_checks
 
       result += [ compile $(source)  mpfr
               : # requirements
-                   <define>TEST_MPFR_17
+              <define>TEST_MPFR_17
                [ check-target-builds ../config//has_mpfr : : <build>no ]
                <debug-symbols>off
                <optimization>space
@@ -1161,7 +1183,7 @@ rule get_concept_checks
 
       result += [ compile $(source)  mpfr
               : # requirements
-                   <define>TEST_MPFR_30
+              <define>TEST_MPFR_30
                [ check-target-builds ../config//has_mpfr : : <build>no ]
                <debug-symbols>off
                <optimization>space
@@ -1169,7 +1191,7 @@ rule get_concept_checks
 
       result += [ compile $(source)  gmp
               : # requirements
-                   <define>TEST_MPF_50
+              <define>TEST_MPF_50
                [ check-target-builds ../config//has_gmp : : <build>no ]
                <debug-symbols>off
                <optimization>space
@@ -1177,35 +1199,35 @@ rule get_concept_checks
 
       result += [ compile $(source)
               : # requirements
-                   <define>TEST_CPP_DEC_FLOAT
+              <define>TEST_CPP_DEC_FLOAT
                <debug-symbols>off
                <optimization>space
               : $(source:B)_cpp_dec_float ] ;
 
       result += [ compile $(source)
               : # requirements
-                   <define>TEST_CPP_BIN_FLOAT
+              <define>TEST_CPP_BIN_FLOAT
                <debug-symbols>off
                <optimization>space
               : $(source:B)_cpp_bin_float ] ;
 
       result += [ compile $(source)
               : # requirements
-                   <define>TEST_CPP_DEC_FLOAT_NO_ET
+              <define>TEST_CPP_DEC_FLOAT_NO_ET
                <debug-symbols>off
                <optimization>space
               : $(source:B)_cpp_dec_float_no_et ] ;
 
       result += [ compile $(source)
               : # requirements
-                   <define>TEST_BACKEND
+              <define>TEST_BACKEND
                <debug-symbols>off
                <optimization>space
               : $(source:B)_backend_concept ] ;
 
       result += [ compile $(source)
               : # requirements
-                   <define>TEST_LOGGED_ADAPTER
+              <define>TEST_LOGGED_ADAPTER
                <debug-symbols>off
                <optimization>space
               : $(source:B)_logged_adaptor ] ;