xref: /third_party/optimized-routines/README (revision bbbf1280)
1bbbf1280Sopenharmony_ciArm Optimized Routines
2bbbf1280Sopenharmony_ci----------------------
3bbbf1280Sopenharmony_ci
4bbbf1280Sopenharmony_ciThis repository contains implementations of library functions
5bbbf1280Sopenharmony_ciprovided by Arm. The outbound license is available under a dual
6bbbf1280Sopenharmony_cilicense, at the user’s election, as reflected in the LICENSE file.
7bbbf1280Sopenharmony_ciContributions to this project are accepted, but Contributors have
8bbbf1280Sopenharmony_cito sign an Assignment Agreement, please follow the instructions in
9bbbf1280Sopenharmony_cicontributor-agreement.pdf. This is needed so upstreaming code
10bbbf1280Sopenharmony_cito projects that require copyright assignment is possible. Further
11bbbf1280Sopenharmony_cicontribution requirements are documented in README.contributors of
12bbbf1280Sopenharmony_cithe appropriate subdirectory.
13bbbf1280Sopenharmony_ci
14bbbf1280Sopenharmony_ciRegular quarterly releases are tagged as vYY.MM, the latest
15bbbf1280Sopenharmony_cirelease is v23.01.
16bbbf1280Sopenharmony_ci
17bbbf1280Sopenharmony_ciSource code layout:
18bbbf1280Sopenharmony_ci
19bbbf1280Sopenharmony_cibuild/          - build directory (created by make).
20bbbf1280Sopenharmony_cimath/           - math subproject sources.
21bbbf1280Sopenharmony_cimath/include/   - math library public headers.
22bbbf1280Sopenharmony_cimath/test/      - math test and benchmark related sources.
23bbbf1280Sopenharmony_cimath/tools/     - tools used for designing the algorithms.
24bbbf1280Sopenharmony_cinetworking/     - networking subproject sources.
25bbbf1280Sopenharmony_cinetworking/include/ - networking library public headers.
26bbbf1280Sopenharmony_cinetworking/test/ - networking test and benchmark related sources.
27bbbf1280Sopenharmony_cistring/         - string routines subproject sources.
28bbbf1280Sopenharmony_cistring/include/ - string library public headers.
29bbbf1280Sopenharmony_cistring/test/    - string test and benchmark related sources.
30bbbf1280Sopenharmony_cipl/...          - separately maintained performance library code.
31bbbf1280Sopenharmony_ci
32bbbf1280Sopenharmony_ciThe steps to build the target libraries and run the tests:
33bbbf1280Sopenharmony_ci
34bbbf1280Sopenharmony_cicp config.mk.dist config.mk
35bbbf1280Sopenharmony_ci# edit config.mk if necessary ...
36bbbf1280Sopenharmony_cimake
37bbbf1280Sopenharmony_cimake check
38bbbf1280Sopenharmony_ci
39bbbf1280Sopenharmony_ciOr building outside of the source directory:
40bbbf1280Sopenharmony_ci
41bbbf1280Sopenharmony_ciln -s path/to/src/Makefile Makefile
42bbbf1280Sopenharmony_cicp path/to/src/config.mk.dist config.mk
43bbbf1280Sopenharmony_ciecho 'srcdir = path/to/src' >> config.mk
44bbbf1280Sopenharmony_ci# further edits to config.mk
45bbbf1280Sopenharmony_cimake
46bbbf1280Sopenharmony_cimake check
47bbbf1280Sopenharmony_ci
48bbbf1280Sopenharmony_ciOr building and testing the math subproject only:
49bbbf1280Sopenharmony_ci
50bbbf1280Sopenharmony_cimake all-math
51bbbf1280Sopenharmony_cimake check-math
52bbbf1280Sopenharmony_ci
53bbbf1280Sopenharmony_ciThe test system requires libmpfr and libmpc.
54bbbf1280Sopenharmony_ciFor example on debian linux they can be installed as:
55bbbf1280Sopenharmony_ci
56bbbf1280Sopenharmony_cisudo apt-get install libmpfr-dev libmpc-dev
57bbbf1280Sopenharmony_ci
58bbbf1280Sopenharmony_ciFor cross build, CROSS_COMPILE should be set in config.mk and EMULATOR
59bbbf1280Sopenharmony_cishould be set for cross testing (e.g. using qemu-user or remote access
60bbbf1280Sopenharmony_cito a target machine), see the examples in config.mk.dist.
61