rt-app emulates typical mobile and real-time systems use cases and gives runtime information
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.in

README for rt-app @VERSION@

==============
 INTRODUCTION
==============

rt-app is a test application that starts multiple periodic threads in order to
simulate a real-time periodic load.

Code is currently maintained on GitHub:

	http://github.com/scheduler-tools/rt-app


==============
 REQUIREMENTS
==============

rt-app runs on GNU/Linux. It needs bash, autoconf, automake, libtool,
libjson-c, GNU make and a recent compiler (tested on: gcc) for basic features.


=================
 BUILDING json-c
=================

If you are not happy using the version installed by your packaging system,
if it does not provide static libraries and you need them, need to
cross-compile, build it from source like this:

retrieve source code available here:

    https://github.com/json-c/json-c

cross-compile json-c and build both static and shared libraries for aarch64:

    export ac_cv_func_malloc_0_nonnull=yes
    export ac_cv_func_realloc_0_nonnull=yes
    ./autogen.sh
    ./configure --host=aarch64-linux-gnu --enable-shared --enable-static
    make


================================
 BUILDING AND INSTALLING rt-app
================================

VARIANT A)
cross-compile a static rt-app for aarch64, using your own json-c build
----------------------------------------------------------------------
(...that wasn't installed (or not into the standard locations))

    export ac_cv_lib_json_c_json_object_from_file=yes
    ./autogen.sh
    ./configure --host=aarch64-linux-gnu LDFLAGS="-L<absolute path to json repo>" CFLAGS="-I<path to parent of json-c repo>" --with-deadline
    AM_LDFLAGS="-all-static" make

configure supports the usual flags, like `--help` and `--prefix`, there is an
install target in the Makefile as well. `--with-deadline` enables support for
SCHED_DEADLINE.


EXAMPLE: with a directory structure like the following:

    $ tree -d -L 2
    |-- json-c
    |   |-- autoconf-archive
    |   |-- autom4te.cache
    |   |-- cmake
    |   |-- fuzz
    |   `-- tests
    `-- rt-app
        |-- autom4te.cache
        |-- build-aux
        |-- doc
        |-- libdl
        |-- m4
        `-- src


you would run:

    cd rt-app
    export ac_cv_lib_json_c_json_object_from_file=yes
    ./autogen.sh
    ./configure --host=aarch64-linux-gnu LDFLAGS="-L$PWD/../json-c" CFLAGS="-I$PWD/../" --with-deadline
    AM_LDFLAGS="-all-static" make

and you should get a static rt-app executable in the src directory.


VARIANT B)
regular build of rt-app for your host against json-c in canonical locations
---------------------------------------------------------------------------
(and installation with PREFIX=/usr/local)

    ./autogen.sh
    ./configure --with-deadline
    make
    make install


=======
 USAGE
=======

    $ rt-app [-l <log level>] <config_file>

where config file is a full/relative path to a json file (look under
doc/examples for examples) or "-" (without quotes) to read JSON data from
stdin.