Build system base on scons(oic-resource)
[platform/upstream/iotivity.git] / csdk / libcoap-4.1.1 / SConscript
1 ##
2 # libcoap (static library) build script
3 ##
4
5 Import('env', 'BUILD_TARGET', 'TARGET_CPU_ARCH', 'RELEASE_BUILD', 'BUILD_DIR', 'ARDUINO_HOME')
6
7 libcoap_env = env.Clone()
8
9 # As in the source code, it includes arduino Time library (C++)
10 # It requires compile the .c with g++
11 if BUILD_TARGET == 'arduino':
12         libcoap_env.Replace(CC = env.get('CXX'))
13         libcoap_env.Replace(CFLAGS = env.get('CXXFLAGS'))
14
15 ######################################################################
16 # Build flags
17 ######################################################################
18 libcoap_env.PrependUnique(CPPPATH = [
19                 '../ocsocket/include',
20                 '../ocmalloc/include',
21                 '../logger/include',
22                 '../ocrandom/include',
23                 '../stack',
24                 '../../oc_logger/include'
25                 ])
26
27 if BUILD_TARGET not in ['arduino', 'windows', 'winrt']:
28         libcoap_env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
29         libcoap_env.AppendUnique(CFLAGS = ['-std=gnu99'])
30
31 if BUILD_TARGET not in ['windows', 'winrt']:
32         libcoap_env.AppendUnique(CFLAGS = ['-Wall', '-ffunction-sections',
33                         '-fdata-sections', '-fno-exceptions'])
34
35 if not RELEASE_BUILD:
36         libcoap_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
37
38 ######################################################################
39 # Source files and Target(s)
40 ######################################################################
41 libcoap_src = [
42         'pdu.c',
43         'net.c',
44         'debug.c',
45         'encode.c',
46         'uri.c',
47         'coap_list.c',
48         'resource.c',
49         'hashkey.c',
50     'str.c',
51         'option.c',
52         'async.c',
53         'subscribe.c',
54         'block.c',
55         '../logger/src/logger.c',
56         '../ocrandom/src/ocrandom.c',
57         '../ocmalloc/src/ocmalloc.c',
58         '../../oc_logger/c/oc_logger.c',
59         '../../oc_logger/c/oc_console_logger.c'
60         ]
61
62 if BUILD_TARGET == 'arduino':
63         if env.get('NET') == 'Wifi':
64                 libcoap_src.append(['../ocsocket/src/ocsocket_arduino_wifi.cpp'])
65         else:
66                 libcoap_src.append(['../ocsocket/src/ocsocket_arduino.cpp'])
67
68         if RELEASE_BUILD:
69                 prefix = TARGET_CPU_ARCH + '-'
70         else:
71                 prefix = TARGET_CPU_ARCH + 'd-'
72         time_obj = libcoap_env.Object(ARDUINO_HOME + '/libraries/Time/Time.cpp', OBJPREFIX=prefix)
73         libcoap_src.append(time_obj)
74 else:
75         libcoap_src.append(['../ocsocket/src/ocsocket.c'])
76
77 libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap')
78 i_lc = libcoap_env.Install(BUILD_DIR, libcoap)
79 Alias('libcoap', i_lc)
80 env.AppendUnique(TS = ['libcoap'])