1 #
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright 2011 Nexenta Systems, Inc. All rights reserved.
14 #
15
16 LIBMDIR = $(SRC)/lib/libm
17
18 mvecOBJS = \
19 __vTBL_atan1.o \
20 __vTBL_atan2.o \
21 __vTBL_rsqrt.o \
22 __vTBL_sincos.o \
23 __vTBL_sincos2.o \
24 __vTBL_sqrtf.o \
25 __vatan.o \
26 __vatan2.o \
27 __vatan2f.o \
28 __vatanf.o \
29 __vc_abs.o \
30 __vc_exp.o \
31 __vc_log.o \
32 __vc_pow.o \
33 __vcos.o \
34 __vcosbig.o \
35 __vcosbigf.o \
36 __vcosf.o \
37 __vexp.o \
38 __vexpf.o \
39 __vhypot.o \
40 __vhypotf.o \
41 __vlog.o \
42 __vlogf.o \
43 __vpow.o \
44 __vpowf.o \
45 __vrem_pio2m.o \
46 __vrhypot.o \
47 __vrhypotf.o \
48 __vrsqrt.o \
49 __vrsqrtf.o \
50 __vsin.o \
51 __vsinbig.o \
52 __vsinbigf.o \
53 __vsincos.o \
54 __vsincosbig.o \
55 __vsincosbigf.o \
56 __vsincosf.o \
57 __vsinf.o \
58 __vsqrt.o \
59 __vsqrtf.o \
60 __vz_abs.o \
61 __vz_exp.o \
62 __vz_log.o \
63 __vz_pow.o \
64 vatan2_.o \
65 vatan2f_.o \
66 vatan_.o \
67 vatanf_.o \
68 vc_abs_.o \
69 vc_exp_.o \
70 vc_log_.o \
71 vc_pow_.o \
72 vcos_.o \
73 vcosf_.o \
74 vexp_.o \
75 vexpf_.o \
76 vhypot_.o \
77 vhypotf_.o \
78 vlog_.o \
79 vlogf_.o \
80 vpow_.o \
81 vpowf_.o \
82 vrhypot_.o \
83 vrhypotf_.o \
84 vrsqrt_.o \
85 vrsqrtf_.o \
86 vsin_.o \
87 vsincos_.o \
88 vsincosf_.o \
89 vsinf_.o \
90 vsqrt_.o \
91 vsqrtf_.o \
92 vz_abs_.o \
93 vz_exp_.o \
94 vz_log_.o \
95 vz_pow_.o \
96 #end
97
98 mvecvisCOBJS = \
99 __vTBL_atan1.o \
100 __vTBL_atan2.o \
101 __vTBL_rsqrt.o \
102 __vTBL_sincos.o \
103 __vTBL_sincos2.o \
104 __vTBL_sqrtf.o \
105 __vcosbig.o \
106 __vcosbigf.o \
107 __vrem_pio2m.o \
108 __vsinbig.o \
109 __vsinbigf.o \
110 __vsincosbig.o \
111 __vsincosbigf.o \
112 #end
113
114 mvecvisSOBJS = \
115 __vatan.o \
116 __vatan2.o \
117 __vatan2f.o \
118 __vatanf.o \
119 __vcos.o \
120 __vcosf.o \
121 __vexp.o \
122 __vexpf.o \
123 __vhypot.o \
124 __vhypotf.o \
125 __vlog.o \
126 __vlogf.o \
127 __vpow.o \
128 __vpowf.o \
129 __vrhypot.o \
130 __vrhypotf.o \
131 __vrsqrt.o \
132 __vrsqrtf.o \
133 __vsin.o \
134 __vsincos.o \
135 __vsincosf.o \
136 __vsinf.o \
137 __vsqrt.o \
138 __vsqrtf.o \
139 #end
140
141 mvecvis2COBJS = \
142 __vTBL_sincos.o \
143 __vTBL_sincos2.o \
144 __vTBL_sqrtf.o \
145 __vcosbig.o \
146 __vcosbig_ultra3.o \
147 __vrem_pio2m.o \
148 __vsinbig.o \
149 __vsinbig_ultra3.o \
150 #end
151
152 mvecvis2SOBJS = \
153 __vcos_ultra3.o \
154 __vlog_ultra3.o \
155 __vsin_ultra3.o \
156 __vsqrtf_ultra3.o \
157 #end
158
159 include $(SRC)/lib/Makefile.lib
160 include $(SRC)/lib/Makefile.rootfs
161 include $(LIBMDIR)/Makefile.libm.com
162
163 LIBS = $(DYNLIB)
164 SRCDIR = ../common/
165 DYNFLAGS += -zignore
166
167 LINTERROFF = -erroff=E_FP_DIVISION_BY_ZERO
168 LINTERROFF += -erroff=E_FP_INVALID
169 LINTERROFF += -erroff=E_BAD_PTR_CAST_ALIGN
170 LINTERROFF += -erroff=E_ASSIGMENT_CAUSE_LOSS_PREC
171 LINTERROFF += -erroff=E_FUNC_SET_NOT_USED
172
173 LINTFLAGS += $(LINTERROFF)
174 LINTFLAGS64 += $(LINTERROFF)
175 LINTFLAGS64 += -errchk=longptr64
176
177 CLAGS += $(LINTERROFF)
178 CFLAGS64 += $(LINTERROFF)
179
180 ASDEF += -DLIBMVEC_SO_BUILD
181
182 FLTRPATH_sparc = $$ORIGIN/cpu/$$ISALIST/libmvec_isa.so.1
183 FLTRPATH_sparcv9 = $$ORIGIN/../cpu/$$ISALIST/sparcv9/libmvec_isa.so.1
184 FLTRPATH_i386 = $$ORIGIN/libmvec/$$HWCAP
185 FLTRPATH = $(FLTRPATH_$(TARGET_ARCH))
186
187 sparc_CFLAGS += -_cc=-W0,-xintrinsic
188 sparcv9_CFLAGS += -_cc=-W0,-xintrinsic
189 CPPFLAGS_i386 += -Dfabs=__fabs
190
191 CPPFLAGS += -DLIBMVEC_SO_BUILD
192
193 SRCS_mvec_i386 = \
194 ../common/__vsqrtf.c \
195 #end
196
197 SRCS_mvec_sparc = \
198 $(SRCS_mvec_i386) \
199 #end
200 SRCS_mvec_sparcv9 = \
201 $(SRCS_mvec_i386) \
202 #end
203
204 SRCS_mvec = \
205 $(SRCS_mvec_$(TARGETMACH)) \
206 ../common/__vTBL_atan1.c \
207 ../common/__vTBL_atan2.c \
208 ../common/__vTBL_rsqrt.c \
209 ../common/__vTBL_sincos.c \
210 ../common/__vTBL_sincos2.c \
211 ../common/__vTBL_sqrtf.c \
212 ../common/__vatan.c \
213 ../common/__vatan2.c \
214 ../common/__vatan2f.c \
215 ../common/__vatanf.c \
216 ../common/__vc_abs.c \
217 ../common/__vc_exp.c \
218 ../common/__vc_log.c \
219 ../common/__vc_pow.c \
220 ../common/__vcos.c \
221 ../common/__vcosbig.c \
222 ../common/__vcosbigf.c \
223 ../common/__vcosf.c \
224 ../common/__vexp.c \
225 ../common/__vexpf.c \
226 ../common/__vhypot.c \
227 ../common/__vhypotf.c \
228 ../common/__vlog.c \
229 ../common/__vlogf.c \
230 ../common/__vpow.c \
231 ../common/__vpowf.c \
232 ../common/__vrem_pio2m.c \
233 ../common/__vrhypot.c \
234 ../common/__vrhypotf.c \
235 ../common/__vrsqrt.c \
236 ../common/__vrsqrtf.c \
237 ../common/__vsin.c \
238 ../common/__vsinbig.c \
239 ../common/__vsinbigf.c \
240 ../common/__vsincos.c \
241 ../common/__vsincosbig.c \
242 ../common/__vsincosbigf.c \
243 ../common/__vsincosf.c \
244 ../common/__vsinf.c \
245 ../common/__vsqrt.c \
246 ../common/__vz_abs.c \
247 ../common/__vz_exp.c \
248 ../common/__vz_log.c \
249 ../common/__vz_pow.c \
250 ../common/vatan2_.c \
251 ../common/vatan2f_.c \
252 ../common/vatan_.c \
253 ../common/vatanf_.c \
254 ../common/vc_abs_.c \
255 ../common/vc_exp_.c \
256 ../common/vc_log_.c \
257 ../common/vc_pow_.c \
258 ../common/vcos_.c \
259 ../common/vcosf_.c \
260 ../common/vexp_.c \
261 ../common/vexpf_.c \
262 ../common/vhypot_.c \
263 ../common/vhypotf_.c \
264 ../common/vlog_.c \
265 ../common/vlogf_.c \
266 ../common/vpow_.c \
267 ../common/vpowf_.c \
268 ../common/vrhypot_.c \
269 ../common/vrhypotf_.c \
270 ../common/vrsqrt_.c \
271 ../common/vrsqrtf_.c \
272 ../common/vsin_.c \
273 ../common/vsincos_.c \
274 ../common/vsincosf_.c \
275 ../common/vsinf_.c \
276 ../common/vsqrt_.c \
277 ../common/vsqrtf_.c \
278 ../common/vz_abs_.c \
279 ../common/vz_exp_.c \
280 ../common/vz_log_.c \
281 ../common/vz_pow_.c \
282 #end
283
284 .KEEP_STATE:
285
286 all: $(LIBS)
287
288 lint: lintcheck
289
290 pics/%.o: ../$(TARGET_ARCH)/src/%.S
291 $(COMPILE.s) -o $@ $<
292 $(POST_PROCESS_O)
293
294 pics/%.o: ../common/$$(CHIP)/%.S
295 $(COMPILE.s) -o $@ $<
296 $(POST_PROCESS_O)