libevl/README

64 lines
1.9 KiB
Plaintext

Evenless (EVL) core library and utilities
=========================================
What's that?
------------
Building
--------
Prerequisites:
- a GCC toolchain with working thread-local storage support (TLS).
- the UAPI headers from the target kernel fit with the EVL core. We
need access to the contents of include/uapi/asm/ and
include/uapi/evenless/ from the source Linux tree.
Command:
$ make [-C $SRCDIR] [ARCH=$cpu_arch] [CROSS_COMPILE=$toolchain] UAPI=$uapi_dir [OTHER_BUILD_VARS] [goal...]
Make goals
~~~~~~~~~~
all generate binaries
clean remove build files
install copy generated binaries to $DESTDIR
Main build variables
~~~~~~~~~~~~~~~~~~~~
$SRCDIR Path to this source tree
$cpu_arch CPU architecture you build for
(e.g. 'arm', 'arm64')
$toolchain Optional fixed part of the binutils filename
(e.g. 'aarch64-linux-gnu-', 'arm-linux-gnueabihf-')
Other build variables
~~~~~~~~~~~~~~~~~~~~~
D={0|1} Disable|enable debug build, i.e. -g -O0 vs -O2 [0]
O=$output_dir Generate binary output files into $output_dir [.]
V={0|1} Set build verbosity level, 0 is terse [0]
DESTDIR=$install_dir Install library and binaries into $install_dir [/usr/evenless]
Build command examples
~~~~~~~~~~~~~~~~~~~~~~
Say the library source code is located at ~/git/evenless, and the
kernel sources featuring the EVL core is located at
~/git/linux-evenless. You could build+install the EVL library and
utilities directly to a staging directory at
/nfsroot/<machine>/usr/evenless as follows:
$ mkdir /tmp/build-imx6q && cd /tmp/build-imx6q
$ make -C ~/git/evenless O=$PWD ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- UAPI=~/git/linux-evenless DESTDIR=/nfsroot/imx6q/usr/evenless install
or,
$ mkdir /tmp/build-hikey
$ cd ~/git/evenless
$ make O=/tmp/build-hikey ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- UAPI=~/git/linux-evenless DESTDIR=/nfsroot/hikey/usr/evenless install