9 ca_os = env.get('TARGET_OS')
10 ca_transport = env.get('TARGET_TRANSPORT')
11 secured = env.get('SECURED')
12 with_ra = env.get ('WITH_RA')
13 with_ra_ibb = env.get('WITH_RA_IBB')
14 with_tcp = env.get('WITH_TCP')
15 src_dir = env.get('SRC_DIR')
19 #####################################################################
20 # Source files and Target(s)
21 ######################################################################
23 print"Reading ca script %s"%ca_transport
25 env.PrependUnique(CPPPATH = [ os.path.join(root_dir, 'api') ])
26 env.AppendUnique(CPPPATH = [ os.path.join(root_dir, 'inc'),
27 os.path.join(root_dir, 'lib', 'libcoap-4.1.1'),
28 os.path.join(src_dir, 'resource', 'csdk', 'logger', 'include'),
29 os.path.join(root_dir, 'common', 'inc'),
30 os.path.join(root_dir, 'util', 'inc') ])
32 if ca_os not in ['arduino', 'windows']:
33 env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
35 if ca_os not in ['darwin', 'ios', 'windows']:
36 env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
38 if ca_os in ['darwin','ios']:
39 env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
41 # Getting common source files
42 env.SConscript(os.path.join(root_dir, 'common', 'SConscript'))
44 # Getting util source files
45 env.SConscript(os.path.join(root_dir, 'util', 'SConscript'))
47 # The tinydtls library is found in '#extlibs/tinydtls', where the '#'
48 # is interpreted by SCons as the top-level iotivity directory where
49 # the SConscruct file is found.
50 build_dir = env.get('BUILD_DIR')
51 if env.get('SECURED') == '1':
52 env.SConscript(build_dir + 'extlibs/tinydtls/SConscript')
53 env.SConscript(build_dir + 'extlibs/timer/SConscript')
54 env.AppendUnique(CPPPATH = ['#extlibs/timer'])
55 env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/connectivity/inc/pkix'])
57 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
58 'adapter_util/caadapterutils.c')])
59 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
60 'adapter_util/cafragmentation.c')])
62 if env.get('SECURED') == '1':
63 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
64 'adapter_util/caadapternetdtls.c')])
65 env.AppendUnique(CPPPATH = [os.path.join(root_dir,
67 if env.get('DTLS_WITH_X509') == '1':
68 env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/connectivity/inc/pkix'])
69 env.AppendUnique(CPPPATH = [src_dir + '/extlibs/tinydtls/ecc/'])
70 env.AppendUnique(CPPPATH = [src_dir + '/extlibs/tinydtls/sha2/'])
71 env.AppendUnique(CPPDEFINES = ['__WITH_X509__'])
72 if not env.get('RELEASE'):
73 env.AppendUnique(CPPDEFINES = ['X509_DEBUG'])
74 pkix_src = Glob('adapter_util/pkix/*.c');
75 env.AppendUnique(CA_SRC = pkix_src)
77 if ((secured == '1') and (with_tcp == True)):
78 env.AppendUnique(CPPPATH = [os.path.join(src_dir, 'resource', 'csdk', 'security', 'include')])
79 env.AppendUnique(CPPDEFINES = ['__WITH_TLS__'])
80 tls_path = 'extlibs/mbedtls';
81 tls_headers_path = 'mbedtls/include';
82 if ca_os == 'tizen' and os.path.exists(root_dir + '/' + tls_path):
83 env.SConscript(os.path.join(root_dir, tls_path + '/SConscript'))
84 env.AppendUnique(CPPPATH = [os.path.join(root_dir, tls_path + '/' + tls_headers_path)])
86 if ca_os != 'android':
87 env.SConscript('#' + tls_path + '/SConscript')
88 env.AppendUnique(CPPPATH = ['#' + tls_path + '/' + tls_headers_path])
89 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_tls.c')])
94 env.SConscript('#extlibs/wksxmppxep/SConscript')
96 if env.get('ROUTING') == 'GW':
97 env.AppendUnique(CPPDEFINES = ['ROUTING_GATEWAY'])
98 elif env.get('ROUTING') == 'EP':
99 env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
101 if env.get('WITH_PROXY'):
102 env.AppendUnique(CPPDEFINES = ['WITH_CHPROXY'])
104 if ca_os == 'arduino':
105 env.AppendUnique(CPPDEFINES = ['SINGLE_THREAD'])
106 env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO'])
107 print "setting WITH_ARDUINO"
109 'caconnectivitymanager.c',
110 'cainterfacecontroller.c',
111 'camessagehandler.c',
112 'canetworkconfigurator.c',
113 'caprotocolmessage.c',
114 'caretransmission.c',
118 'caconnectivitymanager.c',
119 'cainterfacecontroller.c',
120 'camessagehandler.c',
121 'canetworkconfigurator.c',
122 'caprotocolmessage.c',
123 'caqueueingthread.c',
124 'caretransmission.c',
126 if (('IP' in ca_transport) or ('ALL' in ca_transport)):
127 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'cablockwisetransfer.c') ])
128 env.AppendUnique(CPPDEFINES = ['WITH_BWT'])
130 env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
131 if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/tinydtls'):
132 env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'extlibs/tinydtls')])
134 env.AppendUnique(CPPPATH = ['#extlibs/tinydtls'])
137 os.path.join(ca_path, d) for d in ca_common_src ]
139 env.AppendUnique(CA_SRC = ca_common_src)
141 if 'ALL' in ca_transport:
145 transports.append('ra_adapter')
147 if ca_os in ['linux']:
148 transports.append('ip_adapter')
149 transports.append('bt_le_adapter')
150 elif ca_os in ['tizen']:
151 transports.append('ip_adapter')
152 transports.append('bt_edr_adapter')
153 transports.append('bt_le_adapter')
154 elif ca_os in ['android']:
155 transports.append('ip_adapter')
156 transports.append('bt_edr_adapter')
157 transports.append('bt_le_adapter')
158 transports.append('nfc_adapter')
159 elif ca_os in['darwin','ios', 'msys_nt', 'windows']:
160 transports.append('ip_adapter')
162 transports.append('ip_adapter')
163 transports.append('bt_edr_adapter')
164 transports.append('bt_le_adapter')
166 env.SConscript(dirs = [
167 os.path.join(ca_path, d) for d in transports ])
169 if 'IP' in ca_transport:
170 env.SConscript(os.path.join(ca_path, 'ip_adapter/SConscript'))
171 if ca_os == 'arduino':
173 transports = [ 'ip_adapter', 'tcp_adapter']
174 env.SConscript(dirs = [
175 os.path.join(ca_path, d) for d in transports ])
177 if 'BT' in ca_transport:
178 env.SConscript(os.path.join(ca_path, 'bt_edr_adapter/SConscript'))
180 if 'BLE' in ca_transport:
181 env.SConscript(os.path.join(ca_path, 'bt_le_adapter/SConscript'))
183 if 'NFC' in ca_transport:
184 env.SConscript(os.path.join(ca_path, 'nfc_adapter/SConscript'))
186 if ca_os in ['linux', 'tizen', 'android']:
188 env.SConscript(os.path.join(ca_path, 'tcp_adapter/SConscript'))
189 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
191 if ca_os in ['linux', 'tizen', 'android', 'arduino', 'ios']:
192 if (('BLE' in ca_transport) or ('BT' in ca_transport) or ('ALL' in ca_transport)):
193 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
195 print "Include path is %s" % env.get('CPPPATH')
196 print "Files path is %s" % env.get('CA_SRC')
198 lib_env = env.Clone()
199 lib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
201 if env.get('LOGGING'):
202 lib_env.AppendUnique(CPPDEFINES=['TB_LOG'])
204 if ca_os == 'android':
205 lib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libconnectivity_abstraction.so'])
207 if ca_os in ['android', 'tizen', 'linux']:
208 lib_env.AppendUnique(LIBS = ['coap'])
209 if lib_env.get('SECURED') == '1':
210 lib_env.AppendUnique(LIBS = ['tinydtls'])
211 lib_env.AppendUnique(LIBS = ['timer'])
212 if ca_os != 'android':
213 lib_env.AppendUnique(LIBS = ['rt'])
214 if ((lib_env.get('SECURED') == '1') and ((lib_env.get('WITH_TCP')) or (lib_env.get('WITH_CLOUD')))):
215 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
217 calib = lib_env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
218 elif ca_os in ['msys_nt', 'windows']:
219 lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
220 if lib_env.get('SECURED') == '1':
221 lib_env.AppendUnique(LIBS = ['tinydtls'])
222 lib_env.AppendUnique(LIBS = ['timer'])
223 calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
225 calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
227 lib_env.InstallTarget(calib, 'connectivity_abstraction')
228 lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')