aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-12-25 09:08:48 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-12-25 09:08:48 -0500
commite8f92b2d543fede24283f1d309aeb6aaaefdf6e3 (patch)
treeb0e033f0415b204de883ba5b985603bb5daf1334
parent7164f71e036afdf053191ff4d6c7a6a9ed4029e8 (diff)
new build system: use scons
-rw-r--r--SConstruct67
1 files changed, 67 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
new file mode 100644
index 0000000..cf18b31
--- /dev/null
+++ b/SConstruct
@@ -0,0 +1,67 @@
1# #####################################################################
2# User configuration.
3LITMUS_KERNEL = '../litmus2008'
4
5# #####################################################################
6# Internal configuration.
7DEBUG_FLAGS = '-Wall -g -Wdeclaration-after-statement'
8API_FLAGS = '-D_XOPEN_SOURCE=600 -D_GNU_SOURCE'
9
10INCLUDE_DIRS = 'include/ %s/include/' % LITMUS_KERNEL
11
12# #####################################################################
13# Build configuration.
14from os import uname
15
16# sanity check
17(os, _, _, _, arch) = uname()
18if os != 'Linux':
19 print 'Error: Building liblitmus is only supported on Linux.'
20 Exit(1)
21
22if arch not in ('sparc64', 'i686'):
23 print 'Error: Building liblitmus is only supported on i686 and sparc64.'
24 Exit(1)
25
26env = Environment(
27 CC = 'gcc',
28 CPPPATH = Split(INCLUDE_DIRS),
29 CCFLAGS = Split(DEBUG_FLAGS) + Split(API_FLAGS)
30)
31
32if arch == 'sparc64':
33 # build 64 bit sparc v9 binaries
34 env.Append(CCFLAGS = Split('-mcpu=v9 -m64'))
35
36# link with lib libtmus
37rt = env.Clone(
38 LIBS = 'litmus',
39 LIBPATH = '.'
40)
41rt.Append(LINKFLAGS = '-static')
42
43# multithreaded real-time tasks
44mtrt = rt.Clone()
45mtrt.Append(LINKFLAGS = '-pthread')
46
47
48# #####################################################################
49# Targets: liblitmus
50# All the files in src/ are part of the library.
51env.Library('litmus', Glob('src/*.c'))
52
53# #####################################################################
54# Targets: simple tools that do not depend on liblitmus
55env.Program('cycles', 'bin/cycles.c')
56
57# #####################################################################
58# Targets: tools that depend on liblitmus
59rt.Program('base_task', 'bin/base_task.c')
60mtrt.Program('base_mt_task', 'bin/base_mt_task.c')
61rt.Program('wait_test', 'bin/wait_test.c')
62rt.Program('mode_test', 'bin/mode_test.c')
63rt.Program('np_test', 'bin/np_test.c')
64rt.Program('rt_launch', ['bin/rt_launch.c', 'bin/common.c'])
65rt.Program('rtspin', ['bin/rtspin.c', 'bin/common.c'])
66rt.Program('release_ts', 'bin/release_ts.c')
67rt.Program('showst', 'bin/showst.c')