Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sage
Path: blob/develop/subprojects/packagefiles/mpfi/meson.build
6378 views
1
project(
2
'mpfi',
3
'c',
4
version: '1.5.4'
5
)
6
7
c = meson.get_compiler('c')
8
9
# Dependencies
10
gmp = dependency('gmp', version: '>= 4.1.0')
11
mpfr = dependency('mpfr', version: '>= 4.0.1')
12
13
# Configuration data
14
conf = configuration_data()
15
conf.set('PACKAGE_VERSION', '"' + meson.project_version() + '"')
16
# Check for functions
17
conf.set('HAVE_DUP2', c.has_function('dup2') ? 1 : 0)
18
conf.set('HAVE_GETTIMEOFDAY', c.has_function('gettimeofday') ? 1 : 0)
19
conf.set('HAVE_MPFR_Q_SUB', c.has_function('mpfr_q_sub') ? 1 : 0)
20
conf.set('HAVE_MPFR_Z_SUB', c.has_function('mpfr_z_sub') ? 1 : 0)
21
conf.set('HAVE_MPFR_Z_DIV', c.has_function('mpfr_z_div') ? 1 : 0)
22
23
configure_file(
24
output: 'mpfi_config.h',
25
configuration: conf
26
)
27
28
# Source files
29
src = files(
30
'src/abs.c', 'src/acos.c', 'src/acosh.c', 'src/add.c',
31
'src/add_d.c', 'src/add_fr.c', 'src/add_q.c', 'src/add_si.c',
32
'src/add_ui.c', 'src/add_z.c', 'src/alea.c', 'src/asin.c',
33
'src/asinh.c', 'src/atan2.c', 'src/atan.c', 'src/atanh.c',
34
'src/bisect.c', 'src/blow.c', 'src/cbrt.c', 'src/clear.c',
35
'src/clears.c', 'src/cmp.c', 'src/cmp_sym_pi.c', 'src/constants.c',
36
'src/cos.c', 'src/cosh.c', 'src/csc.c', 'src/csch.c',
37
'src/cot.c', 'src/coth.c', 'src/d_div.c', 'src/d_sub.c',
38
'src/diam.c', 'src/div.c', 'src/div_2exp.c', 'src/div_2si.c',
39
'src/div_2ui.c', 'src/div_d.c', 'src/div_ext.c', 'src/div_fr.c',
40
'src/div_q.c', 'src/div_si.c', 'src/div_ui.c', 'src/div_z.c',
41
'src/erandom.c', 'src/error.c', 'src/exp.c', 'src/exp2.c',
42
'src/exp10.c', 'src/expm1.c', 'src/exp2m1.c', 'src/exp10m1.c',
43
'src/fr_div.c', 'src/fr_sub.c', 'src/get_endpoints.c', 'src/get_fr.c',
44
'src/get_d.c', 'src/get_prec.c', 'src/get_version.c', 'src/has_zero.c',
45
'src/hypot.c', 'src/increase.c', 'src/init.c', 'src/init2.c',
46
'src/inits.c', 'src/inits2.c', 'src/intersect.c', 'src/interv_d.c',
47
'src/interv_fr.c', 'src/interv_q.c', 'src/interv_si.c', 'src/interv_ui.c',
48
'src/interv_z.c', 'src/inp_str.c', 'src/inv.c', 'src/is_empty.c',
49
'src/is_inside.c', 'src/log.c', 'src/log10.c', 'src/log1p.c',
50
'src/log2.c', 'src/log2p1.c', 'src/log10p1.c', 'src/mag.c',
51
'src/mid.c', 'src/mig.c', 'src/mul.c', 'src/mul_2exp.c',
52
'src/mul_2si.c', 'src/mul_2ui.c', 'src/mul_d.c', 'src/mul_fr.c',
53
'src/mul_q.c', 'src/mul_si.c', 'src/mul_ui.c', 'src/mul_z.c',
54
'src/neg.c', 'src/nrandom.c', 'src/out_str.c', 'src/predicates.c',
55
'src/print_binary.c', 'src/put.c', 'src/put_d.c', 'src/put_fr.c',
56
'src/put_q.c', 'src/put_si.c', 'src/put_ui.c', 'src/put_z.c',
57
'src/q_div.c', 'src/q_sub.c', 'src/quadrant.c', 'src/rec_sqrt.c',
58
'src/revert_if_needed.c', 'src/round_prec.c', 'src/sec.c', 'src/sech.c',
59
'src/set.c', 'src/set_d.c', 'src/set_flt.c', 'src/set_fr.c',
60
'src/set_ld.c', 'src/set_prec.c', 'src/set_q.c', 'src/set_si.c',
61
'src/set_str.c', 'src/set_ui.c', 'src/set_z.c', 'src/si_div.c',
62
'src/si_sub.c', 'src/sign.c', 'src/sin.c', 'src/sinh.c',
63
'src/sqr.c', 'src/sqrt.c', 'src/sub.c', 'src/sub_d.c',
64
'src/sub_fr.c', 'src/sub_q.c', 'src/sub_si.c', 'src/sub_ui.c',
65
'src/sub_z.c', 'src/swap.c', 'src/tan.c', 'src/tanh.c',
66
'src/ui_div.c', 'src/ui_sub.c', 'src/union.c', 'src/urandom.c',
67
'src/z_div.c', 'src/z_sub.c'
68
)
69
70
# Library
71
libmpfi = static_library(
72
'mpfi',
73
src,
74
include_directories: include_directories('.', 'src'),
75
dependencies: [gmp, mpfr],
76
install: true,
77
)
78
79
# Install headers
80
install_headers('src/mpfi.h', 'src/mpfi_io.h', subdir: 'mpfi')
81
82
# Pkg-config file
83
# pkgconfig = import('pkgconfig')
84
# pkgconfig.generate(
85
# name: 'mpfi',
86
# description: 'MPFI library',
87
# version: meson.project_version(),
88
# libraries: libmpfi,
89
# subdirs: 'mpfi',
90
# install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
91
# )
92
93
mpfi_dep = declare_dependency(
94
include_directories: include_directories('src'),
95
link_with: libmpfi,
96
dependencies: [gmp, mpfr],
97
)
98
99
# Extra distribution files
100
# dist_files = [
101
# 'mpfi_config.h.in',
102
# 'AUTHORS',
103
# 'COPYING',
104
# 'COPYING.LESSER',
105
# 'NEWS',
106
# 'TODO',
107
# ]
108
# foreach file : dist_files
109
# meson.add_dist_script('cp', file, meson.current_build_dir())
110
# endforeach
111
112
# Subdirectories
113
#subdir('doc')
114
#subdir('src')
115
#subdir('tests')
116
117