# Soft-FP sh3eb port of OpenLibm This is a fork of [OpenLibm](https://github.com/JuliaMath/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](https://gitea.planet-casio.com/Lephenixnoir/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//` 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- 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 `) 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( PRIVATE "${FXSDK_COMPILER_INSTALL}/include/openlibm") target_link_libraries( -lopenlibm) ``` ## README and Licensing See the original README file in [README-OpenLibm.md](README-OpenLibm.md). OpenLibm contains code covered by various licenses, see [LICENSE.md](LICENSE.md).