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)