Browse Source

Almost building the full thing.

Viral B. Shah 13 years ago
parent
commit
ccd319c03c
9 changed files with 128 additions and 76 deletions
  1. 3 0
      .gitignore
  2. 0 25
      LICENSE
  3. 64 0
      LICENSE.md
  4. 30 0
      Make.inc
  5. 10 1
      Makefile
  6. 0 7
      README
  7. 7 0
      README.md
  8. 5 0
      ld128/Makefile
  9. 9 43
      src/Makefile

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+*.o
+*~
+*.a

+ 0 - 25
LICENSE

@@ -1,25 +0,0 @@
-Openlibm is licensed under the three clause "Modified BSD License",
-with exceptions noted below:
-
-     Redistribution and use in source and binary forms, with or without
-     modification, are permitted provided that the following conditions are met:
-
-         * Redistributions of source code must retain the above copyright
-           notice, this list of conditions and the following disclaimer.
-         * Redistributions in binary form must reproduce the above copyright
-	   notice, this list of conditions and the following disclaimer in the
-           documentation and/or other materials provided with the distribution.
-         * The names of the contributors may not be used to endorse or promote
-           products derived from this software without specific prior written
-           permission.
-
-     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-     DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-     LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-     NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 64 - 0
LICENSE.md

@@ -0,0 +1,64 @@
+## OpenLIBM 
+
+Openlibm is licensed under the MIT LICENSE.
+
+      Copyright (c) 2011-12 Viral B. Shah. All rights reserved.
+
+      Permission is hereby granted, free of charge, to any person obtaining
+      a copy of this software and associated documentation files (the
+      "Software"), to deal in the Software without restriction, including
+      without limitation the rights to use, copy, modify, merge, publish,
+      distribute, sublicense, and/or sell copies of the Software, and to
+      permit persons to whom the Software is furnished to do so, subject to
+      the following conditions:
+
+      The above copyright notice and this permission notice shall be
+      included in all copies or substantial portions of the Software.
+
+      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+      EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+      NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+      LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+      OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+      WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+## Derived from FREEBSD MSUN
+
+      Copyright 1992-2011 The FreeBSD Project. All rights reserved.
+
+      Redistribution and use in source and binary forms, with or without
+      modification, are permitted provided that the following conditions are
+      met:
+
+      1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+      2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+      THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND ANY
+      EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+      IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+      PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR
+      CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+      EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+      PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+      PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+      LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+      The views and conclusions contained in the software and documentation
+      are those of the authors and should not be interpreted as representing
+      official policies, either expressed or implied, of the FreeBSD
+      Project.
+
+## Derived from FDLIBM
+
+      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.

+ 30 - 0
Make.inc

@@ -0,0 +1,30 @@
+CC=clang
+CFLAGS=-O2 -fPIC -I. -I../include -I../ld128 -I../src -D__BSD_VISIBLE -Wno-implicit-function-declaration 
+
+%.o: %.c
+	$(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@
+
+clean:
+	rm -f *.o *~
+
+# OS-specific stuff
+
+ifeq ($(OS), Linux)
+SHLIB_EXT = so
+endif
+
+ifeq ($(OS), Darwin)
+SHLIB_EXT = dylib
+endif
+
+# Colors for make
+
+CCCOLOR="\033[34m"
+LINKCOLOR="\033[34;1m"
+SRCCOLOR="\033[33m"
+BINCOLOR="\033[37;1m"
+MAKECOLOR="\033[32;1m"
+ENDCOLOR="\033[0m"
+
+QUIET_CC = @printf '    %b %b\n' $(CCCOLOR)CC$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR);
+QUIET_LINK = @printf '    %b %b\n' $(LINKCOLOR)LINK$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR);

+ 10 - 1
Makefile

@@ -1,2 +1,11 @@
+include ./Make.inc
+
 all:
-	$(MAKE) -C src
+	$(MAKE) -C src all
+	$(MAKE) -C ld128 all
+	$(QUIET_LINK)ar -rcs libopenlibm.a src/*.o ld128/*.o
+	$(QUIET_LINK)$(CC) -shared -fPIC src/*.o ld128/*.o -o libopenlibm.$(SHLIB_EXT)
+
+cleanall:
+	$(MAKE) -C src clean
+	$(MAKE) -C ld128 clean

+ 0 - 7
README

@@ -1,7 +0,0 @@
-Openlibm is an effort to have a high quality independent 
-libm library. It is meant to be used standalone in applications and
-programming language implementations, and perhaps even as a reference
-for libm implementations in OSes.
-
-The Openlibm code derives from the FreeBSD 8.2 msun implementation,
-which in turn derives from FDLIBM 5.3.

+ 7 - 0
README.md

@@ -0,0 +1,7 @@
+OpenLIBM is an effort to have a high quality independent LIBM
+library. It is meant to be used standalone in applications and
+programming language implementations, and perhaps even as a reference
+for LIBM implementations in OSes.
+
+The OpenLIBM code derives from the FreeBSD msun implementation, which
+in turn derives from FDLIBM 5.3.

+ 5 - 0
ld128/Makefile

@@ -0,0 +1,5 @@
+include ../Make.inc
+
+SRCS=	invtrig.o k_cosl.o k_sinl.o k_tanl.o # s_exp2l.o s_nanl.o
+
+all: $(SRCS)

+ 9 - 43
src/Makefile

@@ -1,21 +1,6 @@
-#  @(#)Makefile 5.1beta 93/09/24
-# $FreeBSD: src/lib/msun/Makefile,v 1.112 2011/10/21 06:27:56 das Exp $
-#
-#  ====================================================
-#  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.
-#  ====================================================
-#
-#
+include ../Make.inc
 
-CC=clang
-CFLAGS=-O2 -I. -I../include -I../ld128 -D__BSD_VISIBLE -Wno-implicit-function-declaration 
-
-COMMON_SRCS= \
+SRCS= \
 	e_acos.o e_acosf.o e_acosh.o e_acoshf.o e_asin.o e_asinf.o \
 	e_atan2.o e_atan2f.o e_atanh.o e_atanhf.o e_cosh.o e_coshf.o e_exp.o \
 	e_expf.o e_fmod.o e_fmodf.o e_gamma.o e_gamma_r.o e_gammaf.o \
@@ -49,10 +34,10 @@ COMMON_SRCS= \
 	w_cabs.o w_cabsf.o w_drem.o w_dremf.o
 
 # C99 long double functions
-COMMON_SRCS+=	s_copysignl.o s_fabsl.o s_llrintl.o s_lrintl.o s_modfl.o
+SRCS+=	s_copysignl.o s_fabsl.o s_llrintl.o s_lrintl.o s_modfl.o
 
 # If long double != double use these; otherwise, we alias the double versions.
-COMMON_SRCS+=	e_acosl.o e_asinl.o e_atan2l.o e_fmodl.o \
+SRCS+=	e_acosl.o e_asinl.o e_atan2l.o e_fmodl.o \
 	e_hypotl.o e_remainderl.o e_sqrtl.o \
 	s_atanl.o s_cbrtl.o s_ceill.o s_cosl.o s_cprojl.o \
 	s_csqrtl.o s_floorl.o s_fmal.o \
@@ -61,36 +46,17 @@ COMMON_SRCS+=	e_acosl.o e_asinl.o e_atan2l.o e_fmodl.o \
 	s_sinl.o s_tanl.o s_truncl.o w_cabsl.o
 
 # C99 complex functions
-COMMON_SRCS+=	s_ccosh.o s_ccoshf.o s_cexp.o s_cexpf.o \
+SRCS+=	s_ccosh.o s_ccoshf.o s_cexp.o s_cexpf.o \
 	s_cimag.o s_cimagf.o s_cimagl.o \
 	s_conj.o s_conjf.o s_conjl.o \
 	s_cproj.o s_cprojf.o s_creal.o s_crealf.o s_creall.o \
 	s_csinh.o s_csinhf.o s_ctanh.o s_ctanhf.o
 
 # FreeBSD's C library supplies these functions. Need to build them in openlibm.
-#COMMON_SRCS+=	s_fabs.o s_frexp.o s_isnan.o s_ldexp.o s_modf.o
+#SRCS+=	s_fabs.o s_frexp.o s_isnan.o s_ldexp.o s_modf.o
 
 # These do not yet compile
-#COMMON_SRCS+=	b_exp.o b_log.o b_tgamma.o invtrig.o fenv.o k_cosl.o k_sinl.o k_tanl.o \
-	s_exp2l.o s_nanl.o s_isnan.o s_scalbnf.o s_nextafterl.o s_rintl.o s_scalbnl.o \
-
-# Colors for make
-
-CCCOLOR="\033[34m"
-LINKCOLOR="\033[34;1m"
-SRCCOLOR="\033[33m"
-BINCOLOR="\033[37;1m"
-MAKECOLOR="\033[32;1m"
-ENDCOLOR="\033[0m"
-
-QUIET_CC = @printf '    %b %b\n' $(CCCOLOR)CC$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR);
-QUIET_LINK = @printf '    %b %b\n' $(LINKCOLOR)LINK$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR);
-
-all: $(COMMON_SRCS)
-	$(QUIET_LINK)$(CC) *.o -o libopenlibm.a
-
-%.o: %.c
-	$(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@
+#SRCS+=	b_exp.o b_log.o b_tgamma.o fenv.o s_isnan.o \
+	s_exp2l.o s_nanl.o s_scalbnf.o s_nextafterl.o s_rintl.o s_scalbnl.o \
 
-clean:
-	rm -f *.o *~
+all: $(SRCS)