xref: /relibc/openlibm/README.md (revision bf188aeb2345c994909f5652cb3ac37f0144e8fe)
1# OpenLibm
2
3[![Build Status](https://travis-ci.org/JuliaLang/openlibm.svg?branch=master)](https://travis-ci.org/JuliaLang/openlibm)
4
5[OpenLibm](http://www.openlibm.org) is an effort to have a high quality, portable, standalone
6C mathematical library ([`libm`](http://en.wikipedia.org/wiki/libm)).
7It can be used standalone in applications and programming language
8implementations.
9
10The project was born out of a need to have a good `libm` for the
11[Julia programming langage](http://www.julialang.org) that worked
12consistently across compilers and operating systems, and in 32-bit and
1364-bit environments.
14
15## Platform support
16
17OpenLibm builds on Linux, Mac OS X, Windows, FreeBSD, OpenBSD, and DragonFly BSD.
18It builds with both GCC and clang. Although largely tested and widely
19used on x86 architectures, OpenLibm also supports ARM and
20PowerPC.
21
22## Build instructions
23
241. Use GNU Make to build OpenLibm. This is `make` on most systems, but `gmake` on BSDs.
252. Use `make USEGCC=1` to build with GCC. This is the default on
26   Linux and Windows.
273. Use `make USECLANG=1` to build with clang. This is the default on OS X, FreeBSD,
28   and OpenBSD.
294. Architectures are auto-detected. Use `make ARCH=i386` to force a
30   build for i386. Other supported architectures are i486, i586, and
31   i686. GCC 4.8 is the minimum requirement for correct codegen on
32   older 32-bit architectures.
33
34## Acknowledgements
35
36PowerPC support for openlibm was graciously sponsored by IBM.
37