• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
5
6import modules ;
7import path ;
8
9local gmp_path = [ modules.peek : GMP_PATH ] ;
10local mpfr_path = [ modules.peek : MPFR_PATH ] ;
11local mpfi_path = [ modules.peek : MPFI_PATH ] ;
12local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
13
14project : requirements
15   <include>$(gmp_path)
16   <include>$(gmp_path)/mpfr
17   <include>$(gmp_path)/gmpfrxx
18   <include>$(mpfr_path)
19   <include>$(mpfi_path)
20   <include>$(mpfi_path)/src
21   <include>$(tommath_path)
22   <include>../../..
23   <search>$(gmp_path)
24   <search>$(mpfr_path)
25   <search>$(mpfr_path)/build.vc10/lib/Win32/Debug
26   <search>$(tommath_path)
27   <search>$(mpfi_path)
28   <search>$(mpfi_path)/src
29   # We set these to make it easier to set up and test GMP and MPFR under Win32:
30   <toolset>msvc:<runtime-link>static
31   <toolset>msvc:<link>static
32   <toolset>intel-win:<runtime-link>static
33   <toolset>intel-win:<link>static
34   <toolset>msvc:<warnings>all
35   <toolset>gcc:<cxxflags>-Wall
36   <toolset>gcc:<cxxflags>-Wextra
37   ;
38
39lib gmp ;
40lib mpfr ;
41lib mpfi ;
42lib mpc ;
43lib quadmath ;
44lib tommath ;
45lib f2c ;
46
47actions mp_simple_run_action
48{
49      $(>) > $(<)
50}
51
52rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
53{
54   exe $(target-name)_exe : $(sources) : $(requirements) ;
55   explicit $(target-name)_exe ;
56   make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
57   explicit $(target-name).output ;
58   alias $(target-name) : $(target-name).output ;
59}
60
61mp-run-simple has_gmp.cpp gmp : : :
62      <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx : has_gmp ;
63mp-run-simple has_mpfr.cpp mpfr gmp : : :
64      <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfr ;
65mp-run-simple has_mpfi.cpp mpfi mpfr gmp : : :
66      <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfi ;
67mp-run-simple has_mpc.cpp mpc mpfr gmp : : :
68      <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpc ;
69mp-run-simple has_tommath.cpp tommath : : :
70      <include>$(tommath_path) : has_tommath ;
71mp-run-simple has_float128.cpp quadmath : : : : has_float128 ;
72exe has_intel_quad : has_intel_quad.cpp : <cxxflags>-Qoption,cpp,--extended_float_type ;
73exe has_eigen : has_eigen.cpp ;
74exe has_f2c : has_f2c.cpp f2c ;
75obj has_is_constant_evaluated : has_is_constant_evaluated.cpp ;
76obj has_constexpr_limits : has_constexpr_limits_cmd.cpp : <cxxflags>-fconstexpr-ops-limit=268435456 ;
77
78explicit has_gmp ;
79explicit has_mpfr ;
80explicit has_mpfi ;
81explicit has_tommath ;
82explicit has_float128 ;
83explicit has_intel_quad ;
84explicit has_mpc ;
85explicit has_eigen ;
86explicit has_is_constant_evaluated ;
87explicit has_constexpr_limits ;
88explicit has_f2c ;
89
90