Merge branch '1.3-rel' (1a2c9ee2)
[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 # Test Coverage Flags and Library (if RELEASE=0)
12 if not env.get('RELEASE'):
13     env.AppendUnique(LIBS=['gcov'])
14     env.AppendUnique(CCFLAGS=['--coverage', '-fPIC', '-O0'])
15
16 help_vars = Variables()
17 if env.get('BUILD_JAVA') == True:
18     if not env.get('ANDROID_GRADLE'):
19         SConscript('../../extlibs/android/gradle/SConscript')
20         help_vars.Add(
21             PathVariable('ANDROID_GRADLE',
22                          'Android Gradle directory',
23                          os.path.join(
24                              env.get('SRC_DIR'), 'extlibs', 'android',
25                              'gradle', 'gradle-2.2.1/bin/gradle')))
26
27     if env.get('ANDROID_GRADLE'):
28         android_gradle = env.get('ANDROID_GRADLE')
29     else:
30         print '''
31 *************************************** Info **********************************
32 *    Android Gradle path isn't set, the default will be used. You can set     *
33 * environment variable ANDROID_GRADLE or add it in command line as:           *
34 *      # scons ANDROID_GRADLE=<path to android GRADLE> ...                    *
35 *******************************************************************************
36 '''
37         android_gradle = os.path.join(
38             env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1',
39             'bin', 'gradle')
40
41 help_vars.Update(env)
42 Help(help_vars.GenerateHelpText(env))
43
44 # Add the default lib directory
45 build_dir = env.get('BUILD_DIR')
46 env.AppendUnique(LIBPATH=[build_dir])
47 env.AppendENVPath('LD_LIBRARY_PATH', [build_dir])
48
49 # Set release/debug flags
50 if env.get('RELEASE'):
51     env.AppendUnique(CCFLAGS=['-Os'])
52 else:
53     env.AppendUnique(CCFLAGS=['-g'])
54
55 env.AppendUnique(CPPDEFINES=['WITH_POSIX', '__linux__'])
56 env.AppendUnique(CFLAGS=['-std=gnu99'])
57 env.AppendUnique(CCFLAGS=['-Wall', '-Wextra', '-fPIC'])
58 env.AppendUnique(LIBS=['dl', 'pthread', 'uuid'])
59
60 # Set arch flags that match best TARGET_ARCH variable
61 if not env.get('WITH_ENV'):
62     target_arch = env.get('TARGET_ARCH')
63     if target_arch in ['x86']:
64         env.AppendUnique(CCFLAGS=['-m32'])
65         env.AppendUnique(LINKFLAGS=['-m32'])
66     elif target_arch in ['x86_64']:
67         env.AppendUnique(CCFLAGS=['-m64'])
68         env.AppendUnique(LINKFLAGS=['-m64'])
69     elif target_arch in ['arm']:
70         env.AppendUnique(CPPFLAGS=['-march=armv5te'])
71     elif target_arch in ['arm-v7a', 'armeabi-v7a']:
72         env.AppendUnique(CPPFLAGS=['-march=armv7-a'])
73     elif target_arch.find('arm64') > 0:
74         env.AppendUnique(CPPFLAGS=['-march=armv8-a'])