These patches are making it possible to provide the compiler settings from the environment so LEDE can change them. This replaces the old patches with the versions send for upstream inclusion. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
126 lines
5.4 KiB
Diff
126 lines
5.4 KiB
Diff
From 5f9513eb341d520d10c48f8ba2bd145063405fdd Mon Sep 17 00:00:00 2001
|
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
|
Date: Sat, 10 Dec 2016 18:08:05 +0100
|
|
Subject: [PATCH 23/23] build: take compiler options from environment
|
|
|
|
This makes it possible to compile IoTivity with custom compiler
|
|
options. This way someone can use optimized compiler settings for the
|
|
target CPU. I want to use this in OpenWrt / LEDE to build specific
|
|
IoTivity binaries for each CPU architecture, there the build system
|
|
provides the matching compiler options.
|
|
|
|
Change-Id: I86772f73b81c41d7e96e51b434fd9e3b4992753a
|
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
|
---
|
|
build_common/SConscript | 25 +++++++++++++++++++++
|
|
build_common/linux/SConscript | 27 ++++++++++++-----------
|
|
resource/csdk/connectivity/build/linux/SConscript | 27 ++++++++++++-----------
|
|
3 files changed, 53 insertions(+), 26 deletions(-)
|
|
|
|
--- a/build_common/SConscript
|
|
+++ b/build_common/SConscript
|
|
@@ -120,6 +120,7 @@ help_vars.Add(PathVariable('ANDROID_NDK'
|
|
help_vars.Add(PathVariable('ANDROID_HOME', 'Android SDK path', None, PathVariable.PathAccept))
|
|
help_vars.Add(PathVariable('ANDROID_GRADLE', 'Gradle binary file', None, PathVariable.PathIsFile))
|
|
help_vars.Add(EnumVariable('WITH_UPSTREAM_LIBCOAP', 'Use latest stable version of LibCoAP downloaded from github', default_with_upstream_libcoap, allowed_values=('0','1')))
|
|
+help_vars.Add(BoolVariable('WITH_ENV', 'Use compiler options from environment', False))
|
|
|
|
AddOption('--prefix',
|
|
dest='prefix',
|
|
@@ -153,6 +154,30 @@ else:
|
|
)
|
|
Help(help_vars.GenerateHelpText(env))
|
|
|
|
+if env.get('WITH_ENV'):
|
|
+ env['ENV'] = os.environ
|
|
+ if 'CC' in os.environ:
|
|
+ env['CC'] = Split(os.environ['CC'])
|
|
+ print "using CC from environment: %s" % env['CC']
|
|
+ if 'CXX' in os.environ:
|
|
+ env['CXX'] = Split(os.environ['CXX'])
|
|
+ print "using CXX from environment: %s" % env['CXX']
|
|
+ if 'CFLAGS' in os.environ:
|
|
+ env['CFLAGS'] = Split(os.environ['CFLAGS'])
|
|
+ print "using CFLAGS from environment: %s" % env['CFLAGS']
|
|
+ if 'CXXFLAGS' in os.environ:
|
|
+ env['CXXFLAGS'] = Split(os.environ['CXXFLAGS'])
|
|
+ print "using CXXFLAGS from environment: %s" % env['CXXFLAGS']
|
|
+ if 'CCFLAGS' in os.environ:
|
|
+ env['CCFLAGS'] = Split(os.environ['CCFLAGS'])
|
|
+ print "using CCFLAGS from environment: %s" % env['CCFLAGS']
|
|
+ if 'CPPFLAGS' in os.environ:
|
|
+ env['CPPFLAGS'] = Split(os.environ['CPPFLAGS'])
|
|
+ print "using CPPFLAGS from environment: %s" % env['CPPFLAGS']
|
|
+ if 'LDFLAGS' in os.environ:
|
|
+ env['LINKFLAGS'] = Split(os.environ['LDFLAGS'])
|
|
+ print "using LDFLAGS/LINKFLAGS from environment: %s" % env['LINKFLAGS']
|
|
+
|
|
tc_set_msg = '''
|
|
************************************ Warning **********************************
|
|
* Enviornment variable TC_PREFIX/TC_PATH is set. It will change the default *
|
|
--- a/build_common/linux/SConscript
|
|
+++ b/build_common/linux/SConscript
|
|
@@ -23,16 +23,17 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-W
|
|
env.AppendUnique(LIBS = ['dl', 'pthread', 'uuid'])
|
|
|
|
# Set arch flags that match best TARGET_ARCH variable
|
|
-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'])
|
|
+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'])
|
|
--- a/resource/csdk/connectivity/build/linux/SConscript
|
|
+++ b/resource/csdk/connectivity/build/linux/SConscript
|
|
@@ -22,16 +22,17 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-f
|
|
env.AppendUnique(LIBS = ['dl', 'pthread'])
|
|
|
|
# Set arch flags
|
|
-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'])
|
|
+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'])
|