18 a = conf.check(type_name='uint128_t', define_name='HAVE_UINT128_T') |
18 a = conf.check(type_name='uint128_t', define_name='HAVE_UINT128_T') |
19 b = conf.check(type_name='__uint128_t', define_name='HAVE___UINT128_T') |
19 b = conf.check(type_name='__uint128_t', define_name='HAVE___UINT128_T') |
20 |
20 |
21 |
21 |
22 if Options.options.high_precision_as_double: |
22 if Options.options.high_precision_as_double: |
23 conf.define('UINT64x64_USE_DOUBLE', 1) |
23 conf.define('INT64X64_USE_DOUBLE', 1) |
24 conf.env['USE_HIGH_PRECISION_DOUBLE'] = 1 |
24 conf.env['USE_HIGH_PRECISION_DOUBLE'] = 1 |
25 highprec = 'long double' |
25 highprec = 'long double' |
26 elif a or b: |
26 elif a or b: |
27 conf.define('UINT64x64_USE_128', 1) |
27 conf.define('INT64X64_USE_128', 1) |
28 conf.env['USE_HIGH_PRECISION_128'] = 1 |
28 conf.env['USE_HIGH_PRECISION_128'] = 1 |
29 highprec = '128-bit integer' |
29 highprec = '128-bit integer' |
30 else: |
30 else: |
31 conf.define('UINT64x64_USE_CAIRO', 1) |
31 conf.define('INT64X64_USE_CAIRO', 1) |
32 conf.env['USE_HIGH_PRECISION_CAIRO'] = 1 |
32 conf.env['USE_HIGH_PRECISION_CAIRO'] = 1 |
33 highprec = 'cairo 128-bit integer' |
33 highprec = 'cairo 128-bit integer' |
34 |
34 |
35 conf.check_message_custom('high precision time', 'implementation', highprec) |
35 conf.check_message_custom('high precision time', 'implementation', highprec) |
36 |
36 |
97 'make-event.h', |
97 'make-event.h', |
98 ] |
98 ] |
99 |
99 |
100 env = bld.env_of_name('default') |
100 env = bld.env_of_name('default') |
101 if env['USE_HIGH_PRECISION_DOUBLE']: |
101 if env['USE_HIGH_PRECISION_DOUBLE']: |
102 headers.source.extend(['uint64x64-double.h']) |
102 headers.source.extend(['int64x64-double.h']) |
103 elif env['USE_HIGH_PRECISION_128']: |
103 elif env['USE_HIGH_PRECISION_128']: |
104 headers.source.extend(['uint64x64-128.h']) |
104 headers.source.extend(['int64x64-128.h']) |
105 sim.source.extend(['uint64x64-128.cc']) |
105 sim.source.extend(['int64x64-128.cc']) |
106 elif env['USE_HIGH_PRECISION_CAIRO']: |
106 elif env['USE_HIGH_PRECISION_CAIRO']: |
107 sim.source.extend([ |
107 sim.source.extend([ |
108 'uint64x64-cairo.cc', |
108 'int64x64-cairo.cc', |
109 ]) |
109 ]) |
110 headers.source.extend([ |
110 headers.source.extend([ |
111 'uint64x64-cairo.h', |
111 'int64x64-cairo.h', |
112 'cairo-wideint-private.h', |
112 'cairo-wideint-private.h', |
113 ]) |
113 ]) |
114 |
114 |
115 if env['ENABLE_REAL_TIME']: |
115 if env['ENABLE_REAL_TIME']: |
116 headers.source.extend([ |
116 headers.source.extend([ |