openlibm/README.md

52 lines
2.1 KiB
Markdown
Raw Normal View History

2015-02-01 19:06:16 +05:30
# OpenLibm
2012-08-19 11:52:43 +05:30
[![codecov](https://codecov.io/gh/JuliaMath/openlibm/graph/badge.svg?token=eTAdN7d9cg)](https://codecov.io/gh/JuliaMath/openlibm)
2019-08-11 09:47:20 -03:00
[OpenLibm](https://openlibm.org/) is an effort to have a high quality, portable, standalone
C mathematical library ([`libm`](http://en.wikipedia.org/wiki/libm)).
It can be used standalone in applications and programming language
2014-12-05 00:44:29 +05:30
implementations.
2011-12-31 12:48:43 +05:30
The project was born out of a need to have a good `libm` for the
[Julia programming language](http://www.julialang.org) that worked
consistently across compilers and operating systems, and in 32-bit and
64-bit environments.
2012-01-05 23:35:01 -05:00
2015-02-01 19:06:16 +05:30
## Platform support
2012-07-03 21:00:34 +05:30
OpenLibm builds on Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD, and
2018-06-18 18:13:49 -04:00
DragonFly BSD. It builds with both GCC and clang. Although largely
tested and widely used on the x86 and x86-64 architectures, OpenLibm
also supports arm, aarch64, ppc64le, mips, wasm32, riscv, s390(x) and
loongarch64.
2012-07-03 21:00:34 +05:30
2015-02-01 19:06:16 +05:30
## Build instructions
2014-06-12 12:52:21 +05:30
### GNU Make
1. Use GNU Make to build OpenLibm. This is `make` on most systems, but `gmake` on BSDs.
2015-02-01 19:08:33 +05:30
2. Use `make USEGCC=1` to build with GCC. This is the default on
2014-12-05 00:44:29 +05:30
Linux and Windows.
3. Use `make USECLANG=1` to build with clang. This is the default on OS X, FreeBSD,
and OpenBSD.
2019-04-15 00:11:03 +02:00
4. Use `make ARCH=wasm32` to build the wasm32 library with clang. Requires clang-8.
5. Architectures are auto-detected. Use `make ARCH=i386` to force a
2016-03-03 14:53:33 +05:30
build for i386. Other supported architectures are i486, i586, and
i686. GCC 4.8 is the minimum requirement for correct codegen on
older 32-bit architectures.
### CMake
1. Create build directory with `mkdir build` and navigate into it with `cd build`.
2. Run CMake to configure project and generate native build system with `cmake /path/to/openlibm/`
or generate project with build system of choice e.g. `cmake /path/to/openlib/ -G "MinGW Makefiles"`.
3. Build with the build system with `cmake --build .`.
Default CMake configuration builds a shared library, this can easily be changed by replacing
the keyword in the `add_library()` command in the `CMakeLists.txt`.
## Acknowledgements
PowerPC support for openlibm was graciously sponsored by IBM.