mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2024-12-29 13:03:42 +01:00
Almost building the full thing.
This commit is contained in:
parent
189b043947
commit
ccd319c03c
9 changed files with 128 additions and 76 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
*.o
|
||||||
|
*~
|
||||||
|
*.a
|
25
LICENSE
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
LICENSE.md
Normal file
64
LICENSE.md
Normal file
|
@ -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
Make.inc
Normal file
30
Make.inc
Normal file
|
@ -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);
|
11
Makefile
11
Makefile
|
@ -1,2 +1,11 @@
|
||||||
|
include ./Make.inc
|
||||||
|
|
||||||
all:
|
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
|
7
README
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
README.md
Normal file
7
README.md
Normal file
|
@ -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
ld128/Makefile
Normal file
5
ld128/Makefile
Normal file
|
@ -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)
|
52
src/Makefile
52
src/Makefile
|
@ -1,21 +1,6 @@
|
||||||
# @(#)Makefile 5.1beta 93/09/24
|
include ../Make.inc
|
||||||
# $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.
|
|
||||||
# ====================================================
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
CC=clang
|
SRCS= \
|
||||||
CFLAGS=-O2 -I. -I../include -I../ld128 -D__BSD_VISIBLE -Wno-implicit-function-declaration
|
|
||||||
|
|
||||||
COMMON_SRCS= \
|
|
||||||
e_acos.o e_acosf.o e_acosh.o e_acoshf.o e_asin.o e_asinf.o \
|
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_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 \
|
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
|
w_cabs.o w_cabsf.o w_drem.o w_dremf.o
|
||||||
|
|
||||||
# C99 long double functions
|
# 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.
|
# 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 \
|
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_atanl.o s_cbrtl.o s_ceill.o s_cosl.o s_cprojl.o \
|
||||||
s_csqrtl.o s_floorl.o s_fmal.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
|
s_sinl.o s_tanl.o s_truncl.o w_cabsl.o
|
||||||
|
|
||||||
# C99 complex functions
|
# 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_cimag.o s_cimagf.o s_cimagl.o \
|
||||||
s_conj.o s_conjf.o s_conjl.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_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
|
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.
|
# 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
|
# 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 \
|
#SRCS+= b_exp.o b_log.o b_tgamma.o fenv.o s_isnan.o \
|
||||||
s_exp2l.o s_nanl.o s_isnan.o s_scalbnf.o s_nextafterl.o s_rintl.o s_scalbnl.o \
|
s_exp2l.o s_nanl.o s_scalbnf.o s_nextafterl.o s_rintl.o s_scalbnl.o \
|
||||||
|
|
||||||
# Colors for make
|
all: $(SRCS)
|
||||||
|
|
||||||
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 $@
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o *~
|
|
||||||
|
|
Loading…
Reference in a new issue