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_tcp = env.get('WITH_TCP')
14 src_dir = env.get('SRC_DIR')
18 #####################################################################
19 # Source files and Target(s)
20 ######################################################################
22 print"Reading ca script %s"%ca_transport
24 env.PrependUnique(CPPPATH = [ os.path.join(root_dir, 'api') ])
25 env.AppendUnique(CPPPATH = [ os.path.join(root_dir, 'inc'),
26 os.path.join(root_dir, 'lib', 'libcoap-4.1.1'),
27 os.path.join(src_dir, 'resource', 'csdk', 'logger', 'include'),
28 os.path.join(root_dir, 'common', 'inc'),
29 os.path.join(root_dir, 'util', 'inc') ])
31 if ca_os not in ['arduino', 'windows']:
32 env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
34 if ca_os not in ['darwin', 'ios', 'windows']:
35 env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
37 if ca_os in ['darwin','ios']:
38 env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
40 # Getting common source files
41 env.SConscript(os.path.join(root_dir, 'common', 'SConscript'))
43 # Getting util source files
44 env.SConscript(os.path.join(root_dir, 'util', 'SConscript'))
46 # The tinydtls library is found in '#extlibs/tinydtls', where the '#'
47 # is interpreted by SCons as the top-level iotivity directory where
48 # the SConscruct file is found.
49 build_dir = env.get('BUILD_DIR')
50 if env.get('SECURED') == '1':
51 env.SConscript(build_dir + 'extlibs/tinydtls/SConscript')
52 env.SConscript(build_dir + 'extlibs/timer/SConscript')
53 env.AppendUnique(CPPPATH = ['#extlibs/timer'])
54 env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/connectivity/inc/pkix'])
56 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
57 'adapter_util/caadapterutils.c')])
58 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
59 'adapter_util/cafragmentation.c')])
61 if env.get('SECURED') == '1':
62 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
63 'adapter_util/caadapternetdtls.c')])
64 env.AppendUnique(CPPPATH = [os.path.join(root_dir,
66 if env.get('DTLS_WITH_X509') == '1':
67 env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/connectivity/inc/pkix'])
68 env.AppendUnique(CPPPATH = [src_dir + '/extlibs/tinydtls/ecc/'])
69 env.AppendUnique(CPPPATH = [src_dir + '/extlibs/tinydtls/sha2/'])
70 env.AppendUnique(CPPDEFINES = ['__WITH_X509__'])
71 if not env.get('RELEASE'):
72 env.AppendUnique(CPPDEFINES = ['X509_DEBUG'])
73 pkix_src = Glob('adapter_util/pkix/*.c');
74 env.AppendUnique(CA_SRC = pkix_src)
76 if ((secured == '1') and (with_tcp == True)):
77 env.AppendUnique(CPPDEFINES = ['__WITH_TLS__'])
78 tls_path = 'extlibs/mbedtls';
79 tls_headers_path = 'mbedtls/include';
80 if ca_os == 'tizen' and os.path.exists(root_dir + '/' + tls_path):
81 env.SConscript(os.path.join(root_dir, tls_path + '/SConscript'))
82 env.AppendUnique(CPPPATH = [os.path.join(root_dir, tls_path + '/' + tls_headers_path)])
84 if ca_os != 'android':
85 env.SConscript('#' + tls_path + '/SConscript')
86 env.AppendUnique(CPPPATH = ['#' + tls_path + '/' + tls_headers_path])
87 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_tls.c')])
91 if env.get('ROUTING') == 'GW':
92 env.AppendUnique(CPPDEFINES = ['ROUTING_GATEWAY'])
93 elif env.get('ROUTING') == 'EP':
94 env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
96 if env.get('WITH_PROXY'):
97 env.AppendUnique(CPPDEFINES = ['WITH_CHPROXY'])
99 if ca_os == 'arduino':
100 env.AppendUnique(CPPDEFINES = ['SINGLE_THREAD'])
101 env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO'])
102 print "setting WITH_ARDUINO"
104 'caconnectivitymanager.c',
105 'cainterfacecontroller.c',
106 'camessagehandler.c',
107 'canetworkconfigurator.c',
108 'caprotocolmessage.c',
109 'caretransmission.c',
113 'caconnectivitymanager.c',
114 'cainterfacecontroller.c',
115 'camessagehandler.c',
116 'canetworkconfigurator.c',
117 'caprotocolmessage.c',
118 'caqueueingthread.c',
119 'caretransmission.c',
121 if (('IP' in ca_transport) or ('ALL' in ca_transport)):
122 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'cablockwisetransfer.c') ])
123 env.AppendUnique(CPPDEFINES = ['WITH_BWT'])
125 env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
126 if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/tinydtls'):
127 env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'extlibs/tinydtls')])
129 env.AppendUnique(CPPPATH = ['#extlibs/tinydtls'])
132 os.path.join(ca_path, d) for d in ca_common_src ]
134 env.AppendUnique(CA_SRC = ca_common_src)
136 if 'ALL' in ca_transport:
140 transports.append('ra_adapter')
142 if ca_os in ['linux']:
143 transports.append('ip_adapter')
144 transports.append('bt_le_adapter')
145 elif ca_os in ['tizen']:
146 transports.append('ip_adapter')
147 transports.append('bt_edr_adapter')
148 transports.append('bt_le_adapter')
149 elif ca_os in ['android']:
150 transports.append('ip_adapter')
151 transports.append('bt_edr_adapter')
152 transports.append('bt_le_adapter')
153 transports.append('nfc_adapter')
154 elif ca_os in['darwin','ios', 'msys_nt', 'windows']:
155 transports.append('ip_adapter')
157 transports.append('ip_adapter')
158 transports.append('bt_edr_adapter')
159 transports.append('bt_le_adapter')
161 env.SConscript(dirs = [
162 os.path.join(ca_path, d) for d in transports ])
164 if 'IP' in ca_transport:
165 env.SConscript(os.path.join(ca_path, 'ip_adapter/SConscript'))
166 if ca_os == 'arduino':
168 transports = [ 'ip_adapter', 'tcp_adapter']
169 env.SConscript(dirs = [
170 os.path.join(ca_path, d) for d in transports ])
172 if 'BT' in ca_transport:
173 env.SConscript(os.path.join(ca_path, 'bt_edr_adapter/SConscript'))
175 if 'BLE' in ca_transport:
176 env.SConscript(os.path.join(ca_path, 'bt_le_adapter/SConscript'))
178 if 'NFC' in ca_transport:
179 env.SConscript(os.path.join(ca_path, 'nfc_adapter/SConscript'))
181 if ca_os in ['linux', 'tizen', 'android']:
183 env.SConscript(os.path.join(ca_path, 'tcp_adapter/SConscript'))
184 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
186 if ca_os in ['linux', 'tizen', 'android', 'arduino', 'ios']:
187 if (('BLE' in ca_transport) or ('BT' in ca_transport) or ('ALL' in ca_transport)):
188 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
190 print "Include path is %s" % env.get('CPPPATH')
191 print "Files path is %s" % env.get('CA_SRC')
193 lib_env = env.Clone()
194 lib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
196 if env.get('LOGGING'):
197 lib_env.AppendUnique(CPPDEFINES=['TB_LOG'])
199 if ca_os == 'android':
200 lib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libconnectivity_abstraction.so'])
202 if ca_os in ['android', 'tizen', 'linux']:
203 lib_env.AppendUnique(LIBS = ['coap'])
204 if lib_env.get('SECURED') == '1':
205 lib_env.AppendUnique(LIBS = ['tinydtls'])
206 lib_env.AppendUnique(LIBS = ['timer'])
207 if ca_os != 'android':
208 lib_env.AppendUnique(LIBS = ['rt'])
209 if ((lib_env.get('SECURED') == '1') and ((lib_env.get('WITH_TCP')) or (lib_env.get('WITH_CLOUD')))):
210 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
211 calib = lib_env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
212 elif ca_os in ['msys_nt', 'windows']:
213 lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
214 if lib_env.get('SECURED') == '1':
215 lib_env.AppendUnique(LIBS = ['tinydtls'])
216 lib_env.AppendUnique(LIBS = ['timer'])
217 calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
219 calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
220 lib_env.InstallTarget(calib, 'connectivity_abstraction')
221 lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')