1#
2# SPDX-License-Identifier: BSD-3-Clause
3#
4# Copyright © 2019 Keith Packard
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
10# 1. Redistributions of source code must retain the above copyright
11#    notice, this list of conditions and the following disclaimer.
12#
13# 2. Redistributions in binary form must reproduce the above
14#    copyright notice, this list of conditions and the following
15#    disclaimer in the documentation and/or other materials provided
16#    with the distribution.
17#
18# 3. Neither the name of the copyright holder nor the names of its
19#    contributors may be used to endorse or promote products derived
20#    from this software without specific prior written permission.
21#
22# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
27# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
33# OF THE POSSIBILITY OF SUCH DAMAGE.
34#
35srcs_libm_machine_common = [
36  'fenv.c',
37]
38
39srcs_libm_machine_32 = [
40  'f_atan2f.S',
41  'f_atan2.S',
42  'f_exp.c',
43  'f_expf.c',
44  'f_frexpf.S',
45  'f_frexp.S',
46  'f_ldexpf.S',
47  'f_ldexp.S',
48  'f_llrint.c',
49  'f_llrintf.c',
50  'f_llrintl.c',
51  'f_log10f.S',
52  'f_log10.S',
53  'f_logf.S',
54  'f_log.S',
55  'f_lrint.c',
56  'f_lrintf.c',
57  'f_lrintl.c',
58  'f_math.h',
59  'f_pow.c',
60  'f_powf.c',
61  'f_rint.c',
62  'f_rintf.c',
63  'f_rintl.c',
64  'f_tanf.S',
65  'f_tan.S',
66]
67
68srcs_libm_machine = srcs_libm_machine_common + [
69  'feclearexcept.c',
70  'fedisableexcept.c',
71  'feenableexcept.c',
72  'fegetenv.c',
73  'fegetexcept.c',
74  'fegetexceptflag.c',
75  'fegetround.c',
76  'feholdexcept.c',
77  'feraiseexcept.c',
78  'fesetenv.c',
79  'fesetexceptflag.c',
80  'fesetround.c',
81  'fetestexcept.c',
82  'feupdateenv.c',
83]
84
85src_libm_machine = []
86
87foreach target : targets
88  if target.startswith('32') or (target == '' and not is_x86_64)
89    src_libm_machine_target = srcs_libm_machine_common + srcs_libm_machine_32
90  else
91    src_libm_machine_target = srcs_libm_machine_common
92  endif
93  set_variable('src_libm_machine' + target, files(src_libm_machine_target))
94endforeach
95