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