build: Reformat build_common SConscripts
authorPhilippe Coval <philippe.coval@osg.samsung.com>
Wed, 21 Jun 2017 17:25:46 +0000 (19:25 +0200)
committerPhil Coval <philippe.coval@osg.samsung.com>
Wed, 28 Jun 2017 00:46:54 +0000 (00:46 +0000)
[Mats Wichmann]

build: Reformat all of the build_common SConscripts to be more Pythonic

There are not intended to be any functional changes.
The help variable definitions are split into multi-line,
in anticipation of later improving the descriptions and using
keyword-argument style to make the purpose of other args more clear.

Also included two files at the top level in this set,
as they seem to have the same intent as build_common.

In build_common/android/SConscript, an identical 4-line stanza, beginning:
  elif cmp(flags[0:9], 'PLATFORM=') == 0:  # get target platform: android-x
appears three times, the second and third were dropped in this change.

[Philippe Coval]

Port from master to 1.3-rel to help mergeback

Conflicts:
build_common/SConscript
build_common/android/SConscript
build_common/external_builders.scons
build_common/linux/SConscript

Change-Id: I0077e7350754fef25e75621fdb4a41cfcf28ef2a
Signed-off-by: Mats Wichmann <mats@linux.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/20545
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: George Nash <george.nash@intel.com>
Reviewed-by: Phil Coval <philippe.coval@osg.samsung.com>
Origin: master
Bug: https://jira.iotivity.org/browse/IOT-1745
Signed-off-by: Phil Coval <philippe.coval@osg.samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/20923
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
12 files changed:
arduino.scons
build_common/android/compatibility/c_compat.scons
build_common/android/compatibility/cpp11_compat.scons
build_common/arduino/SConscript
build_common/darwin/SConscript
build_common/external_builders.scons
build_common/external_libs.scons
build_common/linux/SConscript
build_common/msys_nt/SConscript
build_common/tizen/SConscript
build_common/windows/SConscript
extra_options.scons

index 4329775..606cab8 100644 (file)
@@ -26,27 +26,36 @@ Import('env')
 # Add 'SHIELD' build option, let user select board network connection type
 vars = Variables()
 if 'IP' in env.get('TARGET_TRANSPORT'):
-       vars.Add(EnumVariable('SHIELD', 'Network connection type', 'WIFI', ['ETH', 'WIFI']))
+    vars.Add(EnumVariable('SHIELD',
+                          'Network connection type',
+                          'WIFI',
+                          ['ETH', 'WIFI']))
 elif 'BLE' in env.get('TARGET_TRANSPORT'):
-       vars.Add(EnumVariable('SHIELD', 'Network connection type', 'RBL_NRF8001', ['RBL_NRF8001']))
+    vars.Add(EnumVariable('SHIELD',
+                          'Network connection type',
+                          'RBL_NRF8001',
+                          ['RBL_NRF8001']))
 vars.Update(env)
 Help(vars.GenerateHelpText(env))
 
 env.ImportLib('SPI')
 if 'ETH' in env.get('SHIELD'):
-       env.ImportLib('Ethernet')
-       env.AppendUnique(CPPDEFINES = ['ARDUINOETH'])
+    env.ImportLib('Ethernet')
+    env.AppendUnique(CPPDEFINES=['ARDUINOETH'])
 if 'WIFI' in env.get('SHIELD'):
-       env.ImportLib('WiFi')
-       env.AppendUnique(CPPDEFINES = ['ARDUINOWIFI'])
+    env.ImportLib('WiFi')
+    env.AppendUnique(CPPDEFINES=['ARDUINOWIFI'])
 if 'RBL_NRF8001' in env.get('SHIELD'):
-       env.ImportLib('BLE')
-       env.ImportLib('RBL_nRF8001')
+    env.ImportLib('BLE')
+    env.ImportLib('RBL_nRF8001')
 
 env.ImportLib('Time/Time')
 # we have variety of macros for arduino!!
-env.AppendUnique(CPPDEFINES = ['WITH_ARDUINO', '__ARDUINO__'])
+env.AppendUnique(CPPDEFINES=['WITH_ARDUINO', '__ARDUINO__'])
 # Set device name to __OIC_DEVICE_NAME__
-env.AppendUnique(CPPDEFINES = ['-D__OIC_DEVICE_NAME__=' + "\'\"" + env.get('DEVICE_NAME') + "\"\'"])
+env.AppendUnique(CPPDEFINES=[
+    '-D__OIC_DEVICE_NAME__=' + "\'\"" + env.get('DEVICE_NAME') + "\"\'"
+])
+
 if env.get('LOGGING'):
-       env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+    env.AppendUnique(CPPDEFINES=['TB_LOG'])
index 8aa4456..4cdf50e 100644 (file)
@@ -13,8 +13,9 @@ Import('env')
 
 sif_env = env.Clone()
 
-sif_lib = sif_env.StaticLibrary(env.get('BUILD_DIR') + '/c_compat',
-       env.SrcToObj(os.path.abspath('./c_compat.c'), env.get('SRC_DIR')))
+sif_lib = sif_env.StaticLibrary(
+    env.get('BUILD_DIR') + '/c_compat',
+    env.SrcToObj(os.path.abspath('./c_compat.c'), env.get('SRC_DIR')))
 
-env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-env.AppendUnique(LIBS = ['c_compat'])
\ No newline at end of file
+env.AppendUnique(LIBPATH=[env.get('BUILD_DIR')])
+env.AppendUnique(LIBS=['c_compat'])
index a06455f..826d2b8 100644 (file)
@@ -5,13 +5,15 @@ import os
 
 Import('env')
 
-env.AppendUnique(CPPDEFINES = ['ANDROID_C11_COMPAT'])
+env.AppendUnique(CPPDEFINES=['ANDROID_C11_COMPAT'])
 
 cc_env = env.Clone()
-cc_env.AppendUnique(CPPPATH = ['.'])
-cc_lib = cc_env.StaticLibrary(env.get('BUILD_DIR') + '/android_cpp11_compat',
-       env.SrcToObj(os.path.abspath('./android_cpp11_compat.cpp'), env.get('SRC_DIR')))
+cc_env.AppendUnique(CPPPATH=['.'])
+cc_lib = cc_env.StaticLibrary(
+    env.get('BUILD_DIR') + '/android_cpp11_compat',
+    env.SrcToObj(
+        os.path.abspath('./android_cpp11_compat.cpp'), env.get('SRC_DIR')))
 
-env.AppendUnique(CPPPATH = [os.path.abspath('.')])
-env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-env.AppendUnique(LIBS = ['android_cpp11_compat'])
+env.AppendUnique(CPPPATH=[os.path.abspath('.')])
+env.AppendUnique(LIBPATH=[env.get('BUILD_DIR')])
+env.AppendUnique(LIBS=['android_cpp11_compat'])
index 5dffa92..491cac1 100644 (file)
@@ -6,225 +6,253 @@ import platform
 
 Import('env')
 
+
 def __parse_config(f):
-       dict = {}
+    dict = {}
+
+    if not os.path.isfile(f):
+        return dict
 
-       if not os.path.isfile(f):
-               return dict
+    file = open(f, 'r')
+    strs = file.readlines()
+    for str in strs:
+        str = str.strip()
+        if len(str) > 0 and str[0] == '#':
+            continue
 
-       file = open(f, 'r')
-       strs = file.readlines()
-       for str in strs:
-               str = str.strip()
-               if len(str) > 0 and str[0] == '#':
-                       continue
+        idx = str.find('=')
+        if idx > 0:
+            dict.setdefault(str[0:idx], str[idx + 1:])
 
-               idx = str.find('=')
-               if idx > 0:
-                       dict.setdefault(str[0:idx], str[idx + 1:])
+    return dict
 
-       return dict
 
 def __get_boards(dict):
-       boards = []
-       keys = dict.keys()
-       for key in keys:
-               idx = key.find('.name')
-               if idx > 0:
-                       if key.endswith('.name'):
-                               boards.append(key[0:idx])
-       return boards
+    boards = []
+    keys = dict.keys()
+    for key in keys:
+        idx = key.find('.name')
+        if idx > 0:
+            if key.endswith('.name'):
+                boards.append(key[0:idx])
+    return boards
+
 
 def __get_cpu(dict, board):
-       cpus = []
-       keys = dict.keys()
-       for key in keys:
-               idx = key.find(board + '.menu.cpu.')
-               start = len(board + '.menu.cpu.')
-               if idx >= 0:
-                       end = key.find('.', start)
-                       if end > 0:
-                               cpu = key[start:end]
-                               exist = False
-                               for c in cpus:
-                                       if c == cpu:
-                                               exist = True
-                                               break
-
-                               if not exist:
-                                       cpus.append(cpu)
-       return cpus
+    cpus = []
+    keys = dict.keys()
+    for key in keys:
+        idx = key.find(board + '.menu.cpu.')
+        start = len(board + '.menu.cpu.')
+        if idx >= 0:
+            end = key.find('.', start)
+            if end > 0:
+                cpu = key[start:end]
+                exist = False
+                for c in cpus:
+                    if c == cpu:
+                        exist = True
+                        break
+
+                if not exist:
+                    cpus.append(cpu)
+    return cpus
+
 
 def __get_board_info(board, key):
-       if cpu:
-               v = boards_info.get(board + '.menu.cpu.' + cpu + key)
-               if not v:
-                       v = boards_info.get(board + key)
-       else:
-               v = boards_info.get(board + key)
-       return v
-
-def __search_files(path, pattern, ondisk=True, source=True, strings=False, recursive=True):
-       if not recursive:
-               return Glob(pattern, ondisk, source, strings)
-
-       matches = []
-       for root, dirnames, filenames in os.walk(path):
-               # This is a helper function to build Arduino libraries. Scripts are using this function
-               # to add all the files in a folder as compilation targets rather than specifying each
-               # file to compile from a Arduino library folder.
-
-               # Since the function is recursive, it adds even "/library/<library-name>/examples" to the
-               # compilation list. This is an extra overhead as stack is never going to use ".o" generated
-               # for these examples.
-               if 'examples' not in root:
-                       matches.extend(Glob(os.path.join(root, pattern), ondisk, source, strings))
-       return matches
+    if cpu:
+        v = boards_info.get(board + '.menu.cpu.' + cpu + key)
+        if not v:
+            v = boards_info.get(board + key)
+    else:
+        v = boards_info.get(board + key)
+    return v
+
+
+def __search_files(path,
+                   pattern,
+                   ondisk=True,
+                   source=True,
+                   strings=False,
+                   recursive=True):
+    if not recursive:
+        return Glob(pattern, ondisk, source, strings)
+
+    matches = []
+    for root, dirnames, filenames in os.walk(path):
+        # This is a helper function to build Arduino libraries. Scripts are using this function
+        # to add all the files in a folder as compilation targets rather than specifying each
+        # file to compile from a Arduino library folder.
+
+        # Since the function is recursive, it adds even "/library/<library-name>/examples" to the
+        # compilation list. This is an extra overhead as stack is never going to use ".o" generated
+        # for these examples.
+        if 'examples' not in root:
+            matches.extend(
+                Glob(os.path.join(root, pattern), ondisk, source, strings))
+    return matches
+
 
 # To make sure the src is built in 'BUILD_DIR' (by default it will be built at
 # the same directory as the .c .cpp .S)
 def __src_to_obj(env, srcs):
-       objs = []
-       prefix = env.get('BOARD') + '_'
-       if env.get('CPU'):
-               prefix += env.get('CPU') + '_'
-
-       build_dir = os.path.join(env.get('BUILD_DIR'), 'arduino')
-       for src in srcs:
-               if (os.path.isabs(src.path)):
-                       obj = src.path.replace(arduino_home, build_dir)
-               else:
-                       obj = os.path.join(build_dir, src.path)
-               i = obj.rfind('.')
-               obj = obj[0:i]
-               if env.get('OBJSUFFIX'):
-                       obj += env.get('OBJSUFFIX')
-               objs.extend(env.Object(obj, src, OBJPREFIX=prefix))
-       return objs
+    objs = []
+    prefix = env.get('BOARD') + '_'
+    if env.get('CPU'):
+        prefix += env.get('CPU') + '_'
+
+    build_dir = os.path.join(env.get('BUILD_DIR'), 'arduino')
+    for src in srcs:
+        if (os.path.isabs(src.path)):
+            obj = src.path.replace(arduino_home, build_dir)
+        else:
+            obj = os.path.join(build_dir, src.path)
+        i = obj.rfind('.')
+        obj = obj[0:i]
+        if env.get('OBJSUFFIX'):
+            obj += env.get('OBJSUFFIX')
+        objs.extend(env.Object(obj, src, OBJPREFIX=prefix))
+    return objs
+
 
 def __import_lib(env, lib):
-       lib_path = os.path.join(arduino_home, 'libraries', lib)
-       if not os.path.exists(lib_path):
-               if target_arch == 'avr':
-                       lib_path = os.path.join(arduino_home, 'hardware', 'arduino', 'avr', 'libraries', lib)
-               else:
-                       lib_path = os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'libraries', lib)
+    lib_path = os.path.join(arduino_home, 'libraries', lib)
+    if not os.path.exists(lib_path):
+        if target_arch == 'avr':
+            lib_path = os.path.join(arduino_home, 'hardware', 'arduino', 'avr',
+                                    'libraries', lib)
+        else:
+            lib_path = os.path.join(arduino_home, 'hardware', 'arduino', 'sam',
+                                    'libraries', lib)
 
-       if os.path.exists(os.path.join(lib_path, 'src')):
-               lib_path = os.path.join(lib_path, 'src')
+    if os.path.exists(os.path.join(lib_path, 'src')):
+        lib_path = os.path.join(lib_path, 'src')
 
-       env.AppendUnique(CPPPATH = [lib_path])
+    env.AppendUnique(CPPPATH=[lib_path])
 
-       if os.path.exists(os.path.join(lib_path, 'utility')):
-               env.AppendUnique(CPPPATH = [os.path.join(lib_path, 'utility')])
+    if os.path.exists(os.path.join(lib_path, 'utility')):
+        env.AppendUnique(CPPPATH=[os.path.join(lib_path, 'utility')])
 
-       lib_src = []
-       lib_src.extend(__search_files(lib_path, '*.S'))
-       lib_src.extend(__search_files(lib_path, '*.c'))
-       lib_src.extend(__search_files(lib_path, '*.cpp'))
+    lib_src = []
+    lib_src.extend(__search_files(lib_path, '*.S'))
+    lib_src.extend(__search_files(lib_path, '*.c'))
+    lib_src.extend(__search_files(lib_path, '*.cpp'))
 
-       lib_obj = __src_to_obj(env, lib_src)
-       build_dir = env.get('BUILD_DIR')
-       if build_dir:
-               lib_a = env.StaticLibrary(build_dir + lib, lib_obj)
-       else:
-               lib_a = env.StaticLibrary(lib, lib_obj)
+    lib_obj = __src_to_obj(env, lib_src)
+    build_dir = env.get('BUILD_DIR')
+    if build_dir:
+        lib_a = env.StaticLibrary(build_dir + lib, lib_obj)
+    else:
+        lib_a = env.StaticLibrary(lib, lib_obj)
 
-       # If we link libSPI.a, the final binary is not getting launched
-       # on the board.  Which is not the case if we directly use SPI.o.
+    # If we link libSPI.a, the final binary is not getting launched
+    # on the board.  Which is not the case if we directly use SPI.o.
 
-       if env.get('TARGET_ARCH') == 'arm':
-               if lib == 'SPI':
-                       for obj in lib_obj:
-                               if obj.name.endswith('SPI.o'):
-                                       env.PrependUnique(LIBS = [File(obj)])
-               else:
+    if env.get('TARGET_ARCH') == 'arm':
+        if lib == 'SPI':
+            for obj in lib_obj:
+                if obj.name.endswith('SPI.o'):
+                    env.PrependUnique(LIBS=[File(obj)])
+        else:
 
-                       env.AppendUnique(LIBS = [File(lib_a[0])])
-       else:
-               env.PrependUnique(LIBS = [File(lib_a[0])])
+            env.AppendUnique(LIBS=[File(lib_a[0])])
+    else:
+        env.PrependUnique(LIBS=[File(lib_a[0])])
+
+    #env.AppendUnique(LIBS = [File(lib_a[0])])
 
-       #env.AppendUnique(LIBS = [File(lib_a[0])])
 
 def __build_core(env):
-       core_src = __search_files(core_folder, '*.S')
-       core_src.extend(__search_files(core_folder, '*.c'))
-       core_src.extend(__search_files(core_folder, '*.cpp'))
+    core_src = __search_files(core_folder, '*.S')
+    core_src.extend(__search_files(core_folder, '*.c'))
+    core_src.extend(__search_files(core_folder, '*.cpp'))
+
+    core_src.extend(__search_files(variant_folder, '*.S'))
+    core_src.extend(__search_files(variant_folder, '*.c'))
+    core_src.extend(__search_files(variant_folder, '*.cpp'))
 
-       core_src.extend(__search_files(variant_folder, '*.S'))
-       core_src.extend(__search_files(variant_folder, '*.c'))
-       core_src.extend(__search_files(variant_folder, '*.cpp'))
+    core_obj = __src_to_obj(env, core_src)
 
-       core_obj = __src_to_obj(env, core_src)
+    prefix = env.get('BOARD') + '_'
+    if env.get('CPU'):
+        prefix += env.get('CPU') + '_'
 
-       prefix = env.get('BOARD') + '_'
-       if env.get('CPU'):
-               prefix += env.get('CPU') + '_'
+    core = os.path.join(env.get('BUILD_DIR', '.'), 'arduino', prefix + 'core')
+    s_core = env.StaticLibrary(core, core_obj)
 
-       core = os.path.join(env.get('BUILD_DIR', '.'), 'arduino', prefix + 'core')
-       s_core = env.StaticLibrary(core, core_obj)
+    env.AppendUnique(LIBS=[File(s_core[0])])
 
-       env.AppendUnique(LIBS = [File(s_core[0])])
+    # To avoid compiler issue. Otherewise there may be warnings:
+    # undefined reference to '_exit' '_close', '_getpid' ...
+    # Above functions are used in libc.a and implemented in syscalls_sam3.c
+    if env.get('TARGET_ARCH') == 'arm':
+        for obj in core_obj:
+            if obj.name.endswith('syscalls_sam3.o'):
+                env.AppendUnique(LIBS=[File(obj)])
 
-       # To avoid compiler issue. Otherewise there may be warnings:
-       #       undefined reference to '_exit' '_close', '_getpid' ...
-       # Above functions are used in libc.a and implemented in syscalls_sam3.c
-       if env.get('TARGET_ARCH') == 'arm':
-               for obj in core_obj:
-                       if obj.name.endswith('syscalls_sam3.o'):
-                               env.AppendUnique(LIBS = [File(obj)])
 
 def __create_bin(env, source):
-       name = source
-       if env.get('TARGET_ARCH') == 'avr':
-               eep = env.Command(name + '.eep', source, 'avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 $SOURCE $TARGET')
-               hex = env.Command(name + '.hex', source, 'avr-objcopy -O ihex -R .eeprom $SOURCE $TARGET')
-       else:
-               hex = env.Command(name + '.hex', source, 'arm-none-eabi-objcopy -O binary $SOURCE $TARGET')
+    name = source
+    if env.get('TARGET_ARCH') == 'avr':
+        eep = env.Command(
+            name + '.eep', source,
+            'avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 $SOURCE $TARGET'
+        )
+        hex = env.Command(name + '.hex', source,
+                          'avr-objcopy -O ihex -R .eeprom $SOURCE $TARGET')
+    else:
+        hex = env.Command(name + '.hex', source,
+                          'arm-none-eabi-objcopy -O binary $SOURCE $TARGET')
+
 
 #Currently supporting only mega (ie. Arduino ATMega2560) and arduino_due_x/arduino_due_x_dbg (i.e. Arduino Due) builds
 def __upload(env, binary):
-        if target_arch == 'avr':
-                protocol = __get_board_info(board, '.upload.protocol')
-                speed = __get_board_info(board, '.upload.speed')
-                port = '/dev/ttyACM0'
-                upload_cmd = arduino_home + '/hardware/tools/avr/bin/avrdude -C' + arduino_home +'/hardware/tools/avr/etc/avrdude.conf -p' \
-                + mcu + ' -c' + protocol + ' -P' + port + ' -b' + speed + ' -D -Uflash:w:' + binary + ':i'
-                print "Upload command: %s" %upload_cmd
-                install_cmd = env.Command('install_cmd', None, upload_cmd)
-                env.Default('install_cmd')
-        elif target_arch == 'arm':
-                port = 'ttyACM0'
-                upload_cmd = 'stty -F /dev/' + port + ' speed 1200 cs8 -cstopb -parenb \n' + arduino_home + '/hardware/tools/bossac -i --port=' + port + ' -U false -e -w -b ' + binary + ' -R'
-                print "Upload command: %s" %upload_cmd
-                install_cmd = env.Command('install_cmd', None, upload_cmd)
-                env.Default('install_cmd')
+    if target_arch == 'avr':
+        protocol = __get_board_info(board, '.upload.protocol')
+        speed = __get_board_info(board, '.upload.speed')
+        port = '/dev/ttyACM0'
+        upload_cmd = arduino_home + '/hardware/tools/avr/bin/avrdude -C' + arduino_home +'/hardware/tools/avr/etc/avrdude.conf -p' \
+        + mcu + ' -c' + protocol + ' -P' + port + ' -b' + speed + ' -D -Uflash:w:' + binary + ':i'
+        print "Upload command: %s" % upload_cmd
+        install_cmd = env.Command('install_cmd', None, upload_cmd)
+        env.Default('install_cmd')
+    elif target_arch == 'arm':
+        port = 'ttyACM0'
+        upload_cmd = 'stty -F /dev/' + port + ' speed 1200 cs8 -cstopb -parenb \n' + arduino_home + '/hardware/tools/bossac -i --port=' + port + ' -U false -e -w -b ' + binary + ' -R'
+        print "Upload command: %s" % upload_cmd
+        install_cmd = env.Command('install_cmd', None, upload_cmd)
+        env.Default('install_cmd')
+
 
 # Print the command line that to upload binary to the board
 def __upload_help(env):
-       if target_arch == 'avr':
-               protocol = __get_board_info(board, '.upload.protocol')
-               speed = __get_board_info(board, '.upload.speed')
+    if target_arch == 'avr':
+        protocol = __get_board_info(board, '.upload.protocol')
+        speed = __get_board_info(board, '.upload.speed')
 
-               upload_cmd = arduino_home + '/hardware/tools/avr/bin/avrdude -C' + arduino_home +'/hardware/tools/avr/etc/avrdude.conf -v -v -v -v -p' \
-       + mcu + ' -c' + protocol + ' -P<serial_port>' + ' -b' + speed + ' -D -Uflash:w:<hex_file>:i'
-       else:
-               uu = __get_board_info(board, '.upload.native_usb')
-               upload_cmd = arduino_home + '/hardware/tools/bossac -i -d --port=<serial_port> -U ' + uu + ' -e -w -v -b <bin file> -R'
+        upload_cmd = arduino_home + '/hardware/tools/avr/bin/avrdude -C' + arduino_home +'/hardware/tools/avr/etc/avrdude.conf -v -v -v -v -p' \
+       + mcu + ' -c' + protocol + ' -P<serial_port>' + ' -b' + speed + ' -D -Uflash:w:<hex_file>:i'
+    else:
+        uu = __get_board_info(board, '.upload.native_usb')
+        upload_cmd = arduino_home + '/hardware/tools/bossac -i -d --port=<serial_port> -U ' + uu + ' -e -w -v -b <bin file> -R'
 
-       Help('''
+    Help('''
 ===============================================================================
 You can upload the bin file with following command line:
 ''')
-       Help('\n   $ ' + upload_cmd)
-       Help('''
+    Help('\n   $ ' + upload_cmd)
+    Help('''
 \nPlease replace <xxx> according to the actual situation.
 ===============================================================================
 ''')
 
+
 # ARDUINO_HOME build option
 help_vars = Variables()
-help_vars.Add(PathVariable('ARDUINO_HOME', 'ARDUINO root directory', os.environ.get('ARDUINO_HOME')))
+help_vars.Add(
+    PathVariable('ARDUINO_HOME',
+                 'ARDUINO root directory',
+                 os.environ.get('ARDUINO_HOME')))
 help_vars.Update(env)
 Help(help_vars.GenerateHelpText(env))
 
@@ -238,73 +266,84 @@ print 'ARDUINO_HOME = ' + env.get('ARDUINO_HOME')
 
 # Overwrite suffixes and prefixes
 if env['HOST_OS'] == 'win32':
-       env['OBJSUFFIX'] = '.o'
-       env['SHOBJSUFFIX'] = '.os'
-       env['LIBPREFIX'] = 'lib'
-       env['LIBSUFFIX'] = '.a'
-       env['SHLIBPREFIX'] = 'lib'
-       env['SHLIBSUFFIX'] = '.so'
-       env['LIBPREFIXES'] = ['lib']
-       env['LIBSUFFIXES'] = ['.a', '.so']
-       env['PROGSUFFIX'] = ''
+    env['OBJSUFFIX'] = '.o'
+    env['SHOBJSUFFIX'] = '.os'
+    env['LIBPREFIX'] = 'lib'
+    env['LIBSUFFIX'] = '.a'
+    env['SHLIBPREFIX'] = 'lib'
+    env['SHLIBSUFFIX'] = '.so'
+    env['LIBPREFIXES'] = ['lib']
+    env['LIBSUFFIXES'] = ['.a', '.so']
+    env['PROGSUFFIX'] = ''
 elif platform.system().lower() == 'darwin':
-       env['SHLIBSUFFIX'] = '.so'
-       env['LIBSUFFIXES'] = ['.a', '.so']
-       env['PROGSUFFIX'] = ''
+    env['SHLIBSUFFIX'] = '.so'
+    env['LIBSUFFIXES'] = ['.a', '.so']
+    env['PROGSUFFIX'] = ''
 
 # Debug/release relative flags
 if env.get('RELEASE'):
-       env.AppendUnique(CCFLAGS = ['-Os'])
-       env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+    env.AppendUnique(CCFLAGS=['-Os'])
+    env.AppendUnique(CPPDEFINES=['NDEBUG'])
 else:
-       env.AppendUnique(CCFLAGS = ['-g'])
+    env.AppendUnique(CCFLAGS=['-g'])
 
 # Force header presence defines
-env.AppendUnique(CPPDEFINES = ['HAVE_ARDUINO_TIME_H'])
+env.AppendUnique(CPPDEFINES=['HAVE_ARDUINO_TIME_H'])
 
 # BOARD / CPU option
 
 # Get IDE version
 if os.path.exists(os.path.join(arduino_home, 'lib', 'version.txt')):
-       vf = open(os.path.join(arduino_home, 'lib', 'version.txt'), 'r')
-       version = vf.readline().replace('.', '').strip()
+    vf = open(os.path.join(arduino_home, 'lib', 'version.txt'), 'r')
+    version = vf.readline().replace('.', '').strip()
 else:
-       print '''
+    print '''
 ************************************* Error ***********************************
 * Can't find version file (lib/version.txt), please check if (%s)
 * is arduino root directory.                                                  *
 *******************************************************************************
 ''' % arduino_home
-       Exit(1)
+    Exit(1)
 
 if version[0:2] == '10':
-       is_1_0_x = True
-       boards_info = __parse_config(os.path.join(arduino_home, 'hardware', 'arduino', 'boards.txt'))
-       env.PrependENVPath('PATH', os.path.join(arduino_home, 'hardware', 'tools', 'avr', 'bin'))
-       env.Replace(CC = 'avr-gcc')
-       env.Replace(CXX = 'avr-g++')
-       env.Replace(AR = 'avr-ar')
-       env.Replace(AS = 'avr-as')
-       env.Replace(LINK = 'avr-gcc')
-       env.Replace(RANLIB = 'avr-ranlib')
-       if target_arch != 'avr':
-               print '''
+    is_1_0_x = True
+    boards_info = __parse_config(
+        os.path.join(arduino_home, 'hardware', 'arduino', 'boards.txt'))
+    env.PrependENVPath('PATH',
+                       os.path.join(arduino_home, 'hardware', 'tools', 'avr',
+                                    'bin'))
+    env.Replace(CC='avr-gcc')
+    env.Replace(CXX='avr-g++')
+    env.Replace(AR='avr-ar')
+    env.Replace(AS='avr-as')
+    env.Replace(LINK='avr-gcc')
+    env.Replace(RANLIB='avr-ranlib')
+    if target_arch != 'avr':
+        print '''
 ************************************* Error ***********************************
 * Arduino 1.0.x IDE only support 'avr', to support other arch at least 1.5.x  *
 * is required.
 *******************************************************************************
 '''
-               Exit(1)
+        Exit(1)
 else:
-       is_1_0_x = False
-       if target_arch == 'avr':
-               boards_info = __parse_config(os.path.join(arduino_home, 'hardware', 'arduino', 'avr', 'boards.txt'))
-               platform_info = __parse_config(os.path.join(arduino_home, 'hardware', 'arduino', 'avr', 'platform.txt'))
-       elif target_arch == 'arm':
-               boards_info = __parse_config(os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'boards.txt'))
-               platform_info = __parse_config(os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'platform.txt'))
-       else:
-               print '''
+    is_1_0_x = False
+    if target_arch == 'avr':
+        boards_info = __parse_config(
+            os.path.join(arduino_home, 'hardware', 'arduino', 'avr',
+                         'boards.txt'))
+        platform_info = __parse_config(
+            os.path.join(arduino_home, 'hardware', 'arduino', 'avr',
+                         'platform.txt'))
+    elif target_arch == 'arm':
+        boards_info = __parse_config(
+            os.path.join(arduino_home, 'hardware', 'arduino', 'sam',
+                         'boards.txt'))
+        platform_info = __parse_config(
+            os.path.join(arduino_home, 'hardware', 'arduino', 'sam',
+                         'platform.txt'))
+    else:
+        print '''
 ************************************* Error ***********************************
 * CPU arch %s isn't supported currently.
 *******************************************************************************
@@ -321,10 +360,10 @@ Help(help_vars.GenerateHelpText(env))
 board = env.get('BOARD')
 cpus = __get_cpu(boards_info, board)
 if len(cpus) > 0:
-       help_vars = Variables()
-       help_vars.Add(EnumVariable('CPU', 'arduino board cpu', cpus[0], cpus))
-       help_vars.Update(env)
-       Help(help_vars.GenerateHelpText(env))
+    help_vars = Variables()
+    help_vars.Add(EnumVariable('CPU', 'arduino board cpu', cpus[0], cpus))
+    help_vars.Update(env)
+    Help(help_vars.GenerateHelpText(env))
 
 # Arduino commom flags
 cpu = env.get('CPU')
@@ -336,118 +375,148 @@ usb_pid = __get_board_info(board, '.build.pid')
 variant = __get_board_info(board, '.build.variant')
 
 if not usb_vid:
-       usb_vid = __get_board_info(board, '.vid.0')
+    usb_vid = __get_board_info(board, '.vid.0')
 if not usb_pid:
-       usb_pid = __get_board_info(board, '.pid.0')
+    usb_pid = __get_board_info(board, '.pid.0')
 
 if is_1_0_x:
-       core_base = os.path.join(arduino_home, 'hardware', 'arduino')
+    core_base = os.path.join(arduino_home, 'hardware', 'arduino')
 else:
-       if target_arch == 'avr':
-               core_base = os.path.join(arduino_home, 'hardware', 'arduino', 'avr')
-       else:
-               core_base = os.path.join(arduino_home, 'hardware', 'arduino', 'sam')
+    if target_arch == 'avr':
+        core_base = os.path.join(arduino_home, 'hardware', 'arduino', 'avr')
+    else:
+        core_base = os.path.join(arduino_home, 'hardware', 'arduino', 'sam')
 
 variant_folder = os.path.join(core_base, 'variants', variant)
-env.AppendUnique(CPPPATH = [variant_folder])
+env.AppendUnique(CPPPATH=[variant_folder])
 
 core = __get_board_info(board, '.build.core')
 core_folder = os.path.join(core_base, 'cores', core)
-env.AppendUnique(CPPPATH = [core_folder])
+env.AppendUnique(CPPPATH=[core_folder])
 
 if is_1_0_x:
-       comm_flags = ['-std=c99']
-       if mcu:
-               comm_flags.extend(['-mmcu=' + mcu])
-       if f_cpu:
-               comm_flags.extend(['-DF_CPU=' + f_cpu])
-       comm_flags.extend(['-DARDUINO=' + version])
-       if usb_vid:
-               comm_flags.extend(['-DUSB_VID=' + usb_vid])
-       if usb_pid:
-               comm_flags.extend(['-DUSB_PID=' + usb_pid])
-
-       env.AppendUnique(ASFLAGS = ['-x', 'assembler-with-cpp'])
-       env.AppendUnique(ASFLAGS = comm_flags)
-
-       env.AppendUnique(CFLAGS = ['-Os', '-ffunction-sections', '-fdata-sections', '-MMD'])
-       env.AppendUnique(CFLAGS = comm_flags)
-
-       env.AppendUnique(CXXFLAGS = ['-Os', '-fno-exceptions', '-ffunction-sections', '-fdata-sections','-MMD'])
-       env.AppendUnique(CXXFLAGS = comm_flags)
-
-       env.AppendUnique(LINKFLAGS = ['-Os'])
-       if mcu == 'atmega2560':
-               env.AppendUnique(LINKFLAGS = ['-Wl,--gc-sections,--relax'])
-       else:
-               env.AppendUnique(LINKFLAGS = ['-Wl,--gc-sections'])
-       env.AppendUnique(LINKFLAGS = ['-mmcu=' + mcu])
+    comm_flags = ['-std=c99']
+    if mcu:
+        comm_flags.extend(['-mmcu=' + mcu])
+    if f_cpu:
+        comm_flags.extend(['-DF_CPU=' + f_cpu])
+    comm_flags.extend(['-DARDUINO=' + version])
+    if usb_vid:
+        comm_flags.extend(['-DUSB_VID=' + usb_vid])
+    if usb_pid:
+        comm_flags.extend(['-DUSB_PID=' + usb_pid])
+
+    env.AppendUnique(ASFLAGS=['-x', 'assembler-with-cpp'])
+    env.AppendUnique(ASFLAGS=comm_flags)
+
+    env.AppendUnique(
+        CFLAGS=['-Os', '-ffunction-sections', '-fdata-sections', '-MMD'])
+    env.AppendUnique(CFLAGS=comm_flags)
+
+    env.AppendUnique(CXXFLAGS=[
+        '-Os', '-fno-exceptions', '-ffunction-sections', '-fdata-sections',
+        '-MMD'
+    ])
+    env.AppendUnique(CXXFLAGS=comm_flags)
+
+    env.AppendUnique(LINKFLAGS=['-Os'])
+    if mcu == 'atmega2560':
+        env.AppendUnique(LINKFLAGS=['-Wl,--gc-sections,--relax'])
+    else:
+        env.AppendUnique(LINKFLAGS=['-Wl,--gc-sections'])
+    env.AppendUnique(LINKFLAGS=['-mmcu=' + mcu])
 else:
-       if target_arch == 'avr':
-               cpu_flag = '-mmcu=' + mcu
-       else:
-               cpu_flag = '-mcpu=' + mcu
-
-       comm_flag = [cpu_flag, '-DF_CPU=' + f_cpu, '-DARDUINO=' + version, '-DARDUINO_' + __get_board_info(board, '.build.board')]
-       if target_arch == 'arm':
-               # As of 1.5.8 the arduino headers for arm had _asm_ bugs with ARM and
-               # require gnu99 to be used
-               comm_flag.extend(['-std=gnu99', '-DARDUINO_ARCH_SAM'])
-       else:
-               comm_flag.extend(['-std=c99', '-DARDUINO_ARCH_AVR'])
-
-       compiler_path = platform_info.get('compiler.path')
-       compiler_path = compiler_path.replace('{runtime.ide.path}', arduino_home)
-       env.PrependENVPath('PATH', compiler_path)
-       env.Replace(CC = platform_info.get('compiler.c.cmd'))
-       env.Replace(CXX = platform_info.get('compiler.cpp.cmd'))
-       env.Replace(AR = platform_info.get('compiler.ar.cmd'))
-       if target_arch == 'arm':
-               env.AppendUnique(CPPPATH = [os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'system', 'libsam'),
-                                                       os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'system', 'CMSIS', 'CMSIS', 'Include'),
-                                                       os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'system', '', 'CMSIS', 'Device', 'ATMEL')])
-       env.AppendUnique(ASFLAGS = ['-x', 'assembler-with-cpp'])
-       env.AppendUnique(ASFLAGS = comm_flag)
-       env.AppendUnique(CFLAGS = Split(platform_info.get('compiler.c.flags')))
-       env.AppendUnique(CXXFLAGS = Split(platform_info.get('compiler.cpp.flags')))
-       env.AppendUnique(ARFLAGS = Split(platform_info.get('compiler.ar.flags')))
-       env.AppendUnique(CCFLAGS = comm_flag)
-
-       extra_flags = __get_board_info(board, '.build.extra_flags')
-       if extra_flags:
-               extra_flags = extra_flags.replace('{build.usb_flags}', '')
-               env.AppendUnique(CCFLAGS = Split(extra_flags))
-               usb_flags = ['-DUSB_VID=' + usb_vid, '-DUSB_PID=' + usb_pid, '-DUSBCON', '-DUSB_MANUFACTURER="Unknown"']
-               env.AppendUnique(CCFLAGS = usb_flags)
-
-       if target_arch == 'arm':
-               env.AppendUnique(LINKFLAGS = ['-Os', '-Wl,--gc-sections', cpu_flag,
-                                       '-T' + os.path.join(variant_folder,  __get_board_info(board, '.build.ldscript'))])
-               env.AppendUnique(LINKFLAGS = Split('-lm -lgcc -mthumb -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group'))
-
-               variant_system_lib = __get_board_info(board, '.build.variant_system_lib')
-               if variant_system_lib:
-                       if variant_folder.find(' ') >= 0:
-                               variant_folder = '"' + variant_folder + '"'
-                       env.Replace(LINKCOM = '$LINK -o $TARGET $_LIBDIRFLAGS $LINKFLAGS $SOURCES $_LIBFLAGS '
-                                       + os.path.join(variant_folder, variant_system_lib) + ' -Wl,--end-group')
-               else:
-                       env.Replace(LINKCOM = '$LINK -o $TARGET $_LIBDIRFLAGS $LINKFLAGS $SOURCES $_LIBFLAGS -Wl,--end-group')
-       else:
-               env.AppendUnique(LINKFLAGS = Split(platform_info.get('compiler.c.elf.flags')))
-               env.AppendUnique(LINKFLAGS = [cpu_flag])
-               env.AppendUnique(LIBS = 'm')
-       env.Replace(ARCOM = '$AR ' + platform_info.get('compiler.ar.flags') + ' $TARGET $SOURCES')
+    if target_arch == 'avr':
+        cpu_flag = '-mmcu=' + mcu
+    else:
+        cpu_flag = '-mcpu=' + mcu
+
+    comm_flag = [
+        cpu_flag, '-DF_CPU=' + f_cpu, '-DARDUINO=' + version,
+        '-DARDUINO_' + __get_board_info(board, '.build.board')
+    ]
+    if target_arch == 'arm':
+        # As of 1.5.8 the arduino headers for arm had _asm_ bugs with ARM and
+        # require gnu99 to be used
+        comm_flag.extend(['-std=gnu99', '-DARDUINO_ARCH_SAM'])
+    else:
+        comm_flag.extend(['-std=c99', '-DARDUINO_ARCH_AVR'])
+
+    compiler_path = platform_info.get('compiler.path')
+    compiler_path = compiler_path.replace('{runtime.ide.path}', arduino_home)
+    env.PrependENVPath('PATH', compiler_path)
+    env.Replace(CC=platform_info.get('compiler.c.cmd'))
+    env.Replace(CXX=platform_info.get('compiler.cpp.cmd'))
+    env.Replace(AR=platform_info.get('compiler.ar.cmd'))
+    if target_arch == 'arm':
+        env.AppendUnique(CPPPATH=[
+            os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'system',
+                         'libsam'),
+            os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'system',
+                         'CMSIS', 'CMSIS', 'Include'),
+            os.path.join(arduino_home, 'hardware', 'arduino', 'sam', 'system',
+                         '', 'CMSIS', 'Device', 'ATMEL')
+        ])
+    env.AppendUnique(ASFLAGS=['-x', 'assembler-with-cpp'])
+    env.AppendUnique(ASFLAGS=comm_flag)
+    env.AppendUnique(CFLAGS=Split(platform_info.get('compiler.c.flags')))
+    env.AppendUnique(CXXFLAGS=Split(platform_info.get('compiler.cpp.flags')))
+    env.AppendUnique(ARFLAGS=Split(platform_info.get('compiler.ar.flags')))
+    env.AppendUnique(CCFLAGS=comm_flag)
+
+    extra_flags = __get_board_info(board, '.build.extra_flags')
+    if extra_flags:
+        extra_flags = extra_flags.replace('{build.usb_flags}', '')
+        env.AppendUnique(CCFLAGS=Split(extra_flags))
+        usb_flags = [
+            '-DUSB_VID=' + usb_vid, '-DUSB_PID=' + usb_pid, '-DUSBCON',
+            '-DUSB_MANUFACTURER="Unknown"'
+        ]
+        env.AppendUnique(CCFLAGS=usb_flags)
+
+    if target_arch == 'arm':
+        env.AppendUnique(LINKFLAGS=[
+            '-Os', '-Wl,--gc-sections', cpu_flag, '-T' + os.path.join(
+                variant_folder, __get_board_info(board, '.build.ldscript'))
+        ])
+        env.AppendUnique(LINKFLAGS=Split(
+            '-lm -lgcc -mthumb -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group'
+        ))
+
+        variant_system_lib = __get_board_info(board,
+                                              '.build.variant_system_lib')
+        if variant_system_lib:
+            if variant_folder.find(' ') >= 0:
+                variant_folder = '"' + variant_folder + '"'
+            env.Replace(
+                LINKCOM=
+                '$LINK -o $TARGET $_LIBDIRFLAGS $LINKFLAGS $SOURCES $_LIBFLAGS '
+                + os.path.join(variant_folder,
+                               variant_system_lib) + ' -Wl,--end-group')
+        else:
+            env.Replace(
+                LINKCOM=
+                '$LINK -o $TARGET $_LIBDIRFLAGS $LINKFLAGS $SOURCES $_LIBFLAGS -Wl,--end-group'
+            )
+    else:
+        env.AppendUnique(
+            LINKFLAGS=Split(platform_info.get('compiler.c.elf.flags')))
+        env.AppendUnique(LINKFLAGS=[cpu_flag])
+        env.AppendUnique(LIBS='m')
+    env.Replace(ARCOM='$AR ' + platform_info.get('compiler.ar.flags') +
+                ' $TARGET $SOURCES')
 
 # Make sure the .d files are removed when clean the build
 if env.GetOption('clean'):
-       dfs = __search_files(env.get('BUILD_DIR'), '*.d')
-       for df in dfs:
-               Execute(Delete(df))
+    dfs = __search_files(env.get('BUILD_DIR'), '*.d')
+    for df in dfs:
+        Execute(Delete(df))
 __build_core(env)
 
-env.AddMethod(__import_lib, "ImportLib") #import arduino library
-env.AddMethod(__build_core, "BuildCore") #build arduino core
-env.AddMethod(__create_bin, "CreateBin") #create binary files(.eep and .hex)
-env.AddMethod(__upload, "Upload") #Upload binary to board
-env.AddMethod(__upload_help, "UploadHelp") #print the command line that to upload binary to the boardf
+env.AddMethod(__import_lib, "ImportLib")  #import arduino library
+env.AddMethod(__build_core, "BuildCore")  #build arduino core
+env.AddMethod(__create_bin, "CreateBin")  #create binary files(.eep and .hex)
+env.AddMethod(__upload, "Upload")  #Upload binary to board
+env.AddMethod(
+    __upload_help,
+    "UploadHelp")  #print the command line that to upload binary to the boardf
index b1ba8e4..cc44839 100644 (file)
@@ -39,7 +39,8 @@ if len(sdks) > 0:
 
 # SYS_VERSION build option
 help_vars = Variables()
-help_vars.Add('SYS_VERSION', 'MAC OS X SDK version / IOS SDK version',
+help_vars.Add('SYS_VERSION',
+              'MAC OS X SDK version / IOS SDK version',
               os.environ.get('SYS_VERSION'))
 help_vars.Update(env)
 Help(help_vars.GenerateHelpText(env))
index ea041ec..eeae541 100644 (file)
@@ -21,6 +21,7 @@ import SCons.Errors
 
 Import('env')
 
+
 # Check whether a library exists, if not, notify user to install it or try to
 # download the source code and build it
 # @param libname - the name of the library try to prepare
@@ -30,8 +31,8 @@ Import('env')
 #            by default, it's <src_dir>/extlibs/<libname>/
 # @param script - the building script, by default, it's 'SConscript'
 #
-def __prepare_lib(ienv, libname, lib = None, path = None, script = None):
-    p_env = ienv.Clone(LIBS = [])
+def __prepare_lib(ienv, libname, lib=None, path=None, script=None):
+    p_env = ienv.Clone(LIBS=[])
     if p_env.GetOption('clean') or p_env.GetOption('help'):
         return
 
@@ -57,27 +58,30 @@ def __prepare_lib(ienv, libname, lib = None, path = None, script = None):
             if target_os in ['linux', 'darwin', 'tizen']:
                 print 'Don\'t find library(%s), please intall it, exit ...' % libname
             else:
-                print 'Don\'t find library(%s) and don\'t find the process script (%s), exit ...' % (libname, st)
+                print 'Library (%s) not found and cannot find the scons script (%s), exit ...' % (
+                    libname, st)
             Exit(1)
 
     conf.Finish()
 
+
 # Run configure command (usually it's done before build a library)
-def __configure(env, cwd, cmd) :
+def __configure(env, cwd, cmd):
     print "Configuring using [%s/%s] ..." % (cwd, cmd)
     # build it now (we need the shell, because some programs need it)
     devnull = open(os.devnull, "wb")
-    handle  = subprocess.Popen(cmd, shell=True, cwd=cwd, stdout=devnull)
+    handle = subprocess.Popen(cmd, shell=True, cwd=cwd, stdout=devnull)
+
+    if handle.wait() <> 0:
+        raise SCons.Errors.BuildError("Run configuring script [%s]" % (cmd))
 
-    if handle.wait() <> 0 :
-        raise SCons.Errors.BuildError( "Run configuring script [%s]" % (cmd) )
 
 # Download from URL 'url', will save as 'target'
-def __download(ienv, target, url) :
-    if os.path.exists(target) :
+def __download(ienv, target, url):
+    if os.path.exists(target):
         return target
 
-    try :
+    try:
         print "Download %s from %s" % (target, url)
         print "Downloading ..."
         stream = urllib2.urlopen(url)
@@ -86,16 +90,25 @@ def __download(ienv, target, url) :
         file.close()
         print "Download %s from %s complete" % (target, url)
         return target
-    except Exception, e :
-        raise SCons.Errors.StopError( '%s [%s]' % (e, url) )
+    except Exception, e:
+        raise SCons.Errors.StopError('%s [%s]' % (e, url))
+
 
 # Install header file(s) to <src_dir>/deps/<target_os>/include
 def __install_head_file(ienv, file):
-        return ienv.Install(os.path.join(env.get('SRC_DIR'), 'dep', target_os, target_arch, 'usr', 'include'), file)
+    return ienv.Install(
+        os.path.join(
+            env.get('SRC_DIR'), 'dep', target_os, target_arch, 'usr',
+            'include'), file)
+
 
 # Install library binaries to <src_dir>/deps/<target_os>/lib/<arch>
 def __install_lib(ienv, lib):
-        return ienv.Install(os.path.join(env.get('SRC_DIR'), 'dep', target_os, target_arch, 'usr', 'lib'), lib)
+    return ienv.Install(
+        os.path.join(
+            env.get('SRC_DIR'), 'dep', target_os, target_arch, 'usr', 'lib'),
+        lib)
+
 
 SConscript('tools/UnpackAll.py')
 
index 0fa9ad8..659f844 100644 (file)
@@ -21,27 +21,33 @@ rd_mode = env.get('RD_MODE')
 if target_os == 'android':
     if target_arch == 'armeabi-v7a-hard':
         target_arch = 'armeabi-v7a'
-    env.AppendUnique(CCFLAGS = ['-D__JAVA__'])
+    env.AppendUnique(CCFLAGS=['-D__JAVA__'])
 
 if target_os == 'darwin':
-    env.AppendUnique(CPPPATH = ['/usr/local/include'])
-    env.AppendUnique(LIBPATH = ['/usr/local/lib'])
+    env.AppendUnique(CPPPATH=['/usr/local/include'])
+    env.AppendUnique(LIBPATH=['/usr/local/lib'])
 
 if env.get('BUILD_JAVA') == True and target_os != 'android':
     if env.get('JAVA_HOME') != None:
-            env.AppendUnique(CCFLAGS = ['-D__JAVA__'])
-            env.AppendUnique(CPPPATH = [
+        env.AppendUnique(CCFLAGS=['-D__JAVA__'])
+        env.AppendUnique(CPPPATH=[
             env.get('JAVA_HOME') + '/include',
             env.get('JAVA_HOME') + '/include/' + target_os
         ])
     else:
-        raise SCons.Errors.StopError( 'BUILD_JAVA is specified, but JAVA_HOME is not set.')
+        raise SCons.Errors.StopError(
+            'BUILD_JAVA is specified, but JAVA_HOME is not set.')
 
 # External library include files are in <src_dir>/deps/<target_os>/include
 # the library binaries are in <src_dir>/deps/<target_os>/lib/<arch>
 if target_os not in ['windows']:
-    env.AppendUnique(CPPPATH = [os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'include')])
-    env.AppendUnique(LIBPATH = [os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'lib', target_arch)])
+    env.AppendUnique(CPPPATH=[
+        os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'include')
+    ])
+    env.AppendUnique(LIBPATH=[
+        os.path.join(
+            env.get('SRC_DIR'), 'deps', target_os, 'lib', target_arch)
+    ])
 
 # tinycbor build/fetch
 SConscript(os.path.join(env.get('SRC_DIR'), 'extlibs', 'tinycbor', 'SConscript'))
index 198118f..8718eda 100644 (file)
@@ -12,7 +12,12 @@ help_vars = Variables()
 if env.get('BUILD_JAVA') == True:
     if not env.get('ANDROID_GRADLE'):
         SConscript('../../extlibs/android/gradle/SConscript')
-        help_vars.Add(PathVariable('ANDROID_GRADLE', 'Android Gradle directory', os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1/bin/gradle')))
+        help_vars.Add(
+            PathVariable('ANDROID_GRADLE',
+                         'Android Gradle directory',
+                         os.path.join(
+                             env.get('SRC_DIR'), 'extlibs', 'android',
+                             'gradle', 'gradle-2.2.1/bin/gradle')))
 
     if env.get('ANDROID_GRADLE'):
         android_gradle = env.get('ANDROID_GRADLE')
@@ -24,43 +29,45 @@ if env.get('BUILD_JAVA') == True:
 *      # scons ANDROID_GRADLE=<path to android GRADLE> ...                    *
 *******************************************************************************
 '''
-        android_gradle = os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1', 'bin', 'gradle')
+        android_gradle = os.path.join(
+            env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1',
+            'bin', 'gradle')
 
 help_vars.Update(env)
 Help(help_vars.GenerateHelpText(env))
 
 # Add the default lib directory
 build_dir = env.get('BUILD_DIR')
-env.AppendUnique(LIBPATH = [build_dir])
+env.AppendUnique(LIBPATH=[build_dir])
 env.AppendENVPath('LD_LIBRARY_PATH', [build_dir])
 
 # Set release/debug flags
 if env.get('RELEASE'):
-       env.AppendUnique(CCFLAGS = ['-Os'])
-       env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+    env.AppendUnique(CCFLAGS=['-Os'])
+    env.AppendUnique(CPPDEFINES=['NDEBUG'])
 else:
-       env.AppendUnique(CCFLAGS = ['-g'])
+    env.AppendUnique(CCFLAGS=['-g'])
 
 if env.get('LOGGING'):
-    env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+    env.AppendUnique(CPPDEFINES=['TB_LOG'])
 
-env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__linux__'])
-env.AppendUnique(CFLAGS = ['-std=gnu99'])
-env.AppendUnique(CCFLAGS = ['-Wall', '-Wextra', '-fPIC'])
-env.AppendUnique(LIBS = ['dl', 'pthread', 'uuid'])
+env.AppendUnique(CPPDEFINES=['WITH_POSIX', '__linux__'])
+env.AppendUnique(CFLAGS=['-std=gnu99'])
+env.AppendUnique(CCFLAGS=['-Wall', '-Wextra', '-fPIC'])
+env.AppendUnique(LIBS=['dl', 'pthread', 'uuid'])
 
 # Set arch flags that match best TARGET_ARCH variable
 if not env.get('WITH_ENV'):
     target_arch = env.get('TARGET_ARCH')
     if target_arch in ['x86']:
-        env.AppendUnique(CCFLAGS = ['-m32'])
-        env.AppendUnique(LINKFLAGS = ['-m32'])
+        env.AppendUnique(CCFLAGS=['-m32'])
+        env.AppendUnique(LINKFLAGS=['-m32'])
     elif target_arch in ['x86_64']:
-        env.AppendUnique(CCFLAGS = ['-m64'])
-        env.AppendUnique(LINKFLAGS = ['-m64'])
+        env.AppendUnique(CCFLAGS=['-m64'])
+        env.AppendUnique(LINKFLAGS=['-m64'])
     elif target_arch in ['arm']:
-        env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+        env.AppendUnique(CPPFLAGS=['-march=armv5te'])
     elif target_arch in ['arm-v7a', 'armeabi-v7a']:
-        env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+        env.AppendUnique(CPPFLAGS=['-march=armv7-a'])
     elif target_arch.find('arm64') > 0:
-        env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+        env.AppendUnique(CPPFLAGS=['-march=armv8-a'])
index d1982f0..bd5c8c0 100644 (file)
@@ -1,5 +1,5 @@
 ##
-# This script sets compiler flags for 
+# This script sets compiler flags for
 # MinGW in the MSYS environment.
 ##
 Import('env')
@@ -7,30 +7,33 @@ Import('env')
 # Set common flags
 # Overwrite suffixes and prefixes
 if env['TARGET_OS'] == 'msys_nt':
-       env['SHLIBPREFIX'] = 'lib'
+    env['SHLIBPREFIX'] = 'lib'
 
-env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+env.AppendUnique(LIBPATH=[env.get('BUILD_DIR')])
 
 # Add MinGW-specific libraries
-env.AppendUnique(LIBS = ['bcrypt', 'ws2_32', 'advapi32', 'iphlpapi', 'crypt32', 'kernel32'])
+env.AppendUnique(
+    LIBS=['bcrypt', 'ws2_32', 'advapi32', 'iphlpapi', 'crypt32', 'kernel32'])
 
 target_arch = env.get('TARGET_ARCH')
 
 if env['CC'] == 'gcc':
-       if env.get('RELEASE'):
-               env.AppendUnique(CCFLAGS = ['-Os'])
-               env.AppendUnique(CPPDEFINES = ['NDEBUG'])
-       else:
-               env.AppendUnique(CCFLAGS = ['-g'])
-       env.AppendUnique(CFLAGS = ['-std=c99'])
-       env.AppendUnique(CXXFLAGS = ['-std=c++11'])
-       env.AppendUnique(CCFLAGS = ['-Wall', '-Wextra', '-Wa,-mbig-obj'])
-       env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '_GNU_SOURCE', '__msys_nt__', '_WIN32_WINNT=0x0600'])
-       
-       # Set arch flags
-       if target_arch in ['x86']:
-               env.AppendUnique(CCFLAGS = ['-m32'])
-               env.AppendUnique(LINKFLAGS = ['-m32'])
-       elif target_arch in ['x86_64']:
-               env.AppendUnique(CCFLAGS = ['-m64'])
-               env.AppendUnique(LINKFLAGS = ['-m64'])
+    if env.get('RELEASE'):
+        env.AppendUnique(CCFLAGS=['-Os'])
+        env.AppendUnique(CPPDEFINES=['NDEBUG'])
+    else:
+        env.AppendUnique(CCFLAGS=['-g'])
+    env.AppendUnique(CFLAGS=['-std=c99'])
+    env.AppendUnique(CXXFLAGS=['-std=c++11'])
+    env.AppendUnique(CCFLAGS=['-Wall', '-Wextra', '-Wa,-mbig-obj'])
+    env.AppendUnique(CPPDEFINES=[
+        'WITH_POSIX', '_GNU_SOURCE', '__msys_nt__', '_WIN32_WINNT=0x0600'
+    ])
+
+    # Set arch flags
+    if target_arch in ['x86']:
+        env.AppendUnique(CCFLAGS=['-m32'])
+        env.AppendUnique(LINKFLAGS=['-m32'])
+    elif target_arch in ['x86_64']:
+        env.AppendUnique(CCFLAGS=['-m64'])
+        env.AppendUnique(LINKFLAGS=['-m64'])
index aa2c212..c9f112a 100755 (executable)
@@ -11,18 +11,19 @@ print "Reading linux configuration script"
 
 # Set release/debug flags
 if env.get('RELEASE'):
-       env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+    env.AppendUnique(CPPDEFINES=['NDEBUG'])
 
 if env.get('LOGGING'):
-    env.AppendUnique(CPPDEFINES = ['-DTB_LOG'])
+    env.AppendUnique(CPPDEFINES=['-DTB_LOG'])
 
 env['CCFLAGS'] = SCons.Util.CLVar(os.environ.get('CFLAGS', ""))
-env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__linux__'])
-env.AppendUnique(CFLAGS = ['-std=gnu99'])
-env.AppendUnique(CCFLAGS = ['-Wextra', '-fPIC'])
-env.AppendUnique(LIBS = ['dl', 'pthread'])
+env.AppendUnique(CPPDEFINES=['WITH_POSIX', '__linux__'])
+env.AppendUnique(CFLAGS=['-std=gnu99'])
+env.AppendUnique(CCFLAGS=['-Wextra', '-fPIC'])
+env.AppendUnique(LIBS=['dl', 'pthread'])
 
-env.AppendUnique(CCFLAGS = ['-D__TIZEN__', '-D_GNU_SOURCE', '-DTIZEN_DEBUG_ENABLE'])
+env.AppendUnique(
+    CCFLAGS=['-D__TIZEN__', '-D_GNU_SOURCE', '-DTIZEN_DEBUG_ENABLE'])
 env.ParseConfig("pkg-config dlog --cflags --libs")
 if env.get('OIC_SUPPORT_TIZEN_TRACE') == 'True':
     env.ParseConfig("pkg-config ttrace --cflags --libs")
index 5a7e751..2f23dd2 100644 (file)
@@ -39,7 +39,9 @@ if env['CC'] == 'cl':
     #    - It's an acceptable warning displayed only by Visual Studio 2013 compiler.
     #  - warning C4706: assignment within conditional expression
     #    - Disabled due to the widespread usage in IoTivity and low impact.
-    env.AppendUnique(CCFLAGS=['/wd4127', '/wd4200', '/wd4201', '/wd4204', '/wd4214', '/wd4221', '/wd4232', '/wd4503', '/wd4512', '/wd4706'])
+    env.AppendUnique(CCFLAGS=[
+        '/wd4127', '/wd4200', '/wd4201', '/wd4204', '/wd4214', '/wd4221',
+        '/wd4232', '/wd4503', '/wd4512', '/wd4706'])
 
     # Enabling /W4 warnings globally for Windows builds.
     env.AppendUnique(CCFLAGS=['/W4', '/WX'])
@@ -47,27 +49,27 @@ if env['CC'] == 'cl':
 
     # Set release/debug flags
     if env.get('RELEASE'):
-        env.AppendUnique(CCFLAGS = ['/MD', '/O2', '/GF'])
-        env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+        env.AppendUnique(CCFLAGS=['/MD', '/O2', '/GF'])
+        env.AppendUnique(CPPDEFINES=['NDEBUG'])
     else:
-        env.AppendUnique(CCFLAGS = ['/MDd', '/Od', '/RTC1'])
-        env.AppendUnique(LINKFLAGS = ['/debug'])
+        env.AppendUnique(CCFLAGS=['/MDd', '/Od', '/RTC1'])
+        env.AppendUnique(LINKFLAGS=['/debug'])
 
-    env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+    env.AppendUnique(LIBPATH=[env.get('BUILD_DIR')])
 
-    # Work around [IOT-1986]\r
-    # During some Windows multi-threaded builds, SCons/Python/Pywin32 appear to try\r
-    # linking with these static libraries while another SCons thread started executing\r
-    # InstallTarget() for this static LIB, but didn't finish yet. That behavior results\r
-    # in linker errors. Work around this issue by linking with the source of InstallTarget(),\r
-    # rather than the target.\r
-    env.PrependUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'src')])
-    env.PrependUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'c_common', 'windows')])
-    env.PrependUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'oc_logger')])
-    env.PrependUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk', 'resource-directory')])
-    env.PrependUnique(LIBPATH = ['#extlibs/mbedtls'])
+    # Work around [IOT-1986]
+    # During some Windows multi-threaded builds, SCons/Python/Pywin32 appear to try
+    # linking with these static libraries while another SCons thread started executing
+    # InstallTarget() for this static LIB, but didn't finish yet. That behavior results
+    # in linker errors. Work around this issue by linking with the source of InstallTarget(),
+    # rather than the target.
+    env.PrependUnique(LIBPATH=[os.path.join(env.get('BUILD_DIR'), 'resource', 'src')])
+    env.PrependUnique(LIBPATH=[os.path.join(env.get('BUILD_DIR'), 'resource', 'c_common', 'windows')])
+    env.PrependUnique(LIBPATH=[os.path.join(env.get('BUILD_DIR'), 'resource', 'oc_logger')])
+    env.PrependUnique(LIBPATH=[os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk', 'resource-directory')])
+    env.PrependUnique(LIBPATH=['#extlibs/mbedtls'])
 
-    env.AppendUnique(PATH = os.environ['PATH'])
+    env.AppendUnique(PATH=os.environ['PATH'])
     env['PDB'] = '${TARGET.base}.pdb'
     env.Append(LINKFLAGS=['/PDB:${TARGET.base}.pdb'])
 
@@ -81,16 +83,22 @@ if env['CC'] == 'cl':
 
     if env.get('UWP_APP') != '1':
         # Add Desktop specific libraries
-        env.AppendUnique(LIBS = ['bcrypt', 'ws2_32', 'advapi32', 'iphlpapi', 'crypt32', 'kernel32'])
+        env.AppendUnique(LIBS=[
+            'bcrypt',
+            'ws2_32',
+            'advapi32',
+            'iphlpapi',
+            'crypt32',
+            'kernel32',
+        ])
     else:
         # Add Windows Universal Platform specific libraries and flags
         # Note: We technically should set WINAPI_FAMILY=WINAPI_FAMILY_APP, but cannot
         #       due to [IOT-2312]. All APIs used are store/UWP compatible at this time.
         env.AppendUnique(CPPDEFINES=['UWP_APP', '__WRL_NO_DEFAULT_LIB__'])
         env.AppendUnique(LINKFLAGS=['/MANIFEST:NO', '/WINMD:NO', '/APPCONTAINER'])
-        env.AppendUnique(LIBS = ['WindowsApp', 'bcrypt', 'ws2_32', 'iphlpapi', 'crypt32'])
+        env.AppendUnique(LIBS=['WindowsApp', 'bcrypt', 'ws2_32', 'iphlpapi', 'crypt32'])
 
 elif env['CC'] == 'gcc':
     print "\nError: gcc not supported on Windows.  Use Visual Studio!\n"
-    Exit(1);
-
+    Exit(1)
index c8453c6..4403138 100644 (file)
@@ -30,4 +30,3 @@ Import('env')
 target_os = env.get('TARGET_OS')
 target_arch = env.get('TARGET_ARCH')
 src_dir = env.get('SRC_DIR')
-