blob: ae465e93fea77fcc97779e296dd2fb53d4ddd866 [file] [log] [blame]
Szabolcs Nagy78892282018-04-24 17:10:05 +01001Arm Optimized Routines
2----------------------
George Landerda55ef92015-11-19 12:05:06 +00003
Szabolcs Nagy709020e2019-11-27 15:00:10 +00004This repository contains implementations of library functions
Szabolcs Nagy11253b02018-11-12 11:10:57 +00005provided by Arm under MIT License (See LICENSE). Contributions
Szabolcs Nagydbb919d2020-01-02 17:15:16 +00006to this project are accepted, but Contributors have to sign an
7Assignment Agreement, please follow the instructions in
8contributor-agreement.pdf. This is needed so upstreaming code
9to projects that require copyright assignment is possible.
George Landerda55ef92015-11-19 12:05:06 +000010
Szabolcs Nagya0ad28d2020-02-28 14:08:59 +000011Regular quarterly releases are tagged as vYY.MM, the latest
Szabolcs Nagy58af2932020-11-16 12:14:49 +000012release is v20.11.
Szabolcs Nagy709020e2019-11-27 15:00:10 +000013
Szabolcs Nagy78892282018-04-24 17:10:05 +010014Source code layout:
George Landerda55ef92015-11-19 12:05:06 +000015
Szabolcs Nagy78892282018-04-24 17:10:05 +010016build/ - build directory (created by make).
Szabolcs Nagy0af9fce2019-07-18 10:21:43 +010017math/ - math subproject sources.
Szabolcs Nagy78892282018-04-24 17:10:05 +010018math/include/ - math library public headers.
Szabolcs Nagy0af9fce2019-07-18 10:21:43 +010019math/test/ - math test and benchmark related sources.
20math/tools/ - tools used for designing the algorithms.
Ola Liljedahl6a988f62020-02-27 15:10:03 +010021networking/ - networking subproject sources.
22networking/include/ - networking library public headers.
23networking/test/ - networking test and benchmark related sources.
Szabolcs Nagy6b594432019-07-18 17:45:08 +010024string/ - string routines subproject sources.
25string/include/ - string library public headers.
26string/test/ - string test and benchmark related sources.
George Landerda55ef92015-11-19 12:05:06 +000027
Szabolcs Nagy0af9fce2019-07-18 10:21:43 +010028The steps to build the target libraries and run the tests:
George Landerda55ef92015-11-19 12:05:06 +000029
Szabolcs Nagy78892282018-04-24 17:10:05 +010030cp config.mk.dist config.mk
31# edit config.mk if necessary ...
George Landerda55ef92015-11-19 12:05:06 +000032make
33make check
34
Szabolcs Nagy78892282018-04-24 17:10:05 +010035Or building outside of the source directory:
George Landerda55ef92015-11-19 12:05:06 +000036
Szabolcs Nagy78892282018-04-24 17:10:05 +010037ln -s path/to/src/Makefile Makefile
38cp path/to/src/config.mk.dist config.mk
39echo 'srcdir = path/to/src' >> config.mk
40# further edits to config.mk
41make
42make check
George Landerda55ef92015-11-19 12:05:06 +000043
Szabolcs Nagy39dc36a2019-10-08 10:46:50 +010044Or building and testing the math subproject only:
45
46make all-math
47make check-math
48
Szabolcs Nagy78892282018-04-24 17:10:05 +010049The test system requires libmpfr and libmpc.
Szabolcs Nagy32fe1c52019-10-08 10:41:03 +010050For example on debian linux they can be installed as:
51
52sudo apt-get install libmpfr-dev libmpc-dev
George Landerda55ef92015-11-19 12:05:06 +000053
Szabolcs Nagy78892282018-04-24 17:10:05 +010054For cross build, CROSS_COMPILE should be set in config.mk and EMULATOR
55should be set for cross testing (e.g. using qemu-user or remote access
56to a target machine), see the examples in config.mk.dist.