[IOT-1320] Make SECURED flag default '1'
[platform/upstream/iotivity.git] / auto_build.py
1 #!/usr/bin/python
2
3 import os
4 import sys
5 import platform
6 import subprocess
7 import multiprocessing
8
9 # help message
10 def helpmsg(script):
11     helpstr = '''
12 Usage:
13     build:
14         python %s <targetbuild>
15         Allowed values for <target_build>: all, linux_unsecured, linux_secured, linux_unsecured_with_ra, linux_secured_with_ra, linux_unsecured_with_rd, linux_secured_with_rd, android, arduino, tizen, simulator, darwin, windows, msys
16         Note: \"linux\" will build \"linux_unsecured\", \"linux_secured\", \"linux_unsecured_with_ra\", \"linux_secured_with_ra\", \"linux_secured_with_rd\", \"linux_unsecured_with_mq\", \"linux_secured_with_tcp\" & \"linux_unsecured_with_tcp\" & \"linux_unsecured_with_rd\".
17         Any selection will build both debug and release versions of all available targets in the scope you've selected.
18         To choose any specific command, please use the SCons commandline directly. Please refer to [IOTIVITY_REPO]/Readme.scons.txt.
19     clean:
20         python %s -c
21     '''
22     print (helpstr % (script, script))
23     sys.exit()
24
25 def call_scons(build_options, extra_option_str):
26     """
27     This function formats and runs a scons command
28     Arguments:
29     build_options    -- {Dictionary} build flags (keys) associated with values;
30     extra_option_str -- {String} extra options to append to scons command
31     """
32     cmd_line = "scons VERBOSE=" + VERBOSE
33     for key in build_options:
34         cmd_line += " " + key + "=" + str(build_options[key])
35
36     cmd_line += " " + str(extra_option_str)
37
38     print ("Running : " + cmd_line)
39     sys.stdout.flush()
40     exit_code = subprocess.Popen(cmd_line, shell=True).wait()
41     if exit_code != 0:
42         exit(exit_code)
43
44 def build_all(flag, extra_option_str):
45     if platform.system() == "Linux":
46         build_linux_unsecured(flag, extra_option_str)
47         build_linux_secured(flag, extra_option_str)
48         build_linux_unsecured_with_ra(flag, extra_option_str)
49         build_linux_secured_with_ra(flag, extra_option_str)
50         build_linux_unsecured_with_rm(flag, extra_option_str)
51         build_linux_unsecured_with_rd(flag, extra_option_str)
52         build_linux_secured_with_rd(flag, extra_option_str)
53         build_linux_unsecured_with_mq(flag, extra_option_str)
54         build_linux_unsecured_with_tcp(flag, extra_option_str)
55         build_linux_secured_with_tcp(flag, extra_option_str)
56         build_linux_unsecured_with_java(flag, extra_option_str)
57         build_linux_secured_with_java(flag, extra_option_str)
58         build_simulator(flag, extra_option_str)
59
60         build_android(flag, extra_option_str)
61         build_arduino(flag, extra_option_str)
62         build_tizen(flag, extra_option_str)
63
64     if platform.system() == "Windows":
65         build_windows(flag, extra_option_str)
66
67     if platform.system() == "Darwin":
68         build_darwin(flag, extra_option_str)
69
70 def build_linux(flag, extra_option_str):
71     build_linux_unsecured(flag, extra_option_str)
72     build_linux_secured(flag, extra_option_str)
73
74 def build_linux_unsecured(flag, extra_option_str):
75     print ("*********** Build for linux ************")
76     build_options = {
77                         'RELEASE':flag,
78                         'SECURED':0,
79                     }
80     call_scons(build_options, extra_option_str)
81
82 def build_linux_secured_with_tcp(flag, extra_option_str):
83     print ("*********** Build for linux with Secured TCP ************")
84     build_options = {
85                         'RELEASE':flag,
86                         'WITH_TCP': 1,
87                         'WITH_CLOUD':1,
88                     }
89     call_scons(build_options, extra_option_str)
90
91 def build_linux_unsecured_with_java(flag, extra_option_str):
92     print ("*********** Build for linux with Java support ************")
93     build_options = {
94                         'RELEASE':flag,
95                         'BUILD_JAVA': 1,
96                         'TARGET_TRANSPORT': 'IP',
97                     }
98     call_scons(build_options, extra_option_str)
99
100 def build_linux_secured_with_java(flag, extra_option_str):
101     print ("*********** Build for linux with Java support and secured ************")
102     build_options = {
103                         'RELEASE':flag,
104                         'BUILD_JAVA': 1,
105                         'TARGET_TRANSPORT': 'IP',
106                         'SECURED': 1,
107                     }
108     call_scons(build_options, extra_option_str)
109
110 def build_linux_unsecured_with_tcp(flag, extra_option_str):
111     print ("*********** Build for linux with TCP ************")
112     build_options = {
113                         'RELEASE':flag,
114                         'WITH_TCP': 1,
115                         'TARGET_TRANSPORT': 'IP',
116                         'SECURED':0,
117                     }
118     call_scons(build_options, extra_option_str)
119
120 def build_linux_unsecured_with_rm(flag, extra_option_str):
121     print ("*********** Build for linux with RoutingManager************")
122     build_options = {
123                         'ROUTING':'GW',
124                         'RELEASE':flag,
125                         'SECURED':0,
126                     }
127     call_scons(build_options, extra_option_str)
128
129 def build_linux_secured(flag, extra_option_str):
130     print ("*********** Build for linux with Security *************")
131     build_options = {
132                         'RELEASE':flag,
133                     }
134     call_scons(build_options, extra_option_str)
135
136 def build_linux_unsecured_with_ra(flag, extra_option_str):
137     print ("*********** Build for linux With Remote Access *************")
138     build_options = {
139                         'RELEASE':flag,
140                         'WITH_RA':1,
141                         'WITH_RA_IBB':1,
142                         'SECURED':0,
143                     }
144     call_scons(build_options, extra_option_str)
145
146 def build_linux_secured_with_ra(flag, extra_option_str):
147     print ("*********** Build for linux With Remote Access & Security ************")
148     build_options = {
149                         'RELEASE':flag,
150                         'WITH_RA':1,
151                         'WITH_RA_IBB':1,
152                     }
153     call_scons(build_options, extra_option_str)
154
155 def build_linux_unsecured_with_rd(flag, extra_option_str):
156     print ("*********** Build for linux With Resource Directory *************")
157     build_options = {
158                         'RELEASE':flag,
159                         'RD_MODE':'all',
160                         'SECURED':0,
161                     }
162     call_scons(build_options, extra_option_str)
163
164 def build_linux_secured_with_rd(flag, extra_option_str):
165     print ("*********** Build for linux With Resource Directory & Security ************")
166     build_options = {
167                         'RELEASE':flag,
168                         'RD_MODE':'all',
169                     }
170     call_scons(build_options, extra_option_str)
171
172 def build_linux_unsecured_with_mq(flag, extra_option_str):
173     print ("*********** Build for linux With Message Queue ************")
174     build_options = {
175                         'RELEASE':flag,
176                         'WITH_MQ':'PUB,SUB,BROKER',
177                         'SECURED':0,
178                     }
179     call_scons(build_options, extra_option_str)
180
181 def build_linux_unsecured_with_tcp(flag, extra_option_str):
182     print ("*********** Build for linux With tcp ************")
183     build_options = {
184                         'RELEASE':flag,
185                         'WITH_TCP':'1',
186                         'SECURED':0,
187                     }
188     call_scons(build_options, extra_option_str)
189
190 def build_android(flag, extra_option_str):
191     # Note: for android, as oic-resource uses C++11 feature stoi and to_string,
192     # it requires gcc-4.9, currently only android-ndk-r10(for linux)
193     # and windows android-ndk-r10(64bit target version) support these features.
194     print ("*********** Build for android armeabi *************")
195     build_options = {
196                         'TARGET_OS':'android',
197                         'TARGET_ARCH':'armeabi',
198                         'RELEASE':flag,
199                     }
200     call_scons(build_options, extra_option_str)
201
202 def build_android_x86(flag, extra_option_str):
203     """ Build Android x86 Suite """
204     build_android_x86_with_ip(flag, extra_option_str)
205     build_android_x86_with_bt(flag, extra_option_str)
206     build_android_x86_with_ble(flag, extra_option_str)
207
208 def build_android_x86_with_ip(flag, extra_option_str):
209     print ("*********** Build for android x86 *************")
210     build_options = {
211                         'TARGET_OS':'android',
212                         'TARGET_ARCH':'x86',
213                         'RELEASE':flag,
214                         'TARGET_TRANSPORT':'IP',
215                     }
216     call_scons(build_options, extra_option_str)
217
218 def build_android_x86_with_bt(flag, extra_option_str):
219     print ("*********** Build for android x86 with Bluetooth *************")
220     build_options = {
221                         'TARGET_OS':'android',
222                         'TARGET_ARCH':'x86',
223                         'RELEASE':flag,
224                         'TARGET_TRANSPORT':'BT',
225                     }
226     call_scons(build_options, extra_option_str)
227
228 def build_android_x86_with_ble(flag, extra_option_str):
229     print ("*********** Build for android x86 with Bluetooth Low Energy *************")
230     build_options = {
231                         'TARGET_OS':'android',
232                         'TARGET_ARCH':'x86',
233                         'RELEASE':flag,
234                         'TARGET_TRANSPORT':'BLE',
235                     }
236     call_scons(build_options, extra_option_str)
237
238 def build_android_x86_with_rm(flag, extra_option_str):
239     """ Build Android x86 Routing Manager Suite """
240     build_android_x86_with_rm_and_ip(flag, extra_option_str)
241     build_android_x86_with_rm_and_bt(flag, extra_option_str)
242     build_android_x86_with_rm_and_ble(flag, extra_option_str)
243
244 def build_android_x86_with_rm_and_ip(flag, extra_option_str):
245     print ("*********** Build for android x86 with Routing Manager *************")
246     build_options = {
247                         'TARGET_OS':'android',
248                         'TARGET_ARCH':'x86',
249                         'ROUTING':'GW',
250                         'RELEASE':flag,
251                         'TARGET_TRANSPORT':'IP',
252                     }
253     call_scons(build_options, extra_option_str)
254
255 def build_android_x86_with_rm_and_bt(flag, extra_option_str):
256     print ("*********** Build for android x86 with Routing Manager and Bluetooth *************")
257     build_options = {
258                         'TARGET_OS':'android',
259                         'TARGET_ARCH':'x86',
260                         'ROUTING':'GW',
261                         'RELEASE':flag,
262                         'TARGET_TRANSPORT':'BT',
263                     }
264     call_scons(build_options, extra_option_str)
265
266 def build_android_x86_with_rm_and_ble(flag, extra_option_str):
267     print ("*********** Build for android x86 with Routing Manager and Bluetooth Low Energy *************")
268     build_options = {
269                         'TARGET_OS':'android',
270                         'TARGET_ARCH':'x86',
271                         'ROUTING':'GW',
272                         'RELEASE':flag,
273                         'TARGET_TRANSPORT':'BLE',
274                     }
275     call_scons(build_options, extra_option_str)
276
277 def build_android_armeabi(flag, extra_option_str):
278     """ Build Android Armeabi Suite """
279     build_android_armeabi_with_ip(flag, extra_option_str)
280     build_android_armeabi_with_bt(flag, extra_option_str)
281     build_android_armeabi_with_ble(flag, extra_option_str)
282
283 def build_android_armeabi_with_ip(flag, extra_option_str):
284     print ("*********** Build for android armeabi *************")
285     build_options = {
286                         'TARGET_OS':'android',
287                         'TARGET_ARCH':'armeabi',
288                         'RELEASE':flag,
289                         'TARGET_TRANSPORT':'IP',
290                     }
291     call_scons(build_options, extra_option_str)
292
293 def build_android_armeabi_with_bt(flag, extra_option_str):
294     print ("*********** Build for android armeabi with Bluetooth *************")
295     build_options = {
296                         'TARGET_OS':'android',
297                         'TARGET_ARCH':'armeabi',
298                         'RELEASE':flag,
299                         'TARGET_TRANSPORT':'BT',
300                     }
301     call_scons(build_options, extra_option_str)
302
303 def build_android_armeabi_with_ble(flag, extra_option_str):
304     print ("*********** Build for android armeabi with Bluetooth Low Energy *************")
305     build_options = {
306                         'TARGET_OS':'android',
307                         'TARGET_ARCH':'armeabi',
308                         'RELEASE':flag,
309                         'TARGET_TRANSPORT':'BLE',
310                     }
311     call_scons(build_options, extra_option_str)
312
313 def build_android_armeabi_with_rm(flag, extra_option_str):
314     """ Build Android Armeabi Routing Manager Suite """
315     build_android_armeabi_with_rm_and_ip(flag, extra_option_str)
316     build_android_armeabi_with_rm_and_bt(flag, extra_option_str)
317     build_android_armeabi_with_rm_and_ble(flag, extra_option_str)
318
319 def build_android_armeabi_with_rm_and_ip(flag, extra_option_str):
320     print ("*********** Build for android armeabi with Routing Manager *************")
321     build_options = {
322                         'TARGET_OS':'android',
323                         'TARGET_ARCH':'armeabi',
324                         'ROUTING':'GW',
325                         'RELEASE':flag,
326                         'TARGET_TRANSPORT':'IP',
327                     }
328     call_scons(build_options, extra_option_str)
329
330 def build_android_armeabi_with_rm_and_bt(flag, extra_option_str):
331     print ("*********** Build for android armeabi with Routing Manager and Bluetooth *************")
332     build_options = {
333                         'TARGET_OS':'android',
334                         'TARGET_ARCH':'armeabi',
335                         'ROUTING':'GW',
336                         'RELEASE':flag,
337                         'TARGET_TRANSPORT':'BT',
338                     }
339     call_scons(build_options, extra_option_str)
340
341 def build_android_armeabi_with_rm_and_ble(flag, extra_option_str):
342     print ("*********** Build for android armeabi with Routing Manager and Bluetooth Low Energy *************")
343     build_options = {
344                         'TARGET_OS':'android',
345                         'TARGET_ARCH':'armeabi',
346                         'ROUTING':'GW',
347                         'RELEASE':flag,
348                         'TARGET_TRANSPORT':'BLE',
349                     }
350     call_scons(build_options, extra_option_str)
351
352 def build_arduino(flag, extra_option_str):
353     print ("*********** Build for arduino avr *************")
354     extra_option_str = "resource " + extra_option_str
355     build_options = {
356                         'TARGET_OS':'arduino',
357                         'UPLOAD':'false',
358                         'BOARD':'mega',
359                         'TARGET_ARCH':'avr',
360                         'TARGET_TRANSPORT':'IP',
361                         'SHIELD':'ETH',
362                         'RELEASE':flag,
363                     }
364     call_scons(build_options, extra_option_str)
365
366     build_options['SHIELD'] = 'WIFI'
367     call_scons(build_options, extra_option_str)
368
369     build_options['TARGET_TRANSPORT'] = 'BLE'
370     build_options['SHIELD']           = 'RBL_NRF8001'
371     call_scons(build_options, extra_option_str)
372
373     print ("*********** Build for arduino arm *************")
374     build_options['BOARD']            = 'arduino_due_x'
375     build_options['TARGET_ARCH']      = 'arm'
376     build_options['TARGET_TRANSPORT'] = 'IP'
377     build_options['SHIELD']           = 'ETH'
378     call_scons(build_options, extra_option_str)
379
380     build_options['SHIELD'] = 'WIFI'
381     call_scons(build_options, extra_option_str)
382
383     # BLE support for the Arduino Due is currently unavailable.
384
385 def build_tizen(flag, extra_option_str):
386     print ("*********** Build for Tizen *************")
387     cmd_line = "/bin/sh " + os.getcwd() + "/gbsbuild.sh"
388     print ("Running : " + cmd_line)
389     subprocess.Popen([cmd_line], shell=True).wait()
390
391     print ("*********** Build for Tizen octbstack lib and sample with security *************")
392     extra_option_str = "-f resource/csdk/stack/samples/tizen/build/SConscript " + extra_option_str
393     build_options = {
394                         'TARGET_OS':'tizen',
395                         'TARGET_TRANSPORT':'IP',
396                         'LOGGING':'true',
397                         'RELEASE':flag,
398                     }
399     call_scons(build_options, extra_option_str)
400
401     print ("*********** Build for Tizen octbstack lib and sample *************")
402     build_options['SECURED'] = 0
403     call_scons(build_options, extra_option_str)
404
405     print ("*********** Build for Tizen octbstack lib and sample with Routing Manager*************")
406     build_options['ROUTING'] = 'GW'
407     call_scons(build_options, extra_option_str)
408
409 # Mac OS and iOS
410 def build_darwin(flag, extra_option_str):
411     print ("*********** Build for OSX *************")
412     build_options = {
413                         'TARGET_OS':'darwin',
414                         'SYS_VERSION':'10.9',
415                         'RELEASE':flag,
416                     }
417     call_scons(build_options, extra_option_str)
418
419     print ("*********** Build for IOS i386 *************")
420     build_options = {
421                         'TARGET_OS':'ios',
422                         'TARGET_ARCH':'i386',
423                         'SYS_VERSION':'7.0',
424                         'RELEASE':flag,
425                     }
426     call_scons(build_options, extra_option_str)
427
428     print ("*********** Build for IOS x86_64 *************")
429     build_options['TARGET_ARCH'] = 'x86_64'
430     call_scons(build_options, extra_option_str)
431
432     print ("*********** Build for IOS armv7 *************")
433     build_options['TARGET_ARCH'] = 'armv7'
434     call_scons(build_options, extra_option_str)
435
436     print ("*********** Build for IOS armv7s *************")
437     build_options['TARGET_ARCH'] = 'armv7s'
438     call_scons(build_options, extra_option_str)
439
440     print ("*********** Build for IOS arm64 *************")
441     build_options['TARGET_ARCH'] = 'arm64'
442     call_scons(build_options, extra_option_str)
443
444 # Windows
445 def build_windows(flag, extra_option_str):
446     print ("*********** Build for Windows *************")
447     os.environ["SCONSFLAGS"] = ""
448     build_options = {
449                         'TARGET_OS':'windows',
450                         'TARGET_ARCH':'amd64',
451                         'RELEASE':flag,
452                         'WITH_RA':0,
453                         'TARGET_TRANSPORT':'IP',
454                         'WITH_TCP':0,
455                         'BUILD_SAMPLE':'ON',
456                         'LOGGING':'off',
457                         'TEST':1,
458                         'RD_MODE':'all',
459                     }
460     call_scons(build_options, extra_option_str)
461
462 # Windows msys
463 def build_msys(flag, extra_option_str):
464     print ("*********** Build for msys_nt *************")
465     os.environ["SCONSFLAGS"] = ""
466     build_options = {
467                         'TARGET_OS':'msys_nt',
468                         'TARGET_ARCH':'x86_64',
469                         'RELEASE':flag,
470                         'WITH_RA':0,
471                         'TARGET_TRANSPORT':'IP',
472                         'WITH_TCP':0,
473                         'BUILD_SAMPLE':'ON',
474                         'LOGGING':'off',
475                         'TEST':1,
476                         'RD_MODE':'all',
477                     }
478     call_scons(build_options, extra_option_str)
479
480 def build_simulator(flag, extra_option_str):
481     print ("*********** Build for simulator plugin *************")
482     build_options = {
483                         'SIMULATOR':1,
484                         'RELEASE':flag,
485                     }
486     call_scons(build_options, extra_option_str)
487
488 def unit_tests():
489     print ("*********** Unit test Start *************")
490     build_options = {
491                         'RELEASE':'false',
492                     }
493     extra_option_str = "-c ."
494     call_scons(build_options, extra_option_str)
495
496     build_options = {
497                         'TEST':1,
498                         'RELEASE':'false',
499                         'SECURED':0,
500                     }
501     extra_option_str = ""
502     call_scons(build_options, extra_option_str)
503
504     build_options = {
505                         'TEST':1,
506                         'SECURED':1,
507                         'RELEASE':'false',
508                     }
509     call_scons(build_options, extra_option_str)
510
511     print ("*********** Unit test Stop *************")
512
513 # Main module starts here
514 if os.getenv("SCONSFLAGS", "") == "":
515     os.environ["SCONSFLAGS"] = "-Q -j " + str(multiprocessing.cpu_count())
516
517 arg_num     = len(sys.argv)
518 script_name = sys.argv[0]
519
520 # May be overridden in user's shell
521 VERBOSE = os.getenv("VERBOSE", "1")
522
523 if arg_num == 1:
524     build_all("true", "")
525     build_all("false", "")
526     unit_tests()
527
528 elif arg_num == 2:
529     if str(sys.argv[1]) == '-c':
530         build_all("true", "-c")
531         build_all("false", "-c")
532
533     elif str(sys.argv[1]) == "all":
534         build_all("true", "")
535         build_all("false", "")
536         unit_tests()
537
538     elif str(sys.argv[1]) == "linux":
539         build_linux("true", "")
540         build_linux("false", "")
541
542     elif str(sys.argv[1]) == "linux_unsecured":
543         build_linux_unsecured("true", "")
544         build_linux_unsecured("false", "")
545         build_linux_unsecured_with_rm("true", "")
546         build_linux_unsecured_with_rm("false", "")
547
548     elif str(sys.argv[1]) == "linux_secured":
549         build_linux_secured("true", "")
550         build_linux_secured("false", "")
551
552     elif str(sys.argv[1]) == "linux_unsecured_with_ra":
553         build_linux_unsecured_with_ra("true", "")
554         build_linux_unsecured_with_ra("false", "")
555
556     elif str(sys.argv[1]) == "linux_secured_with_ra":
557         build_linux_secured_with_ra("true", "")
558         build_linux_secured_with_ra("false", "")
559
560     elif str(sys.argv[1]) == "linux_unsecured_with_rd":
561         build_linux_unsecured_with_rd("true", "")
562         build_linux_unsecured_with_rd("false", "")
563
564     elif str(sys.argv[1]) == "linux_secured_with_rd":
565         build_linux_secured_with_rd("true", "")
566         build_linux_secured_with_rd("false", "")
567
568     elif str(sys.argv[1]) == "linux_unsecured_with_mq":
569         build_linux_unsecured_with_mq("true", "")
570         build_linux_unsecured_with_mq("false", "")
571
572     elif str(sys.argv[1]) == "linux_unsecured_with_tcp":
573         build_linux_unsecured_with_tcp("true", "")
574         build_linux_unsecured_with_tcp("false", "")
575
576     elif str(sys.argv[1]) == "linux_secured_with_tcp":
577         build_linux_secured_with_tcp("false", "")
578         build_linux_secured_with_tcp("true", "")
579
580     elif str(sys.argv[1]) == "linux_unsecured_with_java":
581         build_linux_unsecured_with_java("false", "")
582         build_linux_unsecured_with_java("true", "")
583
584     elif str(sys.argv[1]) == "linux_secured_with_java":
585         build_linux_secured_with_java("false", "")
586         build_linux_secured_with_java("true", "")
587
588     elif str(sys.argv[1]) == "android":
589         build_android("true", "")
590         build_android("false", "")
591
592     elif str(sys.argv[1]) == "android_x86":
593         build_android_x86("true", "")
594         build_android_x86("false", "")
595         build_android_x86_with_rm("true", "")
596         build_android_x86_with_rm("false", "")
597
598     elif str(sys.argv[1]) == "android_x86_with_ip":
599         build_android_x86_with_ip("true", "")
600         build_android_x86_with_ip("false", "")
601
602     elif str(sys.argv[1]) == "android_x86_with_bt":
603         build_android_x86_with_bt("true", "")
604         build_android_x86_with_bt("false", "")
605
606     elif str(sys.argv[1]) == "android_x86_with_ble":
607         build_android_x86_with_ble("true", "")
608         build_android_x86_with_ble("false", "")
609
610     elif str(sys.argv[1]) == "android_x86_with_rm_and_ip":
611         build_android_x86_with_rm_and_ip("true", "")
612         build_android_x86_with_rm_and_ip("false", "")
613
614     elif str(sys.argv[1]) == "android_x86_with_rm_and_bt":
615         build_android_x86_with_rm_and_bt("true", "")
616         build_android_x86_with_rm_and_bt("false", "")
617
618     elif str(sys.argv[1]) == "android_x86_with_rm_and_ble":
619         build_android_x86_with_rm_and_ble("true", "")
620         build_android_x86_with_rm_and_ble("false", "")
621
622     elif str(sys.argv[1]) == "android_armeabi":
623         build_android_armeabi("true", "")
624         build_android_armeabi("false", "")
625         build_android_armeabi_with_rm("true", "")
626         build_android_armeabi_with_rm("false", "")
627
628     elif str(sys.argv[1]) == "android_armeabi_with_ip":
629         build_android_armeabi_with_ip("true", "")
630         build_android_armeabi_with_ip("false", "")
631
632     elif str(sys.argv[1]) == "android_armeabi_with_bt":
633         build_android_armeabi_with_bt("true", "")
634         build_android_armeabi_with_bt("false", "")
635
636     elif str(sys.argv[1]) == "android_armeabi_with_ble":
637         build_android_armeabi_with_ble("true", "")
638         build_android_armeabi_with_ble("false", "")
639
640     elif str(sys.argv[1]) == "android_armeabi_with_rm_and_ip":
641         build_android_armeabi_with_rm_and_ip("true", "")
642         build_android_armeabi_with_rm_and_ip("false", "")
643
644     elif str(sys.argv[1]) == "android_armeabi_with_rm_and_bt":
645         build_android_armeabi_with_rm_and_bt("true", "")
646         build_android_armeabi_with_rm_and_bt("false", "")
647
648     elif str(sys.argv[1]) == "android_armeabi_with_rm_and_ble":
649         build_android_armeabi_with_rm_and_ble("true", "")
650         build_android_armeabi_with_rm_and_ble("false", "")
651
652     elif str(sys.argv[1]) == "arduino":
653         build_arduino("true", "")
654         build_arduino("false", "")
655
656     elif str(sys.argv[1]) == "windows":
657         build_windows("true", "")
658         build_windows("false", "")
659
660     elif str(sys.argv[1]) == "msys":
661         build_msys("true", "")
662         build_msys("false", "")
663
664     elif str(sys.argv[1]) == "tizen":
665         build_tizen("true", "")
666         build_tizen("false", "")
667
668     elif str(sys.argv[1]) == "simulator":
669         build_simulator("true", "")
670         build_simulator("false", "")
671
672     elif str(sys.argv[1]) == "darwin":
673         build_darwin("true", "")
674         build_darwin("false", "")
675
676     elif str(sys.argv[1]) == "unit_tests":
677         unit_tests()
678
679     else:
680         helpmsg(script_name)
681 else:
682         helpmsg(script_name)
683
684 print ("===================== done =====================")