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 ca_os == 'arduino':
97 env.AppendUnique(CPPDEFINES = ['SINGLE_THREAD'])
98 env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO'])
99 print "setting WITH_ARDUINO"
101 'caconnectivitymanager.c',
102 'cainterfacecontroller.c',
103 'camessagehandler.c',
104 'canetworkconfigurator.c',
105 'caprotocolmessage.c',
106 'caretransmission.c',
110 'caconnectivitymanager.c',
111 'cainterfacecontroller.c',
112 'camessagehandler.c',
113 'canetworkconfigurator.c',
114 'caprotocolmessage.c',
115 'caqueueingthread.c',
116 'caretransmission.c',
118 if (('IP' in ca_transport) or ('ALL' in ca_transport)):
119 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'cablockwisetransfer.c') ])
120 env.AppendUnique(CPPDEFINES = ['WITH_BWT'])
122 env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
123 if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/tinydtls'):
124 env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'extlibs/tinydtls')])
126 env.AppendUnique(CPPPATH = ['#extlibs/tinydtls'])
129 os.path.join(ca_path, d) for d in ca_common_src ]
131 env.AppendUnique(CA_SRC = ca_common_src)
133 if 'ALL' in ca_transport:
137 transports.append('ra_adapter')
139 if ca_os in ['linux']:
140 transports.append('ip_adapter')
141 transports.append('bt_le_adapter')
142 elif ca_os in ['tizen']:
143 transports.append('ip_adapter')
144 transports.append('bt_edr_adapter')
145 transports.append('bt_le_adapter')
146 elif ca_os in ['android']:
147 transports.append('ip_adapter')
148 transports.append('bt_edr_adapter')
149 transports.append('bt_le_adapter')
150 transports.append('nfc_adapter')
151 elif ca_os in['darwin','ios', 'msys_nt', 'windows']:
152 transports.append('ip_adapter')
154 transports.append('ip_adapter')
155 transports.append('bt_edr_adapter')
156 transports.append('bt_le_adapter')
158 env.SConscript(dirs = [
159 os.path.join(ca_path, d) for d in transports ])
161 if 'IP' in ca_transport:
162 env.SConscript(os.path.join(ca_path, 'ip_adapter/SConscript'))
163 if ca_os == 'arduino':
165 transports = [ 'ip_adapter', 'tcp_adapter']
166 env.SConscript(dirs = [
167 os.path.join(ca_path, d) for d in transports ])
169 if 'BT' in ca_transport:
170 env.SConscript(os.path.join(ca_path, 'bt_edr_adapter/SConscript'))
172 if 'BLE' in ca_transport:
173 env.SConscript(os.path.join(ca_path, 'bt_le_adapter/SConscript'))
175 if 'NFC' in ca_transport:
176 env.SConscript(os.path.join(ca_path, 'nfc_adapter/SConscript'))
178 if ca_os in ['linux', 'tizen', 'android']:
180 env.SConscript(os.path.join(ca_path, 'tcp_adapter/SConscript'))
181 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
183 if ca_os in ['linux', 'tizen', 'android', 'arduino', 'ios']:
184 if (('BLE' in ca_transport) or ('BT' in ca_transport) or ('ALL' in ca_transport)):
185 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
187 print "Include path is %s" % env.get('CPPPATH')
188 print "Files path is %s" % env.get('CA_SRC')
190 lib_env = env.Clone()
191 lib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
193 if env.get('LOGGING'):
194 lib_env.AppendUnique(CPPDEFINES=['TB_LOG'])
196 if ca_os == 'android':
197 lib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libconnectivity_abstraction.so'])
199 if ca_os in ['android', 'tizen', 'linux']:
200 lib_env.AppendUnique(LIBS = ['coap'])
201 if lib_env.get('SECURED') == '1':
202 lib_env.AppendUnique(LIBS = ['tinydtls'])
203 lib_env.AppendUnique(LIBS = ['timer'])
204 if ca_os != 'android':
205 lib_env.AppendUnique(LIBS = ['rt'])
206 if ((lib_env.get('SECURED') == '1') and ((lib_env.get('WITH_TCP')) or (lib_env.get('WITH_CLOUD')))):
207 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
208 calib = lib_env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
209 elif ca_os in ['msys_nt', 'windows']:
210 lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
211 if lib_env.get('SECURED') == '1':
212 lib_env.AppendUnique(LIBS = ['tinydtls'])
213 lib_env.AppendUnique(LIBS = ['timer'])
214 calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
216 calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
217 lib_env.InstallTarget(calib, 'connectivity_abstraction')
218 lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')