xref: /freebsd/contrib/arm-optimized-routines/README (revision 072a4ba82a01476eaee33781ccd241033eefcf0b)
131914882SAlex RichardsonArm Optimized Routines
231914882SAlex Richardson----------------------
331914882SAlex Richardson
431914882SAlex RichardsonThis repository contains implementations of library functions
5*072a4ba8SAndrew Turnerprovided by Arm. The outbound license is available under a dual
6*072a4ba8SAndrew Turnerlicense, at the user’s election, as reflected in the LICENSE file.
7*072a4ba8SAndrew TurnerContributions to this project are accepted, but Contributors have
8*072a4ba8SAndrew Turnerto sign an Assignment Agreement, please follow the instructions in
931914882SAlex Richardsoncontributor-agreement.pdf. This is needed so upstreaming code
10*072a4ba8SAndrew Turnerto projects that require copyright assignment is possible. Further
11*072a4ba8SAndrew Turnercontribution requirements are documented in README.contributors of
12*072a4ba8SAndrew Turnerthe appropriate subdirectory.
1331914882SAlex Richardson
1431914882SAlex RichardsonRegular quarterly releases are tagged as vYY.MM, the latest
15*072a4ba8SAndrew Turnerrelease is v23.01.
1631914882SAlex Richardson
1731914882SAlex RichardsonSource code layout:
1831914882SAlex Richardson
1931914882SAlex Richardsonbuild/          - build directory (created by make).
2031914882SAlex Richardsonmath/           - math subproject sources.
2131914882SAlex Richardsonmath/include/   - math library public headers.
2231914882SAlex Richardsonmath/test/      - math test and benchmark related sources.
2331914882SAlex Richardsonmath/tools/     - tools used for designing the algorithms.
2431914882SAlex Richardsonnetworking/     - networking subproject sources.
2531914882SAlex Richardsonnetworking/include/ - networking library public headers.
2631914882SAlex Richardsonnetworking/test/ - networking test and benchmark related sources.
2731914882SAlex Richardsonstring/         - string routines subproject sources.
2831914882SAlex Richardsonstring/include/ - string library public headers.
2931914882SAlex Richardsonstring/test/    - string test and benchmark related sources.
30*072a4ba8SAndrew Turnerpl/...          - separately maintained performance library code.
3131914882SAlex Richardson
3231914882SAlex RichardsonThe steps to build the target libraries and run the tests:
3331914882SAlex Richardson
3431914882SAlex Richardsoncp config.mk.dist config.mk
3531914882SAlex Richardson# edit config.mk if necessary ...
3631914882SAlex Richardsonmake
3731914882SAlex Richardsonmake check
3831914882SAlex Richardson
3931914882SAlex RichardsonOr building outside of the source directory:
4031914882SAlex Richardson
4131914882SAlex Richardsonln -s path/to/src/Makefile Makefile
4231914882SAlex Richardsoncp path/to/src/config.mk.dist config.mk
4331914882SAlex Richardsonecho 'srcdir = path/to/src' >> config.mk
4431914882SAlex Richardson# further edits to config.mk
4531914882SAlex Richardsonmake
4631914882SAlex Richardsonmake check
4731914882SAlex Richardson
4831914882SAlex RichardsonOr building and testing the math subproject only:
4931914882SAlex Richardson
5031914882SAlex Richardsonmake all-math
5131914882SAlex Richardsonmake check-math
5231914882SAlex Richardson
5331914882SAlex RichardsonThe test system requires libmpfr and libmpc.
5431914882SAlex RichardsonFor example on debian linux they can be installed as:
5531914882SAlex Richardson
5631914882SAlex Richardsonsudo apt-get install libmpfr-dev libmpc-dev
5731914882SAlex Richardson
5831914882SAlex RichardsonFor cross build, CROSS_COMPILE should be set in config.mk and EMULATOR
5931914882SAlex Richardsonshould be set for cross testing (e.g. using qemu-user or remote access
6031914882SAlex Richardsonto a target machine), see the examples in config.mk.dist.
61