OpenLibm/README.md

1.7 KiB

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.