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