Makefile revision 140275
1169689Skan# @(#)Makefile 5.1beta 93/09/24 2169689Skan# $FreeBSD: head/lib/msun/Makefile 140275 2005-01-15 03:32:28Z das $ 3169689Skan# 4169689Skan# ==================================================== 5169689Skan# Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 6169689Skan# 7169689Skan# Developed at SunPro, a Sun Microsystems, Inc. business. 8169689Skan# Permission to use, copy, modify, and distribute this 9169689Skan# software is freely granted, provided that this notice 10169689Skan# is preserved. 11169689Skan# ==================================================== 12169689Skan# 13169689Skan# 14169689Skan 15169689Skan# 16169689Skan# There are two options in making libm at fdlibm compile time: 17169689Skan# _IEEE_LIBM --- IEEE libm; smaller, and somewhat faster 18169689Skan# _MULTI_LIBM --- Support multi-standard at runtime by 19169689Skan# imposing wrapper functions defined in 20169689Skan# math.h: 21169689Skan# _IEEE_MODE -- IEEE 22169689Skan# _XOPEN_MODE -- X/OPEN 23169689Skan# _POSIX_MODE -- POSIX/ANSI 24169689Skan# _SVID3_MODE -- SVID 25169689Skan# 26169689Skan# Here is how to set up CFLAGS to create the desired libm at 27169689Skan# compile time: 28169689Skan# 29169689Skan# CFLAGS = -D_IEEE_LIBM ... IEEE libm (recommended) 30169689Skan# CFLAGS = -D_SVID3_MODE ... Multi-standard supported 31169689Skan# libm with SVID as the 32169689Skan# default standard 33169689Skan# CFLAGS = -D_XOPEN_MODE ... Multi-standard supported 34169689Skan# libm with XOPEN as the 35169689Skan# default standard 36169689Skan# CFLAGS = -D_POSIX_MODE ... Multi-standard supported 37169689Skan# libm with POSIX as the 38169689Skan# default standard 39169689Skan# CFLAGS = ... Multi-standard supported 40169689Skan# libm with IEEE as the 41169689Skan# default standard 42169689Skan# 43169689Skan 44169689Skan.if ${MACHINE_ARCH} == "alpha" 45169689SkanARCH_SRCS = s_copysign.S s_copysignf.S 46169689Skan# XXX Comment from NetBSD/Alpha: 47169689Skan# XXX LINT SIGFPEs in e_exp.c's strtod(). FP underflow/denorm software 48169689Skan# handling is broken (doesn't exist!) on the Alpha port. 49169689Skan# Stock gcc 2.7.2.1 doesn't understand these options. 50169689Skan#CFLAGS += -mtrap-precision=i -mfp-trap-mode=su 51169689Skan.elif ${MACHINE_ARCH} == "amd64" 52169689SkanARCH_SRCS = e_sqrt.S s_lrint.S s_llrint.S 53169689Skan.elif ${MACHINE_ARCH} == "i386" 54169689SkanARCH_SUBDIR= i387 55169689SkanARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \ 56169689Skan e_remainder.S e_scalb.S e_sqrt.S s_atan.S s_ceil.S s_copysign.S \ 57169689Skan s_cos.S s_finite.S s_floor.S s_llrint.S s_logb.S s_lrint.S \ 58169689Skan s_rint.S s_scalbn.S s_significand.S s_sin.S s_tan.S 59169689Skan# float counterparts 60169689SkanARCH_SRCS+= e_atan2f.S e_log10f.S e_logf.S e_remainderf.S e_scalbf.S \ 61169689Skan e_sqrtf.S s_ceilf.S s_copysignf.S s_cosf.S s_floorf.S s_logbf.S \ 62169689Skan s_rintf.S s_scalbnf.S s_significandf.S s_sinf.S s_tanf.S 63169689Skan.endif 64169689Skan 65169689SkanARCH_SUBDIR?= ${MACHINE_ARCH} 66169689Skan 67169689Skan.PATH: ${.CURDIR}/bsdsrc 68169689Skan.PATH: ${.CURDIR}/man 69169689Skan.PATH: ${.CURDIR}/src 70169689Skan 71169689SkanCFLAGS+= -D_IEEE_LIBM 72169689Skan 73169689SkanLIB= m 74169689SkanSHLIBDIR?= /lib 75169689SkanSHLIB_MAJOR= 3 76169689SkanCOMMON_SRCS= b_exp.c b_log.c b_tgamma.c \ 77169689Skan e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \ 78169689Skan e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \ 79169689Skan e_expf.c e_fmod.c e_fmodf.c e_gamma.c e_gamma_r.c e_gammaf.c \ 80169689Skan e_gammaf_r.c e_hypot.c e_hypotf.c e_j0.c e_j0f.c e_j1.c e_j1f.c \ 81169689Skan e_jn.c e_jnf.c e_lgamma.c e_lgamma_r.c e_lgammaf.c e_lgammaf_r.c \ 82169689Skan e_log.c e_log10.c e_log10f.c e_logf.c e_pow.c e_powf.c e_rem_pio2.c \ 83169689Skan e_rem_pio2f.c e_remainder.c e_remainderf.c e_scalb.c e_scalbf.c \ 84169689Skan e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c fenv.c \ 85169689Skan k_cos.c k_cosf.c k_rem_pio2.c k_rem_pio2f.c k_sin.c k_sinf.c \ 86169689Skan k_standard.c k_tan.c k_tanf.c \ 87169689Skan s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_cbrt.c s_cbrtf.c \ 88169689Skan s_ceil.c s_ceilf.c s_ceill.c \ 89169689Skan s_copysign.c s_copysignf.c s_cos.c s_cosf.c s_erf.c s_erff.c \ 90169689Skan s_expm1.c s_expm1f.c s_fabsf.c s_fdim.c s_finite.c s_finitef.c \ 91169689Skan s_floor.c s_floorf.c s_floorl.c s_fmax.c s_fmaxf.c s_fmaxl.c s_fmin.c \ 92169689Skan s_fminf.c s_fminl.c s_frexp.c s_frexpf.c s_ilogb.c s_ilogbf.c \ 93169689Skan s_ilogbl.c s_isfinite.c s_isnan.c s_isnormal.c s_ldexpf.c \ 94169689Skan s_lib_version.c s_llrint.c s_llrintf.c s_llround.c s_llroundf.c \ 95169689Skan s_log1p.c s_log1pf.c s_logb.c s_logbf.c s_lrint.c s_lrintf.c \ 96169689Skan s_lround.c s_lroundf.c s_matherr.c s_modff.c \ 97169689Skan s_nearbyint.c s_nextafter.c s_nextafterf.c \ 98169689Skan s_rint.c s_rintf.c s_round.c s_roundf.c \ 99169689Skan s_scalbln.c s_scalbn.c s_scalbnf.c s_signbit.c \ 100169689Skan s_signgam.c s_significand.c s_significandf.c s_sin.c s_sinf.c s_tan.c \ 101169689Skan s_tanf.c s_tanh.c s_tanhf.c s_trunc.c s_truncf.c \ 102169689Skan w_acos.c w_acosf.c w_acosh.c w_acoshf.c w_asin.c w_asinf.c w_atan2.c \ 103169689Skan w_atan2f.c w_atanh.c w_atanhf.c w_cabs.c w_cabsf.c w_cosh.c w_coshf.c \ 104169689Skan w_drem.c w_dremf.c w_exp.c w_expf.c w_fmod.c w_fmodf.c w_gamma.c \ 105169689Skan w_gamma_r.c w_gammaf.c w_gammaf_r.c w_hypot.c w_hypotf.c w_j0.c \ 106169689Skan w_j0f.c w_j1.c w_j1f.c w_jn.c w_jnf.c w_lgamma.c w_lgamma_r.c \ 107169689Skan w_lgammaf.c w_lgammaf_r.c w_log.c w_log10.c w_log10f.c w_logf.c \ 108169689Skan w_pow.c w_powf.c w_remainder.c w_remainderf.c w_scalb.c w_scalbf.c \ 109169689Skan w_sinh.c w_sinhf.c w_sqrt.c w_sqrtf.c \ 110169689Skan w_y0.c w_y0f.c w_y1.c w_y1f.c w_yn.c w_ynf.c 111169689Skan 112169689Skan# Location of fpmath.h and _fpmath.h 113169689SkanLIBCDIR= ${.CURDIR}/../libc 114169689SkanCFLAGS+= -I${LIBCDIR}/include -I${LIBCDIR}/${MACHINE_ARCH} 115169689Skan 116169689Skan# C99 long double functions 117169689SkanCOMMON_SRCS+= s_copysignl.c s_fabsl.c 118169689Skan 119169689Skan# C99 complex functions 120169689SkanCOMMON_SRCS+= s_cimag.c s_cimagf.c s_cimagl.c s_conj.c s_conjf.c s_conjl.c \ 121169689Skan s_creal.c s_crealf.c s_creall.c 122169689Skan 123169689Skan# FreeBSD's C library supplies these functions: 124169689Skan#COMMON_SRCS+= s_fabs.c s_frexp.c s_isnan.c s_ldexp.c s_modf.c 125169689Skan 126169689Skan# Exclude the generic versions of what we provide in the MD area. 127169689Skan.PATH: ${.CURDIR}/${ARCH_SUBDIR} 128169689Skan.if defined(ARCH_SRCS) 129169689Skan.for i in ${ARCH_SRCS} 130169689SkanCOMMON_SRCS:= ${COMMON_SRCS:N${i:R}.c} 131169689Skan.endfor 132169689Skan.endif 133169689Skan 134169689SkanSRCS= ${COMMON_SRCS} ${ARCH_SRCS} 135169689Skan 136169689SkanINCS= fenv.h math.h 137169689Skan 138169689SkanMAN= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 ceil.3 \ 139169689Skan cimag.3 cos.3 cosh.3 erf.3 exp.3 fabs.3 fdim.3 feclearexcept.3 \ 140169689Skan fegetenv.3 fegetround.3 fenv.3 floor.3 fmax.3 fmod.3 hypot.3 ieee.3 \ 141169689Skan ieee_test.3 j0.3 lgamma.3 lrint.3 lround.3 math.3 rint.3 round.3 \ 142169689Skan signbit.3 sin.3 sinh.3 sqrt.3 tan.3 tanh.3 trunc.3 143169689Skan 144169689SkanMLINKS+=acos.3 acosf.3 145169689SkanMLINKS+=acosh.3 acoshf.3 146169689SkanMLINKS+=asin.3 asinf.3 147169689SkanMLINKS+=asinh.3 asinhf.3 148169689SkanMLINKS+=atan.3 atanf.3 149169689SkanMLINKS+=atanh.3 atanhf.3 150169689SkanMLINKS+=atan2.3 atan2f.3 151169689SkanMLINKS+=ceil.3 ceilf.3 ceil.3 ceill.3 152169689SkanMLINKS+=cimag.3 cimagf.3 cimag.3 cimagl.3 \ 153169689Skan cimag.3 conj.3 cimag.3 conjf.3 cimag.3 conjl.3 \ 154169689Skan cimag.3 creal.3 cimag.3 crealf.3 cimag.3 creall.3 155169689SkanMLINKS+=cos.3 cosf.3 156169689SkanMLINKS+=cosh.3 coshf.3 157169689SkanMLINKS+=erf.3 erfc.3 erf.3 erff.3 erf.3 erfcf.3 158169689SkanMLINKS+=exp.3 expm1.3 exp.3 log.3 exp.3 log10.3 exp.3 log1p.3 exp.3 pow.3 \ 159169689Skan exp.3 expf.3 exp.3 exp10.3 exp.3 exp10f.3 \ 160169689Skan exp.3 expm1f.3 exp.3 logf.3 exp.3 powf.3 \ 161169689Skan exp.3 log10f.3 exp.3 log1pf.3 162169689SkanMLINKS+=fabs.3 fabsf.3 fabs.3 fabsl.3 163169689SkanMLINKS+=fdim.3 fdimf.3 fdim.3 fdiml.3 164169689SkanMLINKS+=feclearexcept.3 fegetexceptflag.3 feclearexcept.3 feraiseexcept.3 \ 165169689Skan feclearexcept.3 fesetexceptflag.3 feclearexcept.3 fetestexcept.3 166169689SkanMLINKS+=fegetenv.3 feholdexcept.3 fegetenv.3 fesetenv.3 \ 167169689Skan fegetenv.3 feupdateenv.3 168169689SkanMLINKS+=fegetround.3 fesetround.3 169169689SkanMLINKS+=floor.3 floorf.3 floor.3 floorl.3 170169689SkanMLINKS+=fmax.3 fmaxf.3 fmax.3 fmaxl.3 \ 171169689Skan fmax.3 fmin.3 fmax.3 fminf.3 fmax.3 fminl.3 172169689SkanMLINKS+=fmod.3 fmodf.3 173169689SkanMLINKS+=hypot.3 cabs.3 hypot.3 cabsf.3 hypot.3 hypotf.3 174169689SkanMLINKS+=ieee.3 copysign.3 ieee.3 copysignf.3 ieee.3 copysignl.3 \ 175169689Skan ieee.3 finite.3 ieee.3 finitef.3 \ 176169689Skan ieee.3 ilogb.3 ieee.3 ilogbf.3 ieee.3 ilogbl.3 \ 177169689Skan ieee.3 nextafter.3 ieee.3 nextafterf.3 \ 178169689Skan ieee.3 remainder.3 ieee.3 remainderf.3 \ 179169689Skan ieee.3 scalbln.3 ieee.3 scalblnf.3 ieee.3 scalbn.3 ieee.3 scalbnf.3 180169689SkanMLINKS+=ieee_test.3 logb.3 ieee_test.3 logbf.3 181169689SkanMLINKS+=ieee_test.3 scalb.3 ieee_test.3 scalbf.3 182169689SkanMLINKS+=ieee_test.3 significand.3 ieee_test.3 significandf.3 183169689SkanMLINKS+=j0.3 j1.3 j0.3 jn.3 j0.3 y0.3 j0.3 y1.3 j0.3 y1f.3 j0.3 yn.3 184169689SkanMLINKS+=j0.3 j0f.3 j0.3 j1f.3 j0.3 jnf.3 j0.3 y0f.3 j0.3 ynf.3 185169689SkanMLINKS+=lgamma.3 gamma.3 lgamma.3 gammaf.3 lgamma.3 lgammaf.3 lgamma.3 tgamma.3 186169689SkanMLINKS+=lrint.3 llrint.3 lrint.3 llrintf.3 lrint.3 lrintf.3 187169689SkanMLINKS+=lround.3 llround.3 lround.3 llroundf.3 lround.3 lroundf.3 188169689SkanMLINKS+=rint.3 rintf.3 rint.3 nearbyint.3 rint.3 nearbyintf.3 189169689SkanMLINKS+=round.3 roundf.3 190169689SkanMLINKS+=sin.3 sinf.3 191169689SkanMLINKS+=sinh.3 sinhf.3 192169689SkanMLINKS+=sqrt.3 cbrt.3 sqrt.3 cbrtf.3 sqrt.3 sqrtf.3 193169689SkanMLINKS+=tan.3 tanf.3 194169689SkanMLINKS+=tanh.3 tanhf.3 195169689SkanMLINKS+=trunc.3 truncf.3 196169689Skan 197169689Skan.include <bsd.lib.mk> 198169689Skan