Go to file
Philippe Gerum 75fb37bf92 lib/mutex: silent success on closing an uninit mutex 2019-03-08 17:01:33 +01:00
commands build: export build system to external modules 2019-03-04 17:49:06 +01:00
include lib/mutex, convar: drop useless struct evl_monitor 2019-03-08 16:58:34 +01:00
lib lib/mutex: silent success on closing an uninit mutex 2019-03-08 17:01:33 +01:00
tests evl: rename libevenless to libevl 2019-03-04 17:49:07 +01:00
utils evl: rename libevenless to libevl 2019-03-04 17:49:07 +01:00
.gitignore evenless: nothing more 2019-03-04 17:49:06 +01:00
Makefile build: abort recursive make on downstream error 2019-03-04 17:49:06 +01:00
README doc: fix example 2019-03-04 17:49:07 +01:00
config.mk build: quiesce install commands when required 2019-03-04 17:49:07 +01:00
libversion.mk build: export build system to external modules 2019-03-04 17:49:06 +01:00

README

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