IOT-1583: Removing /W3 warning from resource/csdk/security.
[iotivity.git] / build_common / linux / SConscript
1 # -*- mode: python; python-indent-offset: 4; indent-tabs-mode: nil -*-
2 ##
3 # This script set linux specific flags (GNU GCC)
4 #
5 ##
6 import os
7 Import('env')
8
9 print "Reading linux configuration script"
10
11 SConscript('../external_libs.scons')
12 help_vars = Variables()
13 if env.get('BUILD_JAVA') == True:
14     if not env.get('ANDROID_GRADLE'):
15         SConscript('../../extlibs/android/gradle/SConscript')
16         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')))
17
18     if env.get('ANDROID_GRADLE'):
19         android_gradle = env.get('ANDROID_GRADLE')
20     else:
21         print '''
22 *************************************** Info **********************************
23 *    Android Gradle path isn't set, the default will be used. You can set     *
24 * environment variable ANDROID_GRADLE or add it in command line as:           *
25 *      # scons ANDROID_GRADLE=<path to android GRADLE> ...                    *
26 *******************************************************************************
27 '''
28         android_gradle = os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1', 'bin', 'gradle')
29
30 help_vars.Update(env)
31 Help(help_vars.GenerateHelpText(env))
32
33 # Add the default lib directory
34 build_dir = env.get('BUILD_DIR')
35 env.AppendUnique(LIBPATH = [build_dir])
36 env.AppendENVPath('LD_LIBRARY_PATH', [build_dir])
37
38 # Set release/debug flags
39 if env.get('RELEASE'):
40         env.AppendUnique(CCFLAGS = ['-Os'])
41         env.AppendUnique(CPPDEFINES = ['NDEBUG'])
42 else:
43         env.AppendUnique(CCFLAGS = ['-g'])
44
45 if env.get('LOGGING'):
46     env.AppendUnique(CPPDEFINES = ['TB_LOG'])
47
48 env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__linux__'])
49 env.AppendUnique(CFLAGS = ['-std=gnu99'])
50 env.AppendUnique(CCFLAGS = ['-Wall', '-Wextra', '-fPIC'])
51 env.AppendUnique(LIBS = ['dl', 'pthread', 'uuid'])
52
53 # Set arch flags that match best TARGET_ARCH variable
54 target_arch = env.get('TARGET_ARCH')
55 if target_arch in ['x86']:
56         env.AppendUnique(CCFLAGS = ['-m32'])
57         env.AppendUnique(LINKFLAGS = ['-m32'])
58 elif target_arch in ['x86_64']:
59         env.AppendUnique(CCFLAGS = ['-m64'])
60         env.AppendUnique(LINKFLAGS = ['-m64'])
61 elif target_arch in ['arm']:
62         env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
63 elif target_arch in ['arm-v7a', 'armeabi-v7a']:
64         env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
65 elif target_arch.find('arm64') > 0:
66         env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])