| @@ -1,477 +1,477 @@ | | | @@ -1,477 +1,477 @@ |
1 | # $NetBSD: Makefile,v 1.218 2022/08/27 09:56:21 christos Exp $ | | 1 | # $NetBSD: Makefile,v 1.219 2023/04/10 19:23:02 rillig Exp $ |
2 | # | | 2 | # |
3 | # @(#)Makefile 5.1beta 93/09/24 | | 3 | # @(#)Makefile 5.1beta 93/09/24 |
4 | # | | 4 | # |
5 | # ==================================================== | | 5 | # ==================================================== |
6 | # Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | | 6 | # Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. |
7 | # | | 7 | # |
8 | # Developed at SunPro, a Sun Microsystems, Inc. business. | | 8 | # Developed at SunPro, a Sun Microsystems, Inc. business. |
9 | # Permission to use, copy, modify, and distribute this | | 9 | # Permission to use, copy, modify, and distribute this |
10 | # software is freely granted, provided that this notice | | 10 | # software is freely granted, provided that this notice |
11 | # is preserved. | | 11 | # is preserved. |
12 | # ==================================================== | | 12 | # ==================================================== |
13 | # | | 13 | # |
14 | # | | 14 | # |
15 | | | 15 | |
16 | NOSANITIZER= # defined | | 16 | NOSANITIZER= # defined |
17 | COPTS+= ${${ACTIVE_CC} == "gcc":? -frounding-math :} | | 17 | COPTS+= ${${ACTIVE_CC} == "gcc":? -frounding-math :} |
18 | | | 18 | |
19 | # | | 19 | # |
20 | # There are two options in making libm at fdlibm compile time: | | 20 | # There are two options in making libm at fdlibm compile time: |
21 | # _IEEE_LIBM --- IEEE libm; smaller, and somewhat faster | | 21 | # _IEEE_LIBM --- IEEE libm; smaller, and somewhat faster |
22 | # _MULTI_LIBM --- Support multi-standard at runtime by | | 22 | # _MULTI_LIBM --- Support multi-standard at runtime by |
23 | # imposing wrapper functions defined in | | 23 | # imposing wrapper functions defined in |
24 | # fdlibm.h: | | 24 | # fdlibm.h: |
25 | # _IEEE_MODE -- IEEE | | 25 | # _IEEE_MODE -- IEEE |
26 | # _XOPEN_MODE -- X/OPEN | | 26 | # _XOPEN_MODE -- X/OPEN |
27 | # _POSIX_MODE -- POSIX/ANSI | | 27 | # _POSIX_MODE -- POSIX/ANSI |
28 | # _SVID3_MODE -- SVID | | 28 | # _SVID3_MODE -- SVID |
29 | # | | 29 | # |
30 | # Here is how to set up CPPFLAGS to create the desired libm at | | 30 | # Here is how to set up CPPFLAGS to create the desired libm at |
31 | # compile time: | | 31 | # compile time: |
32 | # | | 32 | # |
33 | # CPPFLAGS = -D_IEEE_LIBM ... IEEE libm (recommended) | | 33 | # CPPFLAGS = -D_IEEE_LIBM ... IEEE libm (recommended) |
34 | # CPPFLAGS = -D_SVID3_MODE ... Multi-standard supported | | 34 | # CPPFLAGS = -D_SVID3_MODE ... Multi-standard supported |
35 | # libm with SVID as the | | 35 | # libm with SVID as the |
36 | # default standard | | 36 | # default standard |
37 | # CPPFLAGS = -D_XOPEN_MODE ... Multi-standard supported | | 37 | # CPPFLAGS = -D_XOPEN_MODE ... Multi-standard supported |
38 | # libm with XOPEN as the | | 38 | # libm with XOPEN as the |
39 | # default standard | | 39 | # default standard |
40 | # CPPFLAGS = -D_POSIX_MODE ... Multi-standard supported | | 40 | # CPPFLAGS = -D_POSIX_MODE ... Multi-standard supported |
41 | # libm with POSIX as the | | 41 | # libm with POSIX as the |
42 | # default standard | | 42 | # default standard |
43 | # CPPFLAGS = ... Multi-standard supported | | 43 | # CPPFLAGS = ... Multi-standard supported |
44 | # libm with IEEE as the | | 44 | # libm with IEEE as the |
45 | # default standard | | 45 | # default standard |
46 | # | | 46 | # |
47 | | | 47 | |
48 | USE_SHLIBDIR= yes | | 48 | USE_SHLIBDIR= yes |
49 | | | 49 | |
50 | # require this for the value of I387_LIBM from mk.conf, if set. | | 50 | # require this for the value of I387_LIBM from mk.conf, if set. |
51 | .include <bsd.own.mk> | | 51 | .include <bsd.own.mk> |
52 | | | 52 | |
53 | LIBC_MACHINE_ARCH?= ${MACHINE_ARCH} | | 53 | LIBC_MACHINE_ARCH?= ${MACHINE_ARCH} |
54 | LIBC_MACHINE_CPU?= ${MACHINE_CPU} | | 54 | LIBC_MACHINE_CPU?= ${MACHINE_CPU} |
55 | | | 55 | |
56 | # compiler_rt uses typeof() and __extension__ | | 56 | LINTFLAGS+= -g # compiler_rt uses typeof() and __extension__ |
57 | LINTFLAGS += -g | | 57 | LINTFLAGS+= -X 117 # GCC sign-extends '>>' on signed int |
58 | | | 58 | |
59 | .if (${LIBC_MACHINE_CPU} == "aarch64") | | 59 | .if (${LIBC_MACHINE_CPU} == "aarch64") |
60 | .PATH: ${.CURDIR}/arch/aarch64 | | 60 | .PATH: ${.CURDIR}/arch/aarch64 |
61 | ARCH_SRCS = e_sqrt.S e_sqrtf.S s_fabsf.S | | 61 | ARCH_SRCS = e_sqrt.S e_sqrtf.S s_fabsf.S |
62 | ARCH_SRCS+= s_fma.S s_fmaf.S s_fmax.S s_fmaxf.S s_fmin.S s_fminf.S | | 62 | ARCH_SRCS+= s_fma.S s_fmaf.S s_fmax.S s_fmaxf.S s_fmin.S s_fminf.S |
63 | .if ${MKSOFTFLOAT} == "no" | | 63 | .if ${MKSOFTFLOAT} == "no" |
64 | COMMON_SRCS+= fenv.c | | 64 | COMMON_SRCS+= fenv.c |
65 | .endif | | 65 | .endif |
66 | COMMON_SRCS+= s_nexttoward.c s_rintl.c | | 66 | COMMON_SRCS+= s_nexttoward.c s_rintl.c |
67 | COMMON_SRCS+= e_sqrtl.c | | 67 | COMMON_SRCS+= e_sqrtl.c |
68 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 68 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
69 | | | 69 | |
70 | .elif (${LIBC_MACHINE_ARCH} == "alpha") | | 70 | .elif (${LIBC_MACHINE_ARCH} == "alpha") |
71 | .PATH: ${.CURDIR}/arch/alpha | | 71 | .PATH: ${.CURDIR}/arch/alpha |
72 | ARCH_SRCS = s_copysign.S s_copysignf.S lrint.S | | 72 | ARCH_SRCS = s_copysign.S s_copysignf.S lrint.S |
73 | COMMON_SRCS+= fenv.c | | 73 | COMMON_SRCS+= fenv.c |
74 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 74 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
75 | COPTS+= -mfloat-ieee -mieee-with-inexact -mfp-trap-mode=sui -mtrap-precision=i | | 75 | COPTS+= -mfloat-ieee -mieee-with-inexact -mfp-trap-mode=sui -mtrap-precision=i |
76 | | | 76 | |
77 | .elif (${LIBC_MACHINE_CPU} == "arm") | | 77 | .elif (${LIBC_MACHINE_CPU} == "arm") |
78 | .PATH.c: ${.CURDIR}/arch/arm | | 78 | .PATH.c: ${.CURDIR}/arch/arm |
79 | .if ${MKSOFTFLOAT} == "no" | | 79 | .if ${MKSOFTFLOAT} == "no" |
80 | COMMON_SRCS+= fenv.c | | 80 | COMMON_SRCS+= fenv.c |
81 | .endif | | 81 | .endif |
82 | COMMON_SRCS+= s_rintl.c | | 82 | COMMON_SRCS+= s_rintl.c |
83 | .for f in fenv.c lrint.S lrintf.S s_fabsf.S s_fma.S s_fmaf.S | | 83 | .for f in fenv.c lrint.S lrintf.S s_fabsf.S s_fma.S s_fmaf.S |
84 | COPTS.$f += -mfpu=vfp | | 84 | COPTS.$f += -mfpu=vfp |
85 | .endfor | | 85 | .endfor |
86 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 86 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
87 | .if (${MKSOFTFLOAT} == "no") | | 87 | .if (${MKSOFTFLOAT} == "no") |
88 | .PATH.S: ${.CURDIR}/arch/arm | | 88 | .PATH.S: ${.CURDIR}/arch/arm |
89 | ARCH_SRCS = e_sqrt.S e_sqrtf.S lrint.S lrintf.S s_fabsf.S s_fma.S s_fmaf.S | | 89 | ARCH_SRCS = e_sqrt.S e_sqrtf.S lrint.S lrintf.S s_fabsf.S s_fma.S s_fmaf.S |
90 | .endif | | 90 | .endif |
91 | | | 91 | |
92 | .elif (${LIBC_MACHINE_ARCH} == "ia64") | | 92 | .elif (${LIBC_MACHINE_ARCH} == "ia64") |
93 | .PATH: ${.CURDIR}/arch/ia64 | | 93 | .PATH: ${.CURDIR}/arch/ia64 |
94 | COMMON_SRCS += fenv.c | | 94 | COMMON_SRCS += fenv.c |
95 | | | 95 | |
96 | .elif (${LIBC_MACHINE_ARCH} == "hppa") | | 96 | .elif (${LIBC_MACHINE_ARCH} == "hppa") |
97 | .PATH.c: ${.CURDIR}/arch/hppa | | 97 | .PATH.c: ${.CURDIR}/arch/hppa |
98 | COMMON_SRCS+= fenv.c s_rintl.c | | 98 | COMMON_SRCS+= fenv.c s_rintl.c |
99 | | | 99 | |
100 | .elif (${LIBC_MACHINE_ARCH} == "sparc") | | 100 | .elif (${LIBC_MACHINE_ARCH} == "sparc") |
101 | .PATH: ${.CURDIR}/arch/sparc | | 101 | .PATH: ${.CURDIR}/arch/sparc |
102 | COMMON_SRCS+= fenv.c | | 102 | COMMON_SRCS+= fenv.c |
103 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 103 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
104 | | | 104 | |
105 | .elif (${LIBC_MACHINE_ARCH} == "sparc64") | | 105 | .elif (${LIBC_MACHINE_ARCH} == "sparc64") |
106 | .PATH: ${.CURDIR}/arch/sparc64 | | 106 | .PATH: ${.CURDIR}/arch/sparc64 |
107 | COMMON_SRCS+= fenv.c | | 107 | COMMON_SRCS+= fenv.c |
108 | COMMON_SRCS+= s_rintl.c | | 108 | COMMON_SRCS+= s_rintl.c |
109 | .ifndef _COMPAT_M32_MK_ | | 109 | .ifndef _COMPAT_M32_MK_ |
110 | COMMON_SRCS+= s_nexttoward.c | | 110 | COMMON_SRCS+= s_nexttoward.c |
111 | .endif | | 111 | .endif |
112 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 112 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
113 | | | 113 | |
114 | .elif ((${MACHINE_ARCH} == "i386") || (${MACHINE_ARCH} == "x86_64")) | | 114 | .elif ((${MACHINE_ARCH} == "i386") || (${MACHINE_ARCH} == "x86_64")) |
115 | | | 115 | |
116 | # XXX consider making this LIBC_MACHINE_ARCH? | | 116 | # XXX consider making this LIBC_MACHINE_ARCH? |
117 | .if (${MACHINE_ARCH} == "x86_64") | | 117 | .if (${MACHINE_ARCH} == "x86_64") |
118 | .PATH: ${.CURDIR}/arch/x86_64 | | 118 | .PATH: ${.CURDIR}/arch/x86_64 |
119 | .endif | | 119 | .endif |
120 | .PATH: ${.CURDIR}/arch/i387 | | 120 | .PATH: ${.CURDIR}/arch/i387 |
121 | | | 121 | |
122 | COMMON_SRCS+= fenv.c s_nexttoward.c s_rintl.c | | 122 | COMMON_SRCS+= fenv.c s_nexttoward.c s_rintl.c |
123 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 123 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
124 | | | 124 | |
125 | ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_expf.S e_fmod.S e_log.S \ | | 125 | ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_expf.S e_fmod.S e_log.S \ |
126 | e_logf.S e_log10.S e_log10f.S e_log2.S e_log2f.S e_remainder.S \ | | 126 | e_logf.S e_log10.S e_log10f.S e_log2.S e_log2f.S e_remainder.S \ |
127 | e_remainderf.S e_scalb.S e_scalbf.S e_sqrt.S e_sqrtf.S s_atan.S \ | | 127 | e_remainderf.S e_scalb.S e_scalbf.S e_sqrt.S e_sqrtf.S s_atan.S \ |
128 | s_atanf.S s_ceil.S s_ceilf.S s_copysign.S s_copysignf.S \ | | 128 | s_atanf.S s_ceil.S s_ceilf.S s_copysign.S s_copysignf.S \ |
129 | s_finite.S s_finitef.S s_floor.S s_floorf.S \ | | 129 | s_finite.S s_finitef.S s_floor.S s_floorf.S \ |
130 | s_log1p.S s_log1pf.S s_logb.S s_logbf.S s_logbl.S \ | | 130 | s_log1p.S s_log1pf.S s_logb.S s_logbf.S s_logbl.S \ |
131 | s_rint.S s_rintf.S s_scalbn.S s_scalbnf.S s_significand.S \ | | 131 | s_rint.S s_rintf.S s_scalbn.S s_scalbnf.S s_significand.S \ |
132 | s_significandf.S lrint.S | | 132 | s_significandf.S lrint.S |
133 | # do not pick up the i387 asm version for the following functions; | | 133 | # do not pick up the i387 asm version for the following functions; |
134 | # it is incorrect | | 134 | # it is incorrect |
135 | .for f in cos cosf modf ilogb ilogbl ilogbf sin sinf tan tanf | | 135 | .for f in cos cosf modf ilogb ilogbl ilogbf sin sinf tan tanf |
136 | s_${f}.o s_${f}.pico s_${f}.po s_${f}.go s_${f}.d: s_${f}.c | | 136 | s_${f}.o s_${f}.pico s_${f}.po s_${f}.go s_${f}.d: s_${f}.c |
137 | .endfor | | 137 | .endfor |
138 | | | 138 | |
139 | .if (${MACHINE_ARCH} == "i386") | | 139 | .if (${MACHINE_ARCH} == "i386") |
140 | SUBDIR=arch/i387 | | 140 | SUBDIR=arch/i387 |
141 | .endif | | 141 | .endif |
142 | | | 142 | |
143 | .elif (${LIBC_MACHINE_ARCH} == "m68k") | | 143 | .elif (${LIBC_MACHINE_ARCH} == "m68k") |
144 | .if defined(M68060) | | 144 | .if defined(M68060) |
145 | .PATH: ${.CURDIR}/arch/m68060 | | 145 | .PATH: ${.CURDIR}/arch/m68060 |
146 | .include "${.CURDIR}/arch/m68060/Makefile.list" | | 146 | .include "${.CURDIR}/arch/m68060/Makefile.list" |
147 | COPTS+=-m68060 | | 147 | COPTS+=-m68060 |
148 | .PATH: ${.CURDIR}/arch/m68k | | 148 | .PATH: ${.CURDIR}/arch/m68k |
149 | ARCH_SRCS += s_ceil.S s_copysign.S s_finite.S s_floor.S s_rint.S | | 149 | ARCH_SRCS += s_ceil.S s_copysign.S s_finite.S s_floor.S s_rint.S |
150 | .elif defined(M68040) | | 150 | .elif defined(M68040) |
151 | .PATH: ${.CURDIR}/arch/m68k | | 151 | .PATH: ${.CURDIR}/arch/m68k |
152 | COPTS+=-m68040 | | 152 | COPTS+=-m68040 |
153 | ARCH_SRCS = s_copysign.S s_finite.S | | 153 | ARCH_SRCS = s_copysign.S s_finite.S |
154 | .else | | 154 | .else |
155 | .if (${MKSOFTFLOAT} == "no") | | 155 | .if (${MKSOFTFLOAT} == "no") |
156 | .PATH: ${.CURDIR}/arch/mc68881 ${.CURDIR}/arch/m68k | | 156 | .PATH: ${.CURDIR}/arch/mc68881 ${.CURDIR}/arch/m68k |
157 | ARCH_SRCS = e_acos.S e_asin.S e_atanh.S e_cosh.S e_exp.S e_fmod.S e_log.S \ | | 157 | ARCH_SRCS = e_acos.S e_asin.S e_atanh.S e_cosh.S e_exp.S e_fmod.S e_log.S \ |
158 | e_log10.S e_remainder.S e_scalb.S e_sinh.S e_sqrt.S s_atan.S \ | | 158 | e_log10.S e_remainder.S e_scalb.S e_sinh.S e_sqrt.S s_atan.S \ |
159 | s_ceil.S s_copysign.S s_cos.S s_expm1.S s_finite.S s_floor.S \ | | 159 | s_ceil.S s_copysign.S s_cos.S s_expm1.S s_finite.S s_floor.S \ |
160 | s_log1p.S s_logb.S s_rint.S s_scalbn.S s_sin.S s_tan.S s_tanh.S | | 160 | s_log1p.S s_logb.S s_rint.S s_scalbn.S s_sin.S s_tan.S s_tanh.S |
161 | COMMON_SRCS += fenv.c s_nexttoward.c s_rintl.c | | 161 | COMMON_SRCS += fenv.c s_nexttoward.c s_rintl.c |
162 | .endif | | 162 | .endif |
163 | .endif | | 163 | .endif |
164 | # end of m68k | | 164 | # end of m68k |
165 | | | 165 | |
166 | .elif (${LIBC_MACHINE_ARCH} == "vax") | | 166 | .elif (${LIBC_MACHINE_ARCH} == "vax") |
167 | .PATH: ${.CURDIR}/arch/vax | | 167 | .PATH: ${.CURDIR}/arch/vax |
168 | | | 168 | |
169 | #NOIEEE_ARCH+= s_fmax.c s_fmaxf.c s_fmaxl.c | | 169 | #NOIEEE_ARCH+= s_fmax.c s_fmaxf.c s_fmaxl.c |
170 | #NOIEEE_ARCH+= n_infnan.S n_argred.S n_sqrt.S | | 170 | #NOIEEE_ARCH+= n_infnan.S n_argred.S n_sqrt.S |
171 | #ARCH_SRCS = n_atan2.S n_cabs.S n_cbrt.S n_support.S n_sincos.S n_tan.S | | 171 | #ARCH_SRCS = n_atan2.S n_cabs.S n_cbrt.S n_support.S n_sincos.S n_tan.S |
172 | # XXX - ripped out due to lack of the insn polyd in the Mariah chip, | | 172 | # XXX - ripped out due to lack of the insn polyd in the Mariah chip, |
173 | # and emulation code isn't written yet. | | 173 | # and emulation code isn't written yet. |
174 | ARCH_SRCS = n_scalbn.S | | 174 | ARCH_SRCS = n_scalbn.S |
175 | WARNS?=5 | | 175 | WARNS?=5 |
176 | | | 176 | |
177 | .elif (${LIBC_MACHINE_CPU} == "riscv") | | 177 | .elif (${LIBC_MACHINE_CPU} == "riscv") |
178 | .PATH: ${.CURDIR}/arch/riscv | | 178 | .PATH: ${.CURDIR}/arch/riscv |
179 | | | 179 | |
180 | COMMON_SRCS+= s_nexttoward.c s_rintl.c | | 180 | COMMON_SRCS+= s_nexttoward.c s_rintl.c |
181 | | | 181 | |
182 | .if ${MKSOFTFLOAT} == "no" | | 182 | .if ${MKSOFTFLOAT} == "no" |
183 | COMMON_SRCS += fenv.c | | 183 | COMMON_SRCS += fenv.c |
184 | ARCH_SRCS = e_sqrt.S e_sqrtf.S | | 184 | ARCH_SRCS = e_sqrt.S e_sqrtf.S |
185 | ARCH_SRCS += s_copysign.S s_copysignf.S | | 185 | ARCH_SRCS += s_copysign.S s_copysignf.S |
186 | ARCH_SRCS += s_fabs.S s_fabsf.S | | 186 | ARCH_SRCS += s_fabs.S s_fabsf.S |
187 | ARCH_SRCS += s_fma.S s_fmaf.S | | 187 | ARCH_SRCS += s_fma.S s_fmaf.S |
188 | ARCH_SRCS += s_fmax.S s_fmaxf.S | | 188 | ARCH_SRCS += s_fmax.S s_fmaxf.S |
189 | ARCH_SRCS += s_fmin.S s_fminf.S | | 189 | ARCH_SRCS += s_fmin.S s_fminf.S |
190 | .endif | | 190 | .endif |
191 | | | 191 | |
192 | .elif (${LIBC_MACHINE_ARCH} == "powerpc") | | 192 | .elif (${LIBC_MACHINE_ARCH} == "powerpc") |
193 | .PATH: ${.CURDIR}/arch/powerpc | | 193 | .PATH: ${.CURDIR}/arch/powerpc |
194 | .if ${MKSOFTFLOAT} == "no" | | 194 | .if ${MKSOFTFLOAT} == "no" |
195 | COMMON_SRCS += fenv.c | | 195 | COMMON_SRCS += fenv.c |
196 | .endif | | 196 | .endif |
197 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c | | 197 | COMMON_SRCS+= s_fma.c s_fmaf.c s_fmal.c |
198 | ARCH_SRCS += s_fma.S s_fmaf.S | | 198 | ARCH_SRCS += s_fma.S s_fmaf.S |
199 | | | 199 | |
200 | .elif (${LIBC_MACHINE_CPU} == "mips") | | 200 | .elif (${LIBC_MACHINE_CPU} == "mips") |
201 | .PATH: ${.CURDIR}/arch/mips | | 201 | .PATH: ${.CURDIR}/arch/mips |
202 | .if ${MKSOFTFLOAT} == "no" | | 202 | .if ${MKSOFTFLOAT} == "no" |
203 | COMMON_SRCS += fenv.c | | 203 | COMMON_SRCS += fenv.c |
204 | .endif | | 204 | .endif |
205 | COMMON_SRCS+= s_rintl.c | | 205 | COMMON_SRCS+= s_rintl.c |
206 | .if ${MACHINE_MIPS64} && (!defined(CPUFLAGS) || empty(CPUFLAGS:M-mabi=32)) | | 206 | .if ${MACHINE_MIPS64} && (!defined(CPUFLAGS) || empty(CPUFLAGS:M-mabi=32)) |
207 | COMMON_SRCS+= s_nexttoward.c | | 207 | COMMON_SRCS+= s_nexttoward.c |
208 | .endif | | 208 | .endif |
209 | | | 209 | |
210 | .elif (${LIBC_MACHINE_CPU} == "sh3") | | 210 | .elif (${LIBC_MACHINE_CPU} == "sh3") |
211 | .PATH: ${.CURDIR}/arch/sh3 | | 211 | .PATH: ${.CURDIR}/arch/sh3 |
212 | .if ${MKSOFTFLOAT} == "no" | | 212 | .if ${MKSOFTFLOAT} == "no" |
213 | COMMON_SRCS += fenv.c | | 213 | COMMON_SRCS += fenv.c |
214 | .endif | | 214 | .endif |
215 | .endif | | 215 | .endif |
216 | # End of list of CPU tests | | 216 | # End of list of CPU tests |
217 | | | 217 | |
218 | WARNS?=5 | | 218 | WARNS?=5 |
219 | | | 219 | |
220 | .PATH: ${.CURDIR}/man | | 220 | .PATH: ${.CURDIR}/man |
221 | .PATH: ${.CURDIR}/src | | 221 | .PATH: ${.CURDIR}/src |
222 | .PATH: ${.CURDIR}/noieee_src | | 222 | .PATH: ${.CURDIR}/noieee_src |
223 | | | 223 | |
224 | .if (${LIBC_MACHINE_ARCH} == "alpha") | | 224 | .if (${LIBC_MACHINE_ARCH} == "alpha") |
225 | COPTS+= -mfp-rounding-mode=d | | 225 | COPTS+= -mfp-rounding-mode=d |
226 | .endif | | 226 | .endif |
227 | | | 227 | |
228 | .if (${LIBC_MACHINE_ARCH} != "vax") | | 228 | .if (${LIBC_MACHINE_ARCH} != "vax") |
229 | CPPFLAGS+= -D_MULTI_LIBM -D_POSIX_MODE | | 229 | CPPFLAGS+= -D_MULTI_LIBM -D_POSIX_MODE |
230 | # XXX noieee libm is gross | | 230 | # XXX noieee libm is gross |
231 | COPTS+= -fno-strict-aliasing | | 231 | COPTS+= -fno-strict-aliasing |
232 | .endif | | 232 | .endif |
233 | CPPFLAGS+=-DLIBM_SCCS | | 233 | CPPFLAGS+=-DLIBM_SCCS |
234 | | | 234 | |
235 | .if (${MKSOFTFLOAT} != "no" || ${MACHINE_ARCH} == "m68000") | | 235 | .if (${MKSOFTFLOAT} != "no" || ${MACHINE_ARCH} == "m68000") |
236 | .PATH: ${.CURDIR}/softfloat | | 236 | .PATH: ${.CURDIR}/softfloat |
237 | .include "${.CURDIR}/../libc/libcincludes.mk" | | 237 | .include "${.CURDIR}/../libc/libcincludes.mk" |
238 | CPPFLAGS+= -I${ARCHDIR}/softfloat | | 238 | CPPFLAGS+= -I${ARCHDIR}/softfloat |
239 | COMMON_SRCS += \ | | 239 | COMMON_SRCS += \ |
240 | feclearexcept.c \ | | 240 | feclearexcept.c \ |
241 | fedisableexcept.c \ | | 241 | fedisableexcept.c \ |
242 | feenableexcept.c \ | | 242 | feenableexcept.c \ |
243 | fegetenv.c \ | | 243 | fegetenv.c \ |
244 | fegetexcept.c \ | | 244 | fegetexcept.c \ |
245 | fegetexceptflag.c \ | | 245 | fegetexceptflag.c \ |
246 | fegetround.c \ | | 246 | fegetround.c \ |
247 | feholdexcept.c \ | | 247 | feholdexcept.c \ |
248 | feraiseexcept.c \ | | 248 | feraiseexcept.c \ |
249 | fesetenv.c \ | | 249 | fesetenv.c \ |
250 | fesetexceptflag.c \ | | 250 | fesetexceptflag.c \ |
251 | fesetround.c \ | | 251 | fesetround.c \ |
252 | fetestexcept.c \ | | 252 | fetestexcept.c \ |
253 | feupdateenv.c | | 253 | feupdateenv.c |
254 | .endif | | 254 | .endif |
255 | | | 255 | |
256 | LIB= m | | 256 | LIB= m |
257 | COMMON_SRCS+= b_exp.c b_log.c b_tgamma.c \ | | 257 | COMMON_SRCS+= b_exp.c b_log.c b_tgamma.c \ |
258 | e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \ | | 258 | e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \ |
259 | e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \ | | 259 | e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \ |
260 | e_expf.c e_fmod.c e_fmodf.c e_fmodl.c e_hypot.c e_hypotf.c \ | | 260 | e_expf.c e_fmod.c e_fmodf.c e_fmodl.c e_hypot.c e_hypotf.c \ |
261 | e_j0.c e_j0f.c \ | | 261 | e_j0.c e_j0f.c \ |
262 | e_j1.c e_j1f.c e_jn.c e_jnf.c e_lgamma_r.c e_lgammaf_r.c e_log.c \ | | 262 | e_j1.c e_j1f.c e_jn.c e_jnf.c e_lgamma_r.c e_lgammaf_r.c e_log.c \ |
263 | e_log2.c e_log10.c e_log10f.c e_log2f.c e_logf.c e_pow.c e_powf.c \ | | 263 | e_log2.c e_log10.c e_log10f.c e_log2f.c e_logf.c e_pow.c e_powf.c \ |
264 | e_rem_pio2.c e_rem_pio2f.c e_remainder.c e_remainderf.c e_scalb.c \ | | 264 | e_rem_pio2.c e_rem_pio2f.c e_remainder.c e_remainderf.c e_scalb.c \ |
265 | e_scalbf.c e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c e_sqrtl.c \ | | 265 | e_scalbf.c e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c e_sqrtl.c \ |
266 | k_cos.c k_cosf.c k_rem_pio2.c k_rem_pio2f.c k_sin.c k_sinf.c \ | | 266 | k_cos.c k_cosf.c k_rem_pio2.c k_rem_pio2f.c k_sin.c k_sinf.c \ |
267 | k_standard.c k_tan.c k_tanf.c \ | | 267 | k_standard.c k_tan.c k_tanf.c \ |
268 | ldbl_dummy.c \ | | 268 | ldbl_dummy.c \ |
269 | s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_cbrt.c s_cbrtf.c s_cbrtl.c \ | | 269 | s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_cbrt.c s_cbrtf.c s_cbrtl.c \ |
270 | s_ceil.c s_ceilf.c s_ceill.c s_copysign.c s_copysignf.c s_copysignl.c \ | | 270 | s_ceil.c s_ceilf.c s_ceill.c s_copysign.c s_copysignf.c s_copysignl.c \ |
271 | s_cos.c s_cosf.c s_erf.c \ | | 271 | s_cos.c s_cosf.c s_erf.c \ |
272 | s_erff.c s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabsf.c s_fabsl.c \ | | 272 | s_erff.c s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabsf.c s_fabsl.c \ |
273 | s_finite.c s_finitef.c \ | | 273 | s_finite.c s_finitef.c \ |
274 | s_floor.c s_floorf.c s_floorl.c s_frexpf.c \ | | 274 | s_floor.c s_floorf.c s_floorl.c s_frexpf.c \ |
275 | s_ilogb.c s_ilogbf.c s_ilogbl.c \ | | 275 | s_ilogb.c s_ilogbf.c s_ilogbl.c \ |
276 | s_isinff.c s_isnanf.c s_lib_version.c s_log1p.c \ | | 276 | s_isinff.c s_isnanf.c s_lib_version.c s_log1p.c \ |
277 | s_llrint.c s_llrintf.c s_llrintl.c \ | | 277 | s_llrint.c s_llrintf.c s_llrintl.c \ |
278 | s_llround.c s_llroundf.c s_llroundl.c \ | | 278 | s_llround.c s_llroundf.c s_llroundl.c \ |
279 | s_lrint.c s_lrintf.c s_lrintl.c \ | | 279 | s_lrint.c s_lrintf.c s_lrintl.c \ |
280 | s_lround.c s_lroundf.c s_lroundl.c \ | | 280 | s_lround.c s_lroundf.c s_lroundl.c \ |
281 | s_log1pf.c s_logb.c s_logbf.c s_logbl.c \ | | 281 | s_log1pf.c s_logb.c s_logbf.c s_logbl.c \ |
282 | s_matherr.c s_modff.c s_modfl.c s_nearbyint.c s_nextafter.c s_nextafterl.c \ | | 282 | s_matherr.c s_modff.c s_modfl.c s_nearbyint.c s_nextafter.c s_nextafterl.c \ |
283 | s_nextafterf.c s_nexttowardf.c s_remquo.c s_remquof.c s_rint.c s_rintf.c \ | | 283 | s_nextafterf.c s_nexttowardf.c s_remquo.c s_remquof.c s_rint.c s_rintf.c \ |
284 | s_round.c s_roundf.c s_roundl.c s_scalbn.c \ | | 284 | s_round.c s_roundf.c s_roundl.c s_scalbn.c \ |
285 | s_scalbnf.c s_scalbnl.c s_signgam.c s_significand.c s_significandf.c \ | | 285 | s_scalbnf.c s_scalbnl.c s_signgam.c s_significand.c s_significandf.c \ |
286 | s_sincos.c s_sincosf.c s_sincosl.c s_sin.c \ | | 286 | s_sincos.c s_sincosf.c s_sincosl.c s_sin.c \ |
287 | s_sinf.c s_tan.c s_tanf.c s_tanh.c s_tanhf.c s_tgammaf.c \ | | 287 | s_sinf.c s_tan.c s_tanf.c s_tanh.c s_tanhf.c s_tgammaf.c \ |
288 | s_trunc.c s_truncf.c s_truncl.c \ | | 288 | s_trunc.c s_truncf.c s_truncl.c \ |
289 | w_acos.c w_acosf.c w_acosh.c w_acoshf.c w_asin.c w_asinf.c w_atan2.c \ | | 289 | w_acos.c w_acosf.c w_acosh.c w_acoshf.c w_asin.c w_asinf.c w_atan2.c \ |
290 | w_atan2f.c w_atanh.c w_atanhf.c w_cosh.c w_coshf.c \ | | 290 | w_atan2f.c w_atanh.c w_atanhf.c w_cosh.c w_coshf.c \ |
291 | w_drem.c w_dremf.c w_exp.c w_expf.c w_fmod.c w_fmodf.c w_fmodl.c \ | | 291 | w_drem.c w_dremf.c w_exp.c w_expf.c w_fmod.c w_fmodf.c w_fmodl.c \ |
292 | w_gamma.c w_gamma_r.c w_gammaf.c w_gammaf_r.c w_hypot.c w_hypotf.c \ | | 292 | w_gamma.c w_gamma_r.c w_gammaf.c w_gammaf_r.c w_hypot.c w_hypotf.c \ |
293 | w_j0.c \ | | 293 | w_j0.c \ |
294 | w_j0f.c w_j1.c w_j1f.c w_jn.c w_jnf.c w_lgamma.c w_lgamma_r.c \ | | 294 | w_j0f.c w_j1.c w_j1f.c w_jn.c w_jnf.c w_lgamma.c w_lgamma_r.c \ |
295 | w_lgammaf.c w_lgammaf_r.c w_log.c w_log10.c w_log10f.c w_log2.c \ | | 295 | w_lgammaf.c w_lgammaf_r.c w_log.c w_log10.c w_log10f.c w_log2.c \ |
296 | w_log2f.c w_logf.c \ | | 296 | w_log2f.c w_logf.c \ |
297 | w_pow.c w_powf.c w_remainder.c w_remainderf.c w_scalb.c w_scalbf.c \ | | 297 | w_pow.c w_powf.c w_remainder.c w_remainderf.c w_scalb.c w_scalbf.c \ |
298 | w_sinh.c w_sinhf.c w_sqrt.c w_sqrtf.c w_sqrtl.c \ | | 298 | w_sinh.c w_sinhf.c w_sqrt.c w_sqrtf.c w_sqrtl.c \ |
299 | s_frexp.c s_frexpl.c s_modf.c \ | | 299 | s_frexp.c s_frexpl.c s_modf.c \ |
300 | s_fmax.c s_fmaxf.c s_fmaxl.c \ | | 300 | s_fmax.c s_fmaxf.c s_fmaxl.c \ |
301 | s_fmin.c s_fminf.c s_fminl.c s_fdim.c | | 301 | s_fmin.c s_fminf.c s_fminl.c s_fdim.c |
302 | | | 302 | |
303 | .PATH: ${.CURDIR}/compat | | 303 | .PATH: ${.CURDIR}/compat |
304 | COMMON_SRCS+= compat_cabs.c compat_cabsf.c | | 304 | COMMON_SRCS+= compat_cabs.c compat_cabsf.c |
305 | # XXX our compatibility cabs() is different! | | 305 | # XXX our compatibility cabs() is different! |
306 | COPTS.compat_cabs.c= ${${ACTIVE_CC} == "gcc":? -fno-builtin-cabs :} | | 306 | COPTS.compat_cabs.c= ${${ACTIVE_CC} == "gcc":? -fno-builtin-cabs :} |
307 | COPTS.compat_cabsf.c= ${${ACTIVE_CC} == "gcc":? -fno-builtin-cabsf :} | | 307 | COPTS.compat_cabsf.c= ${${ACTIVE_CC} == "gcc":? -fno-builtin-cabsf :} |
308 | | | 308 | |
309 | # math routines for non-IEEE architectures. | | 309 | # math routines for non-IEEE architectures. |
310 | NOIEEE_SRCS = n_asincos.c n_acosh.c n_asinh.c n_atan.c n_atanh.c n_atanhf.c \ | | 310 | NOIEEE_SRCS = n_asincos.c n_acosh.c n_asinh.c n_atan.c n_atanh.c n_atanhf.c \ |
311 | n_cosh.c \ | | 311 | n_cosh.c \ |
312 | n_erf.c n_exp.c n_exp2.c n_exp2f.c n_exp__E.c n_expm1.c n_floor.c \ | | 312 | n_erf.c n_exp.c n_exp2.c n_exp2f.c n_exp__E.c n_expm1.c n_floor.c \ |
313 | n_fmod.c n_gamma.c n_ilogb.c \ | | 313 | n_fmod.c n_gamma.c n_ilogb.c \ |
314 | n_lgamma.c n_j0.c n_j1.c n_jn.c n_log.c n_log10.c n_log1p.c \ | | 314 | n_lgamma.c n_j0.c n_j1.c n_jn.c n_log.c n_log10.c n_log1p.c \ |
315 | n_log2.c n_log__L.c n_pow.c n_sinh.c n_tanh.c \ | | 315 | n_log2.c n_log__L.c n_pow.c n_sinh.c n_tanh.c \ |
316 | n_sincos.c n_sincos1.c n_tan.c \ | | 316 | n_sincos.c n_sincos1.c n_tan.c \ |
317 | n_round.c n_roundf.c n_lround.c n_lroundf.c \ | | 317 | n_round.c n_roundf.c n_lround.c n_lroundf.c \ |
318 | n_fmax.c n_fmaxf.c n_fmin.c n_fminf.c | | 318 | n_fmax.c n_fmaxf.c n_fmin.c n_fminf.c |
319 | # n_sqrt.c n_argred.c n_infnan.c n_atan2.c n_cabs.c n_cbrt.c n_support.c | | 319 | # n_sqrt.c n_argred.c n_infnan.c n_atan2.c n_cabs.c n_cbrt.c n_support.c |
320 | | | 320 | |
321 | | | 321 | |
322 | # NetBSD's C library supplies these functions: | | 322 | # NetBSD's C library supplies these functions: |
323 | #COMMON_SRCS+= s_fabs.c s_frexp.c s_isinf.c s_isnan.c s_ldexp.c s_modf.c | | 323 | #COMMON_SRCS+= s_fabs.c s_frexp.c s_isinf.c s_isnan.c s_ldexp.c s_modf.c |
324 | | | 324 | |
325 | .if (${LIBC_MACHINE_ARCH} == "vax") | | 325 | .if (${LIBC_MACHINE_ARCH} == "vax") |
326 | SRCS= ${NOIEEE_SRCS} ${NOIEEE_ARCH} | | 326 | SRCS= ${NOIEEE_SRCS} ${NOIEEE_ARCH} |
327 | .else | | 327 | .else |
328 | SRCS= ${COMMON_SRCS} | | 328 | SRCS= ${COMMON_SRCS} |
329 | .endif | | 329 | .endif |
330 | | | 330 | |
331 | .ifdef ARCH_ADDS | | 331 | .ifdef ARCH_ADDS |
332 | SRCS+= ${ARCH_ADDS} | | 332 | SRCS+= ${ARCH_ADDS} |
333 | .endif | | 333 | .endif |
334 | | | 334 | |
335 | # Substitute common sources with any arch specific sources | | 335 | # Substitute common sources with any arch specific sources |
336 | .for i in ${ARCH_SRCS} ${NOIEEE_ARCH} | | 336 | .for i in ${ARCH_SRCS} ${NOIEEE_ARCH} |
337 | SRCS:=${SRCS:S/^${i:S/.S/.c/}/$i/} | | 337 | SRCS:=${SRCS:S/^${i:S/.S/.c/}/$i/} |
338 | .endfor | | 338 | .endfor |
339 | | | 339 | |
340 | .if (${LIBC_MACHINE_ARCH} == "vax") # XXX until POLYD is written. | | 340 | .if (${LIBC_MACHINE_ARCH} == "vax") # XXX until POLYD is written. |
341 | .PATH: ${.CURDIR}/arch/vax | | 341 | .PATH: ${.CURDIR}/arch/vax |
342 | SRCS:=${SRCS} n_sqrt.S n_argred.S n_infnan.S n_atan2.S n_cabs.S n_cbrt.S \ | | 342 | SRCS:=${SRCS} n_sqrt.S n_argred.S n_infnan.S n_atan2.S n_cabs.S n_cbrt.S \ |
343 | n_support.S n_scalbn.S | | 343 | n_support.S n_scalbn.S |
344 | .endif | | 344 | .endif |
345 | | | 345 | |
346 | .if (${LIBC_MACHINE_ARCH} == "i386") | | 346 | .if (${LIBC_MACHINE_ARCH} == "i386") |
347 | # XXX this gets miscompiled. There should be a better fix. | | 347 | # XXX this gets miscompiled. There should be a better fix. |
348 | COPTS.s_tanh.c+= -O0 | | 348 | COPTS.s_tanh.c+= -O0 |
349 | .endif | | 349 | .endif |
350 | | | 350 | |
351 | MAN+= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 \ | | 351 | MAN+= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 \ |
352 | ceil.3 copysign.3 cos.3 cosh.3 \ | | 352 | ceil.3 copysign.3 cos.3 cosh.3 \ |
353 | erf.3 exp.3 \ | | 353 | erf.3 exp.3 \ |
354 | fabs.3 finite.3 fma.3 fmod.3 frexp.3 hypot.3 \ | | 354 | fabs.3 finite.3 fma.3 fmod.3 frexp.3 hypot.3 \ |
355 | ieee_test.3 ilogb.3 isinff.3 j0.3 ldexp.3 lgamma.3 log.3 lrint.3 \ | | 355 | ieee_test.3 ilogb.3 isinff.3 j0.3 ldexp.3 lgamma.3 log.3 lrint.3 \ |
356 | math.3 modf.3 nextafter.3 pow.3 \ | | 356 | math.3 modf.3 nextafter.3 pow.3 \ |
357 | remainder.3 rint.3 round.3 \ | | 357 | remainder.3 rint.3 round.3 \ |
358 | scalbn.3 sincos.3 sin.3 sinh.3 sqrt.3 \ | | 358 | scalbn.3 sincos.3 sin.3 sinh.3 sqrt.3 \ |
359 | tan.3 tanh.3 trunc.3 fmax.3 fdim.3 | | 359 | tan.3 tanh.3 trunc.3 fmax.3 fdim.3 |
360 | | | 360 | |
361 | # fenv.h interface | | 361 | # fenv.h interface |
362 | MAN+= feclearexcept.3 feenableexcept.3 fegetenv.3 fegetround.3 fenv.3 | | 362 | MAN+= feclearexcept.3 feenableexcept.3 fegetenv.3 fegetround.3 fenv.3 |
363 | MLINKS+=feclearexcept.3 fegetexceptflag.3 \ | | 363 | MLINKS+=feclearexcept.3 fegetexceptflag.3 \ |
364 | feclearexcept.3 feraiseexcept.3 \ | | 364 | feclearexcept.3 feraiseexcept.3 \ |
365 | feclearexcept.3 fesetexceptflag.3 \ | | 365 | feclearexcept.3 fesetexceptflag.3 \ |
366 | feclearexcept.3 fetestexcept.3 | | 366 | feclearexcept.3 fetestexcept.3 |
367 | MLINKS+=feenableexcept.3 fedisableexcept.3 \ | | 367 | MLINKS+=feenableexcept.3 fedisableexcept.3 \ |
368 | feenableexcept.3 fegetexcept.3 | | 368 | feenableexcept.3 fegetexcept.3 |
369 | MLINKS+=fegetenv.3 feholdexcept.3 \ | | 369 | MLINKS+=fegetenv.3 feholdexcept.3 \ |
370 | fegetenv.3 fesetenv.3 \ | | 370 | fegetenv.3 fesetenv.3 \ |
371 | fegetenv.3 feupdateenv.3 | | 371 | fegetenv.3 feupdateenv.3 |
372 | MLINKS+=fegetround.3 fesetround.3 | | 372 | MLINKS+=fegetround.3 fesetround.3 |
373 | | | 373 | |
374 | MLINKS+=acos.3 acosf.3 | | 374 | MLINKS+=acos.3 acosf.3 |
375 | MLINKS+=acosh.3 acoshf.3 | | 375 | MLINKS+=acosh.3 acoshf.3 |
376 | MLINKS+=asin.3 asinf.3 | | 376 | MLINKS+=asin.3 asinf.3 |
377 | MLINKS+=asinh.3 asinhf.3 | | 377 | MLINKS+=asinh.3 asinhf.3 |
378 | MLINKS+=atan.3 atanf.3 | | 378 | MLINKS+=atan.3 atanf.3 |
379 | MLINKS+=atan2.3 atan2f.3 | | 379 | MLINKS+=atan2.3 atan2f.3 |
380 | MLINKS+=atanh.3 atanhf.3 | | 380 | MLINKS+=atanh.3 atanhf.3 |
381 | MLINKS+=ceil.3 ceilf.3 \ | | 381 | MLINKS+=ceil.3 ceilf.3 \ |
382 | ceil.3 ceill.3 \ | | 382 | ceil.3 ceill.3 \ |
383 | ceil.3 floor.3 \ | | 383 | ceil.3 floor.3 \ |
384 | ceil.3 floorf.3 \ | | 384 | ceil.3 floorf.3 \ |
385 | ceil.3 floorl.3 | | 385 | ceil.3 floorl.3 |
386 | MLINKS+=copysign.3 copysignf.3 \ | | 386 | MLINKS+=copysign.3 copysignf.3 \ |
387 | copysign.3 copysignl.3 | | 387 | copysign.3 copysignl.3 |
388 | MLINKS+=cos.3 cosf.3 | | 388 | MLINKS+=cos.3 cosf.3 |
389 | MLINKS+=cos.3 cosl.3 | | 389 | MLINKS+=cos.3 cosl.3 |
390 | MLINKS+=cosh.3 coshf.3 | | 390 | MLINKS+=cosh.3 coshf.3 |
391 | MLINKS+=erf.3 erff.3 \ | | 391 | MLINKS+=erf.3 erff.3 \ |
392 | erf.3 erfl.3 \ | | 392 | erf.3 erfl.3 \ |
393 | erf.3 erfc.3 \ | | 393 | erf.3 erfc.3 \ |
394 | erf.3 erfcf.3 \ | | 394 | erf.3 erfcf.3 \ |
395 | erf.3 erfcl.3 | | 395 | erf.3 erfcl.3 |
396 | MLINKS+=exp.3 expf.3 exp.3 expm1.3 exp.3 expm1f.3 \ | | 396 | MLINKS+=exp.3 expf.3 exp.3 expm1.3 exp.3 expm1f.3 \ |
397 | exp.3 exp2.3 exp.3 exp2f.3 | | 397 | exp.3 exp2.3 exp.3 exp2f.3 |
398 | MLINKS+=log.3 logf.3 \ | | 398 | MLINKS+=log.3 logf.3 \ |
399 | log.3 log10.3 \ | | 399 | log.3 log10.3 \ |
400 | log.3 log10f.3 \ | | 400 | log.3 log10f.3 \ |
401 | log.3 log1p.3 \ | | 401 | log.3 log1p.3 \ |
402 | log.3 log1pf.3 \ | | 402 | log.3 log1pf.3 \ |
403 | log.3 log2.3 \ | | 403 | log.3 log2.3 \ |
404 | log.3 log2f.3 | | 404 | log.3 log2f.3 |
405 | MLINKS+=pow.3 powf.3 | | 405 | MLINKS+=pow.3 powf.3 |
406 | MLINKS+=fabs.3 fabsf.3 \ | | 406 | MLINKS+=fabs.3 fabsf.3 \ |
407 | fabs.3 fabsl.3 | | 407 | fabs.3 fabsl.3 |
408 | MLINKS+=finite.3 finitef.3 | | 408 | MLINKS+=finite.3 finitef.3 |
409 | MLINKS+=fmod.3 fmodf.3 \ | | 409 | MLINKS+=fmod.3 fmodf.3 \ |
410 | fmod.3 fmodl.3 | | 410 | fmod.3 fmodl.3 |
411 | MLINKS+=hypot.3 hypotf.3 \ | | 411 | MLINKS+=hypot.3 hypotf.3 \ |
412 | hypot.3 hypotl.3 | | 412 | hypot.3 hypotl.3 |
413 | MLINKS+=ieee_test.3 logb.3 ieee_test.3 logbf.3 ieee_test.3 logbl.3 | | 413 | MLINKS+=ieee_test.3 logb.3 ieee_test.3 logbf.3 ieee_test.3 logbl.3 |
414 | MLINKS+=ieee_test.3 scalb.3 ieee_test.3 scalbf.3 | | 414 | MLINKS+=ieee_test.3 scalb.3 ieee_test.3 scalbf.3 |
415 | MLINKS+=ieee_test.3 significand.3 ieee_test.3 significandf.3 | | 415 | MLINKS+=ieee_test.3 significand.3 ieee_test.3 significandf.3 |
416 | MLINKS+=ilogb.3 ilogbf.3 ilogb.3 ilogbl.3 | | 416 | MLINKS+=ilogb.3 ilogbf.3 ilogb.3 ilogbl.3 |
417 | MLINKS+=isinff.3 isnanf.3 | | 417 | MLINKS+=isinff.3 isnanf.3 |
418 | MLINKS+=j0.3 j0f.3 j0.3 j1.3 j0.3 j1f.3 j0.3 jn.3 j0.3 jnf.3 \ | | 418 | MLINKS+=j0.3 j0f.3 j0.3 j1.3 j0.3 j1f.3 j0.3 jn.3 j0.3 jnf.3 \ |
419 | j0.3 y0.3 j0.3 y0f.3 j0.3 y1.3 j0.3 y1f.3 j0.3 yn.3 j0.3 ynf.3 | | 419 | j0.3 y0.3 j0.3 y0f.3 j0.3 y1.3 j0.3 y1f.3 j0.3 yn.3 j0.3 ynf.3 |
420 | MLINKS+=ldexp.3 ldexpf.3 \ | | 420 | MLINKS+=ldexp.3 ldexpf.3 \ |
421 | ldexp.3 ldexpl.3 | | 421 | ldexp.3 ldexpl.3 |
422 | MLINKS+=lgamma.3 lgammaf.3 lgamma.3 lgamma_r.3 lgamma.3 lgammaf_r.3 \ | | 422 | MLINKS+=lgamma.3 lgammaf.3 lgamma.3 lgamma_r.3 lgamma.3 lgammaf_r.3 \ |
423 | lgamma.3 gamma.3 lgamma.3 gammaf.3 lgamma.3 gamma_r.3 \ | | 423 | lgamma.3 gamma.3 lgamma.3 gammaf.3 lgamma.3 gamma_r.3 \ |
424 | lgamma.3 gammaf_r.3 lgamma.3 tgamma.3 lgamma.3 tgammaf.3 | | 424 | lgamma.3 gammaf_r.3 lgamma.3 tgamma.3 lgamma.3 tgammaf.3 |
425 | MLINKS+=modf.3 modff.3 \ | | 425 | MLINKS+=modf.3 modff.3 \ |
426 | modf.3 modfl.3 | | 426 | modf.3 modfl.3 |
427 | MLINKS+=nextafter.3 nextafterf.3 \ | | 427 | MLINKS+=nextafter.3 nextafterf.3 \ |
428 | nextafter.3 nextafterl.3 \ | | 428 | nextafter.3 nextafterl.3 \ |
429 | nextafter.3 nexttoward.3 \ | | 429 | nextafter.3 nexttoward.3 \ |
430 | nextafter.3 nexttowardf.3 \ | | 430 | nextafter.3 nexttowardf.3 \ |
431 | nextafter.3 nexttowardl.3 | | 431 | nextafter.3 nexttowardl.3 |
432 | MLINKS+=lrint.3 lrintf.3 lrint.3 llrint.3 lrint.3 llrintf.3 | | 432 | MLINKS+=lrint.3 lrintf.3 lrint.3 llrint.3 lrint.3 llrintf.3 |
433 | MLINKS+=remainder.3 remainderf.3 \ | | 433 | MLINKS+=remainder.3 remainderf.3 \ |
434 | remainder.3 remquo.3 \ | | 434 | remainder.3 remquo.3 \ |
435 | remainder.3 remquof.3 | | 435 | remainder.3 remquof.3 |
436 | MLINKS+=rint.3 rintf.3 \ | | 436 | MLINKS+=rint.3 rintf.3 \ |
437 | rint.3 rintl.3 \ | | 437 | rint.3 rintl.3 \ |
438 | rint.3 nearbyint.3 \ | | 438 | rint.3 nearbyint.3 \ |
439 | rint.3 nearbyintf.3 \ | | 439 | rint.3 nearbyintf.3 \ |
440 | rint.3 nearbyintl.3 | | 440 | rint.3 nearbyintl.3 |
441 | MLINKS+=scalbn.3 scalbnf.3 \ | | 441 | MLINKS+=scalbn.3 scalbnf.3 \ |
442 | scalbn.3 scalbnl.3 | | 442 | scalbn.3 scalbnl.3 |
443 | MLINKS+=sin.3 sinf.3 | | 443 | MLINKS+=sin.3 sinf.3 |
444 | MLINKS+=sin.3 sinhf.3 | | 444 | MLINKS+=sin.3 sinhf.3 |
445 | MLINKS+=sqrt.3 sqrtf.3 sqrt.3 sqrtl.3 \ | | 445 | MLINKS+=sqrt.3 sqrtf.3 sqrt.3 sqrtl.3 \ |
446 | sqrt.3 cbrt.3 sqrt.3 cbrtf.3 sqrt.3 cbrtl.3 | | 446 | sqrt.3 cbrt.3 sqrt.3 cbrtf.3 sqrt.3 cbrtl.3 |
447 | MLINKS+=tan.3 tanf.3 | | 447 | MLINKS+=tan.3 tanf.3 |
448 | MLINKS+=tanh.3 tanhf.3 | | 448 | MLINKS+=tanh.3 tanhf.3 |
449 | MLINKS+=round.3 roundf.3 \ | | 449 | MLINKS+=round.3 roundf.3 \ |
450 | round.3 roundl.3 | | 450 | round.3 roundl.3 |
451 | MLINKS+=trunc.3 truncf.3 \ | | 451 | MLINKS+=trunc.3 truncf.3 \ |
452 | trunc.3 truncl.3 | | 452 | trunc.3 truncl.3 |
453 | MLINKS+=fmax.3 fmaxl.3 | | 453 | MLINKS+=fmax.3 fmaxl.3 |
454 | MLINKS+=fmax.3 fmaxf.3 | | 454 | MLINKS+=fmax.3 fmaxf.3 |
455 | MLINKS+=fmax.3 fmin.3 | | 455 | MLINKS+=fmax.3 fmin.3 |
456 | MLINKS+=fmax.3 fminl.3 | | 456 | MLINKS+=fmax.3 fminl.3 |
457 | MLINKS+=fmax.3 fminf.3 | | 457 | MLINKS+=fmax.3 fminf.3 |
458 | MLINKS+=fdim.3 fdiml.3 | | 458 | MLINKS+=fdim.3 fdiml.3 |
459 | MLINKS+=fdim.3 fdimf.3 | | 459 | MLINKS+=fdim.3 fdimf.3 |
460 | MLINKS+=fma.3 fmaf.3 \ | | 460 | MLINKS+=fma.3 fmaf.3 \ |
461 | fma.3 fmal.3 | | 461 | fma.3 fmal.3 |
462 | MLINKS+=frexp.3 frexpf.3 \ | | 462 | MLINKS+=frexp.3 frexpf.3 \ |
463 | frexp.3 frexpl.3 | | 463 | frexp.3 frexpl.3 |
464 | | | 464 | |
465 | .if (${MKCOMPLEX} != "no") | | 465 | .if (${MKCOMPLEX} != "no") |
466 | .include "${.CURDIR}/complex/Makefile.inc" | | 466 | .include "${.CURDIR}/complex/Makefile.inc" |
467 | .endif | | 467 | .endif |
468 | | | 468 | |
469 | COPTS.compat_cabs.c+= ${${ACTIVE_CC} == "clang":? -Wno-incompatible-library-redeclaration :} | | 469 | COPTS.compat_cabs.c+= ${${ACTIVE_CC} == "clang":? -Wno-incompatible-library-redeclaration :} |
470 | COPTS.compat_cabsf.c+= ${${ACTIVE_CC} == "clang":? -Wno-incompatible-library-redeclaration :} | | 470 | COPTS.compat_cabsf.c+= ${${ACTIVE_CC} == "clang":? -Wno-incompatible-library-redeclaration :} |
471 | CWARNFLAGS.clang+= -Wno-error=implicit-int-float-conversion | | 471 | CWARNFLAGS.clang+= -Wno-error=implicit-int-float-conversion |
472 | | | 472 | |
473 | .include "${.CURDIR}/compiler_rt/Makefile.inc" | | 473 | .include "${.CURDIR}/compiler_rt/Makefile.inc" |
474 | .include "${.CURDIR}/gen/Makefile.inc" | | 474 | .include "${.CURDIR}/gen/Makefile.inc" |
475 | | | 475 | |
476 | .include <bsd.lib.mk> | | 476 | .include <bsd.lib.mk> |
477 | .include <bsd.subdir.mk> | | 477 | .include <bsd.subdir.mk> |