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