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 # Copyright (c) 2019, Joyent, Inc.
  16 #
  17 
  18 LIBMDIR         = $(SRC)/lib/libm
  19 
  20 mvecOBJS        = \
  21                 __vTBL_atan1.o \
  22                 __vTBL_atan2.o \
  23                 __vTBL_rsqrt.o \
  24                 __vTBL_sincos.o \
  25                 __vTBL_sincos2.o \
  26                 __vTBL_sqrtf.o \
  27                 __vatan.o \
  28                 __vatan2.o \
  29                 __vatan2f.o \
  30                 __vatanf.o \
  31                 __vc_abs.o \
  32                 __vc_exp.o \
  33                 __vc_log.o \
  34                 __vc_pow.o \
  35                 __vcos.o \
  36                 __vcosbig.o \
  37                 __vcosbigf.o \
  38                 __vcosf.o \
  39                 __vexp.o \
  40                 __vexpf.o \
  41                 __vhypot.o \
  42                 __vhypotf.o \
  43                 __vlog.o \
  44                 __vlogf.o \
  45                 __vpow.o \
  46                 __vpowf.o \
  47                 __vrem_pio2m.o \
  48                 __vrhypot.o \
  49                 __vrhypotf.o \
  50                 __vrsqrt.o \
  51                 __vrsqrtf.o \
  52                 __vsin.o \
  53                 __vsinbig.o \
  54                 __vsinbigf.o \
  55                 __vsincos.o \
  56                 __vsincosbig.o \
  57                 __vsincosbigf.o \
  58                 __vsincosf.o \
  59                 __vsinf.o \
  60                 __vsqrt.o \
  61                 __vsqrtf.o \
  62                 __vz_abs.o \
  63                 __vz_exp.o \
  64                 __vz_log.o \
  65                 __vz_pow.o \
  66                 vatan2_.o \
  67                 vatan2f_.o \
  68                 vatan_.o \
  69                 vatanf_.o \
  70                 vc_abs_.o \
  71                 vc_exp_.o \
  72                 vc_log_.o \
  73                 vc_pow_.o \
  74                 vcos_.o \
  75                 vcosf_.o \
  76                 vexp_.o \
  77                 vexpf_.o \
  78                 vhypot_.o \
  79                 vhypotf_.o \
  80                 vlog_.o \
  81                 vlogf_.o \
  82                 vpow_.o \
  83                 vpowf_.o \
  84                 vrhypot_.o \
  85                 vrhypotf_.o \
  86                 vrsqrt_.o \
  87                 vrsqrtf_.o \
  88                 vsin_.o \
  89                 vsincos_.o \
  90                 vsincosf_.o \
  91                 vsinf_.o \
  92                 vsqrt_.o \
  93                 vsqrtf_.o \
  94                 vz_abs_.o \
  95                 vz_exp_.o \
  96                 vz_log_.o \
  97                 vz_pow_.o
  98 
  99 mvecvisCOBJS    = \
 100                 __vTBL_atan1.o \
 101                 __vTBL_atan2.o \
 102                 __vTBL_rsqrt.o \
 103                 __vTBL_sincos.o \
 104                 __vTBL_sincos2.o \
 105                 __vTBL_sqrtf.o \
 106                 __vcosbig.o \
 107                 __vcosbigf.o \
 108                 __vrem_pio2m.o \
 109                 __vsinbig.o \
 110                 __vsinbigf.o \
 111                 __vsincosbig.o \
 112                 __vsincosbigf.o
 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 
 140 mvecvis2COBJS   = \
 141                 __vTBL_sincos.o \
 142                 __vTBL_sincos2.o \
 143                 __vTBL_sqrtf.o \
 144                 __vcosbig.o \
 145                 __vcosbig_ultra3.o \
 146                 __vrem_pio2m.o \
 147                 __vsinbig.o \
 148                 __vsinbig_ultra3.o
 149 
 150 mvecvis2SOBJS   = \
 151                 __vcos_ultra3.o \
 152                 __vlog_ultra3.o \
 153                 __vsin_ultra3.o \
 154                 __vsqrtf_ultra3.o
 155 
 156 include         $(SRC)/lib/Makefile.lib
 157 include         $(SRC)/lib/Makefile.rootfs
 158 include         $(LIBMDIR)/Makefile.libm.com
 159 
 160 LIBS            = $(DYNLIB)
 161 SRCDIR          = ../common/
 162 DYNFLAGS        += $(ZIGNORE)
 163 
 164 LINTERROFF      = -erroff=E_FP_DIVISION_BY_ZERO
 165 LINTERROFF      += -erroff=E_FP_INVALID
 166 LINTERROFF      += -erroff=E_BAD_PTR_CAST_ALIGN
 167 LINTERROFF      += -erroff=E_ASSIGMENT_CAUSE_LOSS_PREC
 168 LINTERROFF      += -erroff=E_FUNC_SET_NOT_USED
 169 
 170 LINTFLAGS       += $(LINTERROFF)
 171 LINTFLAGS64     += $(LINTERROFF)
 172 LINTFLAGS64     += -errchk=longptr64
 173 
 174 CLAGS           += $(LINTERROFF)
 175 CFLAGS64        += $(LINTERROFF)
 176 
 177 FLTRPATH_sparc          = $$ORIGIN/cpu/$$ISALIST/libmvec_isa.so.1
 178 FLTRPATH_sparcv9        = $$ORIGIN/../cpu/$$ISALIST/sparcv9/libmvec_isa.so.1
 179 FLTRPATH_i386           = $$ORIGIN/libmvec/$$HWCAP
 180 FLTRPATH                = $(FLTRPATH_$(TARGET_ARCH))
 181 
 182 sparc_CFLAGS += -_cc=-W0,-xintrinsic
 183 sparcv9_CFLAGS += -_cc=-W0,-xintrinsic
 184 
 185 SRCS_mvec_i386 = ../common/__vsqrtf.c
 186 
 187 SRCS_mvec_sparc = $(SRCS_mvec_i386)
 188 
 189 SRCS_mvec_sparcv9 = $(SRCS_mvec_i386)
 190 
 191 
 192 SRCS_mvec = \
 193         $(SRCS_mvec_$(TARGETMACH)) \
 194         ../common/__vTBL_atan1.c \
 195         ../common/__vTBL_atan2.c \
 196         ../common/__vTBL_rsqrt.c \
 197         ../common/__vTBL_sincos.c \
 198         ../common/__vTBL_sincos2.c \
 199         ../common/__vTBL_sqrtf.c \
 200         ../common/__vatan.c \
 201         ../common/__vatan2.c \
 202         ../common/__vatan2f.c \
 203         ../common/__vatanf.c \
 204         ../common/__vc_abs.c \
 205         ../common/__vc_exp.c \
 206         ../common/__vc_log.c \
 207         ../common/__vc_pow.c \
 208         ../common/__vcos.c \
 209         ../common/__vcosbig.c \
 210         ../common/__vcosbigf.c \
 211         ../common/__vcosf.c \
 212         ../common/__vexp.c \
 213         ../common/__vexpf.c \
 214         ../common/__vhypot.c \
 215         ../common/__vhypotf.c \
 216         ../common/__vlog.c \
 217         ../common/__vlogf.c \
 218         ../common/__vpow.c \
 219         ../common/__vpowf.c \
 220         ../common/__vrem_pio2m.c \
 221         ../common/__vrhypot.c \
 222         ../common/__vrhypotf.c \
 223         ../common/__vrsqrt.c \
 224         ../common/__vrsqrtf.c \
 225         ../common/__vsin.c \
 226         ../common/__vsinbig.c \
 227         ../common/__vsinbigf.c \
 228         ../common/__vsincos.c \
 229         ../common/__vsincosbig.c \
 230         ../common/__vsincosbigf.c \
 231         ../common/__vsincosf.c \
 232         ../common/__vsinf.c \
 233         ../common/__vsqrt.c \
 234         ../common/__vz_abs.c \
 235         ../common/__vz_exp.c \
 236         ../common/__vz_log.c \
 237         ../common/__vz_pow.c \
 238         ../common/vatan2_.c \
 239         ../common/vatan2f_.c \
 240         ../common/vatan_.c \
 241         ../common/vatanf_.c \
 242         ../common/vc_abs_.c \
 243         ../common/vc_exp_.c \
 244         ../common/vc_log_.c \
 245         ../common/vc_pow_.c \
 246         ../common/vcos_.c \
 247         ../common/vcosf_.c \
 248         ../common/vexp_.c \
 249         ../common/vexpf_.c \
 250         ../common/vhypot_.c \
 251         ../common/vhypotf_.c \
 252         ../common/vlog_.c \
 253         ../common/vlogf_.c \
 254         ../common/vpow_.c \
 255         ../common/vpowf_.c \
 256         ../common/vrhypot_.c \
 257         ../common/vrhypotf_.c \
 258         ../common/vrsqrt_.c \
 259         ../common/vrsqrtf_.c \
 260         ../common/vsin_.c \
 261         ../common/vsincos_.c \
 262         ../common/vsincosf_.c \
 263         ../common/vsinf_.c \
 264         ../common/vsqrt_.c \
 265         ../common/vsqrtf_.c \
 266         ../common/vz_abs_.c \
 267         ../common/vz_exp_.c \
 268         ../common/vz_log_.c \
 269         ../common/vz_pow_.c
 270 
 271 .KEEP_STATE:
 272 
 273 all:    $(LIBS)
 274 
 275 lint:   lintcheck
 276 
 277 pics/%.o: ../$(TARGET_ARCH)/src/%.S
 278         $(COMPILE.s) -o $@ $<
 279         $(POST_PROCESS_S_O)
 280 
 281 pics/%.o: ../common/$$(CHIP)/%.S
 282         $(COMPILE.s) -o $@ $<
 283         $(POST_PROCESS_S_O)