65aaba96e1
This is because all of these headers are included in direct style with no subfolder so we need them to be in a quite public `include/` folder. The Makefile installs in `include/openlibm/` but this only works with extra `-I` flags that are quite annoying to enforce. With this change, the only OpenLibm headers that are installed are named `openlibm_*.h`, which is sufficient in terms of namespacing. Also add a symlink libm.a -> libopenlibm.a. |
||
---|---|---|
.github | ||
aarch64 | ||
amd64 | ||
arm | ||
bsdsrc | ||
docs | ||
i387 | ||
include | ||
ld80 | ||
ld128 | ||
mips | ||
powerpc | ||
s390 | ||
sh3eb | ||
src | ||
test | ||
wasm32 | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
appveyor.yml | ||
giteapc.make | ||
LICENSE.md | ||
Make.inc | ||
Makefile | ||
openlibm.pc.in | ||
README-OpenLibm.md | ||
README.md |
Soft-FP sh3eb port of OpenLibm
This is a fork of OpenLibm with support for the sh3eb architecture, intended for add-in programming on fx-9860G and fx-CG 50.
Installing with GiteaPC
This library can be installed automatically with GiteaPC.
% giteapc install Lephenixnoir/OpenLibm
Building manually
You will need a GCC toolchain built with --target=sh3eb-elf
, such as the
sh-elf-gcc
commonly used on Planète Casio.
First locate the compiler's install directory. This is normally the
lib/gcc/sh3eb-elf/<version>/
folder inside the install path of the compiler.
% PREFIX=$(sh-elf-gcc --print-search-dirs | grep install | sed 's/install: //')
You can then build and install the static libopenlibm.a
archive and the headers.
% make USEGCC=1 TOOLPREFIX=sh-elf- AR=sh-elf-ar CC=sh-elf-gcc libdir="$PREFIX" includedir="$PREFIX/include" install-static install-headers
Using in a Makefile-based add-in
Link with -lopenlibm
as you would do with -lm
. Since OpenLibm headers
reference themselves by file name (#include <openlibm_complex.h>
) even though
they are installed in a subfolder, you need a -I
flag:
CFLAGS += -I $(shell sh-elf-gcc -print-file-name=include/openlibm)
LDFLAGS += -lopenlibm
Using in a CMake-based add-in
When using CMake with the fxSDK, add the include folder and library like this.
target_include_directories(<TARGET> PRIVATE "${FXSDK_COMPILER_INSTALL}/include/openlibm")
target_link_libraries(<TARGET> -lopenlibm)
README and Licensing
See the original README file in README-OpenLibm.md. OpenLibm contains code covered by various licenses, see LICENSE.md.