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