8 ca_os = env.get('TARGET_OS')
9 ca_transport = env.get('TARGET_TRANSPORT')
10 secured = env.get('SECURED')
11 with_mbedtls_static = env.get('WITH_MBEDTLS_STATIC_LIB');
12 multiple_owner = env.get('MULTIPLE_OWNER')
13 with_ra = env.get ('WITH_RA')
14 with_ra_ibb = env.get('WITH_RA_IBB')
15 with_tcp = env.get('WITH_TCP')
16 src_dir = env.get('SRC_DIR')
20 #####################################################################
21 # Source files and Target(s)
22 ######################################################################
24 print"Reading ca script %s"%ca_transport
26 env.PrependUnique(CPPPATH = [ os.path.join(root_dir, 'api') ])
28 with_upstream_libcoap = env.get('WITH_UPSTREAM_LIBCOAP')
29 if with_upstream_libcoap == '1':
30 # For bring up purposes only, we manually copy the forked version to where the unforked version is downloaded.
31 env.AppendUnique(CPPPATH = [os.path.join('#extlibs', 'libcoap', 'libcoap', 'include')])
32 env.AppendUnique(CPPDEFINES = ['WITH_UPSTREAM_LIBCOAP'])
34 # For bring up purposes only, the forked version will live here.
35 env.AppendUnique(CPPPATH = [ os.path.join(root_dir, 'lib', 'libcoap-4.1.1', 'include')])
37 env.AppendUnique(CPPPATH = [ os.path.join(root_dir, 'inc'),
38 os.path.join(src_dir, 'resource', 'csdk', 'stack', 'include'),
39 os.path.join(src_dir, 'resource', 'csdk', 'logger', 'include'),
40 os.path.join(root_dir, 'common', 'inc'),
41 os.path.join(root_dir, '/usr', 'include','glib-2.0'),
42 os.path.join(root_dir, '/usr', 'lib','glib-2.0', 'include'),
43 os.path.join(root_dir, 'util', 'inc')])
45 if ca_os not in ['arduino', 'windows']:
46 env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
48 if ca_os not in ['darwin', 'ios', 'windows']:
49 env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
51 if ca_os in ['darwin','ios']:
52 env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
54 # Getting common source files
55 env.SConscript(os.path.join(root_dir, 'common', 'SConscript'))
57 # Getting util source files
58 env.SConscript(os.path.join(root_dir, 'util', 'SConscript'))
60 build_dir = env.get('BUILD_DIR')
62 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
63 'adapter_util/caadapterutils.c')])
65 if (('BLE' in ca_transport) or ('ALL' in ca_transport)):
66 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
67 'adapter_util/cafragmentation.c')])
69 if env.get('SECURED') == '1':
70 env.SConscript(build_dir + 'extlibs/timer/SConscript')
71 env.AppendUnique(CPPPATH = ['#extlibs/timer'])
72 env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/security/include'])
73 env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
74 env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'external/inc')])
75 tls_path = 'extlibs/mbedtls';
76 tls_headers_path = 'mbedtls/include';
77 if ca_os == 'tizen' and os.path.exists(root_dir + '/' + tls_path):
78 env.SConscript(os.path.join(root_dir, tls_path + '/SConscript'))
79 env.AppendUnique(CPPPATH = [os.path.join(root_dir, tls_path + '/' + tls_headers_path)])
81 if ca_os != 'android' and env.get('PLATFORM_TLS') == '0':
82 env.SConscript('#' + tls_path + '/SConscript')
83 env.AppendUnique(CPPPATH = ['#' + tls_path + '/' + tls_headers_path])
84 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_ssl.c')])
86 if ((secured == '1') and (with_tcp == True)):
87 env.AppendUnique(CPPDEFINES = ['__WITH_TLS__'])
89 if (multiple_owner == '1'):
90 env.AppendUnique(CPPDEFINES=['MULTIPLE_OWNER'])
96 env.SConscript('#extlibs/wksxmppxep/SConscript')
98 if env.get('ROUTING') == 'GW':
99 env.AppendUnique(CPPDEFINES = ['ROUTING_GATEWAY'])
100 elif env.get('ROUTING') == 'EP':
101 env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
103 if env.get('WITH_PROXY'):
104 env.AppendUnique(CPPDEFINES = ['WITH_CHPROXY'])
106 if ca_os == 'arduino':
107 env.AppendUnique(CPPDEFINES = ['SINGLE_THREAD'])
108 env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO'])
109 print "setting WITH_ARDUINO"
111 'caconnectivitymanager.c',
112 'cainterfacecontroller.c',
113 'camessagehandler.c',
114 'canetworkconfigurator.c',
115 'caprotocolmessage.c',
116 'caretransmission.c',
120 'caconnectivitymanager.c',
121 'cainterfacecontroller.c',
122 'camessagehandler.c',
123 'canetworkconfigurator.c',
124 'caprotocolmessage.c',
125 'caqueueingthread.c',
126 'caretransmission.c',
128 if (('IP' in ca_transport) or ('ALL' in ca_transport)):
129 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'cablockwisetransfer.c') ])
130 env.AppendUnique(CPPDEFINES = ['WITH_BWT'])
133 os.path.join(ca_path, d) for d in ca_common_src ]
135 env.AppendUnique(CA_SRC = ca_common_src)
137 if 'ALL' in ca_transport:
141 transports.append('ra_adapter')
143 if ca_os in ['linux']:
144 transports.append('ip_adapter')
145 transports.append('bt_le_adapter')
146 elif ca_os in ['tizen']:
147 transports.append('ip_adapter')
148 transports.append('bt_edr_adapter')
149 transports.append('bt_le_adapter')
150 elif ca_os in ['android']:
151 transports.append('ip_adapter')
152 transports.append('bt_edr_adapter')
153 transports.append('bt_le_adapter')
154 transports.append('nfc_adapter')
155 elif ca_os in['darwin','ios', 'msys_nt', 'windows']:
156 transports.append('ip_adapter')
158 transports.append('ip_adapter')
159 transports.append('bt_edr_adapter')
160 transports.append('bt_le_adapter')
162 env.SConscript(dirs = [
163 os.path.join(ca_path, d) for d in transports ])
165 if 'IP' in ca_transport:
166 env.SConscript(os.path.join(ca_path, 'ip_adapter/SConscript'))
167 if ca_os == 'arduino':
169 transports = [ 'ip_adapter', 'tcp_adapter']
170 env.SConscript(dirs = [
171 os.path.join(ca_path, d) for d in transports ])
173 if 'BT' in ca_transport:
174 env.SConscript(os.path.join(ca_path, 'bt_edr_adapter/SConscript'))
176 if 'BLE' in ca_transport:
177 env.SConscript(os.path.join(ca_path, 'bt_le_adapter/SConscript'))
179 if 'NFC' in ca_transport:
180 env.SConscript(os.path.join(ca_path, 'nfc_adapter/SConscript'))
182 if ca_os in ['linux', 'tizen', 'android', 'ios', 'tizenrt']:
184 env.SConscript(os.path.join(ca_path, 'tcp_adapter/SConscript'))
185 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
187 if ca_os in ['linux', 'tizen', 'android', 'arduino', 'ios']:
188 if (('BLE' in ca_transport) or ('BT' in ca_transport) or ('ALL' in ca_transport)):
189 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
191 print "Include path is %s" % env.get('CPPPATH')
192 print "Files path is %s" % env.get('CA_SRC')
194 lib_env = env.Clone()
195 lib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
197 if env.get('LOGGING'):
198 lib_env.AppendUnique(CPPDEFINES=['TB_LOG'])
200 if ca_os == 'android':
201 lib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libconnectivity_abstraction.so'])
203 if lib_env.get('SECURED') == '1':
204 if ca_os in ['windows', 'msys_nt', 'ios']:
205 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
206 lib_env.AppendUnique(LIBS = ['timer'])
208 if with_mbedtls_static == '1':
209 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
210 lib_env.AppendUnique(LIBS = ['timer'])
212 lib_env.AppendUnique(LIBPATH = [lib_env.get('BUILD_DIR')])
213 lib_env.AppendUnique(RPATH = [lib_env.get('BUILD_DIR')])
214 lib_env.PrependUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
215 lib_env.PrependUnique(LIBS = ['timer'])
217 if ca_os in ['tizen']:
218 lib_env.AppendUnique(LIBS=['pthread'])
220 if ca_os in ['android', 'tizen', 'linux']:
221 lib_env.AppendUnique(LIBS = ['coap'])
222 if ca_os != 'android':
223 lib_env.AppendUnique(LIBS = ['rt'])
224 static_calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
225 shared_calib = lib_env.SharedLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
226 calib = Flatten([static_calib, shared_calib])
227 elif ca_os in ['msys_nt', 'windows']:
228 lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
229 calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
231 calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
233 lib_env.InstallTarget(calib, 'connectivity_abstraction')
234 lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')