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)