# -*- mode: python; python-indent-offset: 4; indent-tabs-mode: nil -*-
##
# This script set linux specific flags (GNU GCC)
#
##
import os
Import('env')

print "Reading linux configuration script"

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')))

    if env.get('ANDROID_GRADLE'):
        android_gradle = env.get('ANDROID_GRADLE')
    else:
        print '''
*************************************** Info **********************************
*    Android Gradle path isn't set, the default will be used. You can set     *
* environment variable ANDROID_GRADLE or add it in command line as:           *
*      # 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')

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.AppendENVPath('LD_LIBRARY_PATH', [build_dir])

# Set release/debug flags
if env.get('RELEASE'):
	env.AppendUnique(CCFLAGS = ['-Os'])
	env.AppendUnique(CPPDEFINES = ['NDEBUG'])
else:
	env.AppendUnique(CCFLAGS = ['-g'])

if env.get('LOGGING'):
    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'])

# 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'])
    elif target_arch in ['x86_64']:
        env.AppendUnique(CCFLAGS = ['-m64'])
        env.AppendUnique(LINKFLAGS = ['-m64'])
    elif target_arch in ['arm']:
        env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
    elif target_arch in ['arm-v7a', 'armeabi-v7a']:
        env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
    elif target_arch.find('arm64') > 0:
        env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
