mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2024-12-28 04:23:41 +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:
|
||||
$(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
|
||||
# $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 \
|
||||
#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 \
|
||||
|
||||
# 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 $@
|
||||
|
||||
clean:
|
||||
rm -f *.o *~
|
||||
all: $(SRCS)
|
||||
|
|
Loading…
Reference in a new issue