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 quadmath ;
43lib tommath ;
44
45actions mp_simple_run_action
46{
47      $(>) > $(<)
48}
49
50rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
51{
52   exe $(target-name)_exe : $(sources) : $(requirements) ;
53   explicit $(target-name)_exe ;
54   make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
55   explicit $(target-name).output ;
56   alias $(target-name) : $(target-name).output ;
57}
58
59mp-run-simple has_gmp.cpp gmp : : :
60      <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx : has_gmp ;
61mp-run-simple has_mpfr.cpp mpfr gmp : : :
62      <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfr ;
63mp-run-simple has_mpfi.cpp mpfi mpfr gmp : : :
64      <include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfi ;
65mp-run-simple has_tommath.cpp tommath : : :
66      <include>$(tommath_path) : has_tommath ;
67mp-run-simple has_float128.cpp quadmath : : : : has_float128 ;
68exe has_intel_quad : has_intel_quad.cpp : <cxxflags>-Qoption,cpp,--extended_float_type ;
69
70explicit has_gmp ;
71explicit has_mpfr ;
72explicit has_mpfi ;
73explicit has_tommath ;
74explicit has_float128 ;
75explicit has_intel_quad ;
76
77
78
79