1 # copyright John Maddock 2008
2 # Distributed under the Boost Software License, Version 1.0.
3 # (See accompanying file LICENSE_1_0.txt or copy at
4 # http://www.boost.org/LICENSE_1_0.txt.
8 import ../../config/checks/config : requires ;
10 local gmp_path = [ modules.peek : GMP_PATH ] ;
11 local mpfr_path = [ modules.peek : MPFR_PATH ] ;
12 local mpfi_path = [ modules.peek : MPFI_PATH ] ;
13 local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
15 project : requirements
17 <include>$(gmp_path)/mpfr
18 <include>$(gmp_path)/gmpfrxx
21 <include>$(mpfi_path)/src
22 <include>$(tommath_path)
26 <search>$(mpfr_path)/build.vc10/lib/Win32/Debug
27 <search>$(tommath_path)
29 <search>$(mpfi_path)/src
30 # We set these to make it easier to set up and test GMP and MPFR under Win32:
31 <toolset>msvc:<runtime-link>static
32 <toolset>msvc:<link>static
33 <toolset>intel-win:<runtime-link>static
34 <toolset>intel-win:<link>static
35 <toolset>msvc:<warnings>all
36 <toolset>gcc:<cxxflags>-Wall
37 <toolset>gcc:<cxxflags>-Wextra
48 actions mp_simple_run_action
53 rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
55 exe $(target-name)_exe : $(sources) : $(requirements) ;
56 explicit $(target-name)_exe ;
57 make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
58 explicit $(target-name).output ;
59 alias $(target-name) : $(target-name).output ;
62 mp-run-simple has_gmp.cpp gmp : : :
63 <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx : has_gmp ;
64 mp-run-simple has_mpfr.cpp mpfr gmp : : :
65 <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfr ;
66 mp-run-simple has_mpfi.cpp mpfi mpfr gmp : : :
67 <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfi ;
68 mp-run-simple has_mpc.cpp mpc mpfr gmp : : :
69 <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpc ;
70 mp-run-simple has_tommath.cpp tommath : : :
71 <include>$(tommath_path) : has_tommath ;
72 mp-run-simple has_float128.cpp quadmath : : : : has_float128 ;
73 exe has_intel_quad : has_intel_quad.cpp : <cxxflags>-Qoption,cpp,--extended_float_type ;
74 exe has_eigen : has_eigen.cpp ;
75 exe has_f2c : has_f2c.cpp f2c ;
76 obj has_is_constant_evaluated : has_is_constant_evaluated.cpp ;
77 obj has_constexpr_limits : has_constexpr_limits_cmd.cpp : <cxxflags>-fconstexpr-ops-limit=268435456 ;
78 obj has_big_obj : has_big_obj.cpp : <cxxflags>-Wa,-mbig-obj ;
79 obj is_ci_sanitizer_run : is_ci_sanitizer_run.cpp ;
84 explicit has_tommath ;
85 explicit has_float128 ;
86 explicit has_intel_quad ;
89 explicit has_is_constant_evaluated ;
90 explicit has_constexpr_limits ;
91 explicit has_big_obj ;
93 explicit is_ci_sanitizer_run ;