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 env.SConscript('#' + tls_path + '/SConscript')
85 env.AppendUnique(CPPPATH = ['#' + tls_path + '/' + tls_headers_path])
86 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'adapter_util/ca_adapter_net_tls.c')])
90 if env.get('ROUTING') == 'GW':
91 env.AppendUnique(CPPDEFINES = ['ROUTING_GATEWAY'])
92 elif env.get('ROUTING') == 'EP':
93 env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
95 if ca_os == 'arduino':
96 env.AppendUnique(CPPDEFINES = ['SINGLE_THREAD'])
97 env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO'])
98 print "setting WITH_ARDUINO"
100 'caconnectivitymanager.c',
101 'cainterfacecontroller.c',
102 'camessagehandler.c',
103 'canetworkconfigurator.c',
104 'caprotocolmessage.c',
105 'caretransmission.c',
109 'caconnectivitymanager.c',
110 'cainterfacecontroller.c',
111 'camessagehandler.c',
112 'canetworkconfigurator.c',
113 'caprotocolmessage.c',
114 'caqueueingthread.c',
115 'caretransmission.c',
117 if (('IP' in ca_transport) or ('ALL' in ca_transport)):
118 env.AppendUnique(CA_SRC = [os.path.join(ca_path, 'cablockwisetransfer.c') ])
119 env.AppendUnique(CPPDEFINES = ['WITH_BWT'])
121 env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
122 if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/tinydtls'):
123 env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'extlibs/tinydtls')])
125 env.AppendUnique(CPPPATH = ['#extlibs/tinydtls'])
128 os.path.join(ca_path, d) for d in ca_common_src ]
130 env.AppendUnique(CA_SRC = ca_common_src)
132 if 'ALL' in ca_transport:
136 transports.append('ra_adapter')
138 if ca_os in ['linux']:
139 transports.append('ip_adapter')
140 transports.append('bt_le_adapter')
141 elif ca_os in ['tizen']:
142 transports.append('ip_adapter')
143 transports.append('bt_edr_adapter')
144 transports.append('bt_le_adapter')
145 elif ca_os in ['android']:
146 transports.append('ip_adapter')
147 transports.append('bt_edr_adapter')
148 transports.append('bt_le_adapter')
149 transports.append('nfc_adapter')
150 elif ca_os in['darwin','ios', 'msys_nt', 'windows']:
151 transports.append('ip_adapter')
153 transports.append('ip_adapter')
154 transports.append('bt_edr_adapter')
155 transports.append('bt_le_adapter')
157 env.SConscript(dirs = [
158 os.path.join(ca_path, d) for d in transports ])
160 if 'IP' in ca_transport:
161 env.SConscript(os.path.join(ca_path, 'ip_adapter/SConscript'))
162 if ca_os == 'arduino':
164 transports = [ 'ip_adapter', 'tcp_adapter']
165 env.SConscript(dirs = [
166 os.path.join(ca_path, d) for d in transports ])
168 if 'BT' in ca_transport:
169 env.SConscript(os.path.join(ca_path, 'bt_edr_adapter/SConscript'))
171 if 'BLE' in ca_transport:
172 env.SConscript(os.path.join(ca_path, 'bt_le_adapter/SConscript'))
174 if 'NFC' in ca_transport:
175 env.SConscript(os.path.join(ca_path, 'nfc_adapter/SConscript'))
177 if ca_os in ['linux', 'tizen', 'android']:
179 env.SConscript(os.path.join(ca_path, 'tcp_adapter/SConscript'))
180 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
182 if ca_os in ['linux', 'tizen', 'android', 'arduino', 'ios']:
183 if (('BLE' in ca_transport) or ('BT' in ca_transport) or ('ALL' in ca_transport)):
184 env.AppendUnique(CPPDEFINES = ['WITH_TCP'])
186 print "Include path is %s" % env.get('CPPPATH')
187 print "Files path is %s" % env.get('CA_SRC')
189 lib_env = env.Clone()
190 lib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
192 if env.get('LOGGING'):
193 lib_env.AppendUnique(CPPDEFINES=['TB_LOG'])
195 if ca_os == 'android':
196 lib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libconnectivity_abstraction.so'])
198 if ca_os in ['android', 'tizen', 'linux']:
199 lib_env.AppendUnique(LIBS = ['coap'])
200 if lib_env.get('SECURED') == '1':
201 lib_env.AppendUnique(LIBS = ['tinydtls'])
202 lib_env.AppendUnique(LIBS = ['timer'])
203 if ca_os != 'android':
204 lib_env.AppendUnique(LIBS = ['rt'])
205 if ((lib_env.get('SECURED') == '1') and ((lib_env.get('WITH_TCP')) or (lib_env.get('WITH_CLOUD')))):
206 lib_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto'])
207 calib = lib_env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
208 elif ca_os in ['msys_nt', 'windows']:
209 lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
210 if lib_env.get('SECURED') == '1':
211 lib_env.AppendUnique(LIBS = ['tinydtls'])
212 lib_env.AppendUnique(LIBS = ['timer'])
213 calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
215 calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
216 lib_env.InstallTarget(calib, 'connectivity_abstraction')
217 lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')