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_math = [
36    'k_cos.c',
37    'k_rem_pio2.c',
38    'k_sin.c',
39    'k_tan.c',
40    'kf_cos.c',
41    'kf_rem_pio2.c',
42    'kf_sin.c',
43    'kf_tan.c',
44    's_acos.c',
45    's_acosh.c',
46    's_asin.c',
47    's_asinh.c',
48    's_atan.c',
49    's_atan2.c',
50    's_atanh.c',
51    's_ceil.c',
52    's_cos.c',
53    's_cosh.c',
54    's_drem.c',
55    's_erf.c',
56    's_exp.c',
57    's_exp2.c',
58    's_fabs.c',
59    's_floor.c',
60    's_fmod.c',
61    's_frexp.c',
62    's_hypot.c',
63    's_j0.c',
64    's_j1.c',
65    's_jn.c',
66    's_lgamma.c',
67    's_log.c',
68    's_log10.c',
69    's_pow.c',
70    's_rem_pio2.c',
71    's_remainder.c',
72    's_scalb.c',
73    's_signif.c',
74    's_sin.c',
75    's_sincos.c',
76    's_sinh.c',
77    's_sqrt.c',
78    's_tan.c',
79    's_tanh.c',
80    's_tgamma.c',
81    'sf_acos.c',
82    'sf_acosh.c',
83    'sf_asin.c',
84    'sf_asinh.c',
85    'sf_atan.c',
86    'sf_atan2.c',
87    'sf_atanh.c',
88    'sf_ceil.c',
89    'sf_cos.c',
90    'sf_cosh.c',
91    'sf_drem.c',
92    'sf_erf.c',
93    'sf_exp.c',
94    'sf_exp2.c',
95    'sf_fabs.c',
96    'sf_floor.c',
97    'sf_fmod.c',
98    'sf_frexp.c',
99    'sf_hypot.c',
100    'sf_j0.c',
101    'sf_j1.c',
102    'sf_jn.c',
103    'sf_lgamma.c',
104    'sf_log.c',
105    'sf_log10.c',
106    'sf_log2.c',
107    'sf_pow.c',
108    'sf_rem_pio2.c',
109    'sf_remainder.c',
110    'sf_scalb.c',
111    'sf_signif.c',
112    'sf_sin.c',
113    'sf_sincos.c',
114    'sf_sinh.c',
115    'sf_sqrt.c',
116    'sf_tan.c',
117    'sf_tanh.c',
118    'sf_tgamma.c',
119    'sr_lgamma.c',
120    'srf_lgamma.c',
121]
122
123l_srcs_math = [
124    'sl_hypot.c',
125  ]
126
127if have_long_double
128  srcs_math += l_srcs_math
129endif
130
131srcs_math_use = []
132foreach file : srcs_math
133  s_file = fs.replace_suffix(file, '.S')
134  if file in srcs_libm_machine
135    message('libm/math/' + file + ': machine overrides generic')
136  elif s_file in srcs_libm_machine
137    message('libm/math/' + s_file + ': machine overrides generic')
138  else
139    srcs_math_use += file
140  endif
141endforeach
142
143src_libm_math = files(srcs_math_use)
144