summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-10-30 00:49:08 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-10-30 00:49:08 +0000
commit72987a2110225081791068c5a2b9fdff6a72aeb1 (patch)
treecb6ba3538ddb04f9e438acd8c6452dfa4a02b4da
parent3dd09f71ea8353db239df789f5718d08740410d5 (diff)
downloaduClibc-alpine-72987a2110225081791068c5a2b9fdff6a72aeb1.tar.bz2
uClibc-alpine-72987a2110225081791068c5a2b9fdff6a72aeb1.tar.xz
Copy from trunk.
-rw-r--r--libm/Makefile.in134
1 files changed, 134 insertions, 0 deletions
diff --git a/libm/Makefile.in b/libm/Makefile.in
new file mode 100644
index 000000000..541b6fb91
--- /dev/null
+++ b/libm/Makefile.in
@@ -0,0 +1,134 @@
+# Makefile for uClibc
+#
+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
+#
+# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+#
+# The routines included in this math library are derived from the
+# math library for Apple's MacOS X/Darwin math library, which was
+# itself swiped from FreeBSD. The original copyright information
+# is as follows:
+#
+# Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+#
+# Developed at SunPro, a Sun Microsystems, Inc. business.
+# Permission to use, copy, modify, and distribute this
+# software is freely granted, provided that this notice
+# is preserved.
+#
+# It has been ported to work with uClibc and generally behave
+# by Erik Andersen <andersen@codepoet.org>
+#
+
+CFLAGS+=$(SSP_ALL_CFLAGS)
+
+CFLAGS+=-D_IEEE_LIBM -D_ISOC99_SOURCE -D_SVID_SOURCE
+
+CFLAGS-s_lib_version.c=-D_POSIX_MODE
+
+#DOMULTI=n
+
+LIB_NAME:=libm
+
+ifeq ($(HAS_FPU),y)
+-include $(top_srcdir)libm/$(TARGET_ARCH)/Makefile.arch
+endif
+
+FL_MSRC:=float_wrappers.c
+
+ifeq ($(DO_C99_MATH),y)
+CSRC:= e_acos.c e_acosh.c e_asin.c e_atan2.c e_atanh.c e_cosh.c \
+ e_exp.c e_fmod.c e_gamma.c e_gamma_r.c e_hypot.c e_j0.c \
+ e_j1.c e_jn.c e_lgamma.c e_lgamma_r.c e_log.c e_log10.c \
+ e_pow.c e_remainder.c e_rem_pio2.c e_scalb.c e_sinh.c \
+ e_sqrt.c k_cos.c k_rem_pio2.c k_sin.c k_standard.c k_tan.c \
+ s_asinh.c s_atan.c s_cbrt.c s_ceil.c s_copysign.c s_cos.c \
+ s_erf.c s_expm1.c s_fabs.c s_finite.c s_floor.c s_frexp.c \
+ s_ilogb.c s_ldexp.c s_lib_version.c s_log1p.c s_logb.c \
+ s_matherr.c s_modf.c s_nextafter.c s_rint.c s_scalbn.c \
+ s_signgam.c s_significand.c s_sin.c s_tan.c s_tanh.c \
+ w_acos.c w_acosh.c w_asin.c w_atan2.c w_atanh.c w_cabs.c \
+ w_cosh.c w_drem.c w_exp.c w_fmod.c w_gamma.c w_gamma_r.c \
+ w_hypot.c w_j0.c w_j1.c w_jn.c w_lgamma.c w_lgamma_r.c \
+ w_log.c w_log10.c w_pow.c w_remainder.c w_scalb.c w_sinh.c \
+ w_sqrt.c fpmacros.c nan.c
+FL_MOBJ:=acosf.o acoshf.o asinf.o asinhf.o atan2f.o atanf.o atanhf.o cbrtf.o \
+ ceilf.o copysignf.o cosf.o coshf.o erfcf.o erff.o exp2f.o expf.o \
+ expm1f.o fabsf.o fdimf.o floorf.o fmaf.o fmaxf.o fminf.o fmodf.o \
+ frexpf.o hypotf.o ilogbf.o ldexpf.o lgammaf.o log10f.o log1pf.o \
+ log2f.o logbf.o logf.o lrintf.o lroundf.o modff.o nearbyintf.o \
+ nextafterf.o powf.o remainderf.o remquof.o rintf.o roundf.o \
+ scalblnf.o scalbnf.o sinf.o sinhf.o sqrtf.o tanf.o tanhf.o \
+ tgammaf.o truncf.o
+else
+# This list of math functions was taken from POSIX/IEEE 1003.1b-1993
+CSRC:= w_acos.c w_asin.c s_atan.c w_atan2.c s_ceil.c s_cos.c \
+ w_cosh.c w_exp.c s_fabs.c s_floor.c w_fmod.c s_frexp.c \
+ s_ldexp.c w_log.c w_log10.c s_modf.c w_pow.c s_sin.c \
+ w_sinh.c w_sqrt.c s_tan.c s_tanh.c \
+ s_expm1.c s_scalbn.c s_copysign.c e_acos.c e_asin.c e_atan2.c \
+ k_cos.c e_cosh.c e_exp.c e_fmod.c e_log.c e_log10.c e_pow.c \
+ k_sin.c e_sinh.c e_sqrt.c k_tan.c e_rem_pio2.c k_rem_pio2.c \
+ s_finite.c
+# We'll add sqrtf to avoid problems with libstdc++
+FL_MOBJ:=sqrtf.o
+endif
+
+libm_DIR:=$(top_srcdir)libm
+libm_OUT:=$(top_builddir)libm
+
+# assume that arch specific versions are provided as single sources/objects
+ifeq ($(HAS_FPU),y)
+ifneq ($(strip $(libm_ARCH_OBJS)),)
+
+# remove generic sources, if arch specific version is present
+ifneq ($(strip $(libm_ARCH_SRC)),)
+CSRC:=$(filter-out $(notdir $(libm_ARCH_SRC)),$(CSRC))
+endif
+
+# remove generic objects built from multi-sources, if arch specific version is present
+FL_MOBJ:=$(filter-out $(notdir $(libm_ARCH_OBJS)),$(FL_MOBJ))
+
+# we also try to remove % if s_% is in arch specific subdir
+FL_MOBJ:=$(filter-out $(patsubst s_%.o,%.o,$(notdir $(libm_ARCH_OBJS))),$(FL_MOBJ))
+endif
+endif
+
+ifneq ($(DOMULTI),n)
+ifeq ($(DO_C99_MATH),y)
+LIBM_NO_MULTI:=s_lib_version.c
+CSRC:=$(filter-out $(LIBM_NO_MULTI),$(CSRC))
+endif
+endif
+
+libm_SRC:=$(patsubst %.c,$(libm_DIR)/%.c,$(CSRC))
+libm_OBJ:=$(patsubst $(libm_DIR)/%.c,$(libm_OUT)/%.o,$(libm_SRC))
+
+libm_MSRC:=$(libm_DIR)/$(FL_MSRC)
+libm_MOBJ:=$(patsubst %.o,$(libm_OUT)/%.o,$(FL_MOBJ))
+
+libm_DEF:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(libm_MOBJ))))
+
+libm_OBJS:=$(libm_OBJ) $(libm_MOBJ)
+ifneq ($(DOMULTI),n)
+ifeq ($(DO_C99_MATH),y)
+libm_OBJS+=$(patsubst %.c,$(libm_OUT)/%.o,$(LIBM_NO_MULTI))
+endif
+endif
+
+$(libm_MOBJ) $(libm_MOBJ:.o=.os): $(libm_MSRC)
+ $(compile.m)
+
+libm-a-$(UCLIBC_HAS_FLOATS)+=$(libm_OBJS)
+libm-so-$(UCLIBC_HAS_FLOATS)+=$(libm_OBJS:.o=.os)
+
+CFLAGS-multi-$(UCLIBC_HAS_FLOATS)+=$(libm_DEF)
+libm-multi-$(UCLIBC_HAS_FLOATS)+=$(libm_SRC) $(libm_MSRC)
+ifeq ($(DO_C99_MATH),y)
+libm-nomulti-$(UCLIBC_HAS_FLOATS)+=$(patsubst %.c,$(libm_OUT)/%.o,$(LIBM_NO_MULTI))
+endif
+
+objclean-y+=libm_clean
+
+lib-a-$(UCLIBC_HAS_FLOATS)+=$(top_builddir)lib/libm.a
+lib-so-$(UCLIBC_HAS_FLOATS)+=$(top_builddir)lib/libm.so