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(CPPPATH = [os.path.join(src_dir, 'resource', 'csdk', 'security', 'include')])
78 env.AppendUnique(CPPDEFINES = ['__WITH_TLS__'])
79 tls_path = 'extlibs/mbedtls';
80 tls_headers_path = 'mbedtls/include';
81 if ca_os == 'tizen' and os.path.exists(root_dir + '/' + tls_path):
82 env.SConscript(os.path.join(root_dir, tls_path + '/SConscript'))
83 env.AppendUnique(CPPPATH = [os.path.join(root_dir, tls_path + '/' + tls_headers_path)])
85 if ca_os != 'android':
86 env.SConscript('#' + tls_path + '/SConscript')
87 env.AppendUnique(CPPPATH = ['#' + tls_path + '/' + tls_headers_path])
88 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_tls.c')])
92 if env.get('ROUTING') == 'GW':
93 env.AppendUnique(CPPDEFINES = ['ROUTING_GATEWAY'])
94 elif env.get('ROUTING') == 'EP':
95 env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
97 if env.get('WITH_PROXY'):
98 env.AppendUnique(CPPDEFINES = ['WITH_CHPROXY'])
100 if ca_os == 'arduino':
101 env.AppendUnique(CPPDEFINES = ['SINGLE_THREAD'])
102 env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO'])
103 print "setting WITH_ARDUINO"
105 'caconnectivitymanager.c',
106 'cainterfacecontroller.c',
107 'camessagehandler.c',
108 'canetworkconfigurator.c',
109 'caprotocolmessage.c',
110 'caretransmission.c',
114 'caconnectivitymanager.c',
115 'cainterfacecontroller.c',
116 'camessagehandler.c',
117 'canetworkconfigurator.c',
118 'caprotocolmessage.c',
119 'caqueueingthread.c',
120 'caretransmission.c',
122 if (('IP' in ca_transport) or ('ALL' in ca_transport)):
123 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'cablockwisetransfer.c') ])
124 env.AppendUnique(CPPDEFINES = ['WITH_BWT'])
126 env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
127 if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/tinydtls'):
128 env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'extlibs/tinydtls')])
130 env.AppendUnique(CPPPATH = ['#extlibs/tinydtls'])
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']:
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 ca_os in ['android', 'tizen', 'linux']:
204 lib_env.AppendUnique(LIBS = ['coap'])
205 if lib_env.get('SECURED') == '1':
206 lib_env.AppendUnique(LIBS = ['tinydtls'])
207 lib_env.AppendUnique(LIBS = ['timer'])
208 if ca_os != 'android':
209 lib_env.AppendUnique(LIBS = ['rt'])
210 if ((lib_env.get('SECURED') == '1') and ((lib_env.get('WITH_TCP')) or (lib_env.get('WITH_CLOUD')))):
211 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
212 calib = lib_env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
213 elif ca_os in ['msys_nt', 'windows']:
214 lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
215 if lib_env.get('SECURED') == '1':
216 lib_env.AppendUnique(LIBS = ['tinydtls'])
217 lib_env.AppendUnique(LIBS = ['timer'])
218 calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
220 calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
221 lib_env.InstallTarget(calib, 'connectivity_abstraction')
222 lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')