forked from scheduler-tools/rt-app
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.in
111 lines (78 loc) · 2.87 KB
/
README.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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.