Build system base on scons(oic-resource)
[platform/upstream/iotivity.git] / csdk / SConscript
1 ##
2 # liboctbstack (static library) build script
3 ##
4
5 Import('env', 'BUILD_TARGET', 'TARGET_CPU_ARCH', 'RELEASE_BUILD', 'BUILD_DIR', 'SRC_TOP_DIR')
6
7 liboctbstack_env = env.Clone()
8
9 # Add third party libraries
10 SConscript(SRC_TOP_DIR + '/third_party_libs.scons')
11 Import('OIC_UTILS')
12
13 # As in the source code, it includes arduino Time library (C++)
14 # It requires compile the .c with g++
15 if BUILD_TARGET == 'arduino':
16         liboctbstack_env.Replace(CC = env.get('CXX'))
17         liboctbstack_env.Replace(CFLAGS = env.get('CXXFLAGS'))
18
19 ######################################################################
20 # Build flags
21 ######################################################################
22 liboctbstack_env.PrependUnique(CPPPATH = [
23                 OIC_UTILS + '/tb/cJSON/',
24                 'ocsocket/include',
25                 'logger/include',
26                 'ocrandom/include',
27                 'ocmalloc/include',
28                 'libcoap',
29                 'occoap/include',
30                 'stack/include',
31                 'stack/include/internal',
32                 '../oc_logger/include'
33                 ])
34
35 if BUILD_TARGET not in ['arduino', 'windows', 'winrt']:
36         liboctbstack_env.AppendUnique(CPPDEFINES  = ['WITH_POSIX'])
37         liboctbstack_env.AppendUnique(CFLAGS = ['-std=c99'])
38
39 if BUILD_TARGET not in ['windows', 'winrt']:
40         liboctbstack_env.AppendUnique(CFLAGS = ['-Wall'])
41
42 if not RELEASE_BUILD:
43         liboctbstack_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
44
45 ######################################################################
46 # Source files and Targets
47 ######################################################################
48 OCTBSTACK_SRC = 'stack/src/'
49 liboctbstack_src = [
50         'occoap/src/occoap.c',
51         'occoap/src/occoaphelper.c',
52         OCTBSTACK_SRC + 'ocstack.c',
53         OCTBSTACK_SRC + 'occlientcb.c',
54         OCTBSTACK_SRC + 'ocresource.c',
55         OCTBSTACK_SRC + 'ocobserve.c',
56         OCTBSTACK_SRC + 'occollection.c',
57         ]
58
59 if RELEASE_BUILD:
60         prefix = TARGET_CPU_ARCH + '-'
61 else:
62         prefix = TARGET_CPU_ARCH + 'd-'
63 cjson_obj = liboctbstack_env.Object(OIC_UTILS + '/tb/cJSON/cJSON.c', OBJPREFIX=prefix)
64 liboctbstack_src.append(cjson_obj)
65
66 liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
67 i_lctbs = liboctbstack_env.Install(BUILD_DIR, liboctbstack)
68 Alias('liboctbstack', i_lctbs)
69 env.AppendUnique(TS = ['liboctbstack'])