# check 'glib' library
src_dir = env.get('SRC_DIR')
-if not os.path.exists(src_dir + '/extlibs/glib'):
+if not os.path.exists(src_dir + '/extlibs/glib/glib-2.40.2'):
print '''
*********************************** Error: **************************************
-* glib' library doesn't exist. please download gnome glib to extlibs directory *
-* apply the patch as following: *
-* Download the Gnome Glib from http://ftp.gnome.org/pub/GNOME/sources/glib/2.40/*
+* Android glib library does not exist. please download gnome glib to *
+* extlibs/glib directory *
+* To build Android glib libraries please follow the instructions as below : *
+* Download Gnome Glib from http://ftp.gnome.org/pub/GNOME/sources/glib/2.40/ *
* Please go through build instructions at : *
-* resource/csdk/connectivity/lib/android/glibpatch_Readme.txt
+* resource/csdk/connectivity/lib/android/glibpatch_Readme.txt *
*********************************************************************************
'''
-
+ Exit(1)
# Overwrite suffixes and prefixes
if env['HOST_OS'] == 'win32':
env['OBJSUFFIX'] = '.o'
env.AppendUnique(LIBPATH = [src_dir + '/resource/csdk/connectivity/lib/android'])
env.AppendUnique(LIBS = ['log', 'glib-2.40.2', 'gthread-2.40.2', 'coap'])
-glib_dir = src_dir + '/extlibs/glib/glib-2.40.2/'
-env.AppendUnique(CPPPATH = [
- glib_dir,
- glib_dir + 'glib',
- glib_dir + 'gthread'])
-
+if env.get('SECURED') == '1':
+ env.AppendUnique(LIBS = ['tinydtls'])
+
# From android-5 (API > 20), all application must be built with flags '-fPIE' '-pie'.
# Due to the limitation of Scons, it's required to added it into the command line
# directly (otherwise, it will also be added when build share library)
# Load common build config
SConscript('./build/SConscript')
-SConscript('extra_options.scons')
Import('env')
sample_env = env.Clone()
######################################################################
# Platform(build target) specific options: SDK/NDK & toolchain
######################################################################
-targets_support_cc = ['linux', 'arduino', 'tizen', 'android']
+targets_support_cc = ['linux', 'arduino', 'tizen']
if target_os in targets_support_cc:
# Set cross compile toolchain
'''
Exit(1)
+# check 'glib' library
+src_dir = env.get('SRC_DIR')
+if not os.path.exists(src_dir + '/../../../../extlibs/glib/glib-2.40.2'):
+ print '''
+*********************************** Error: **************************************
+* Android glib library does not exist. please download gnome glib to *
+* extlibs/glib directory *
+* To build Android glib libraries please follow the instructions as below : *
+* Download Gnome Glib from http://ftp.gnome.org/pub/GNOME/sources/glib/2.40/ *
+* Please go through build instructions at : *
+* lib/android/glibpatch_Readme.txt *
+*********************************************************************************
+ '''
# Overwrite suffixes and prefixes
if env['HOST_OS'] == 'win32':
env['OBJSUFFIX'] = '.o'
# Android build system default cofig
env.AppendUnique(CPPDEFINES = ['ANDROID'])
+env.AppendUnique(CFLAGS = ['-std=c99'])
env.AppendUnique(SHCFLAGS = ['-Wa,--noexecstack'])
env.AppendUnique(LINKFLAGS = ['-Wl,--gc-sections', '-Wl,-z,nocopyreloc'])
-env.AppendUnique(CPPPATH = [android_ndk + '/platforms/android-19/arch-x86/usr/include/'])
-
######################################################################
# Probe Android NDK default flags
######################################################################
if not platform_ver.isdigit():
platform_ver = ''
+# Determine dependency faux SYS_ROOT
+dep_sys_root = os.path.join(env.get('SRC_DIR'), 'dep', 'android', target_arch, 'usr')
+dep_src_dir = os.path.join(dep_sys_root, 'include')
+dep_lib_dir = os.path.join(dep_sys_root, 'lib')
+
+env['DEP_SYS_ROOT'] = dep_sys_root
+
+# Add external libraries including boost
+env.AppendUnique(CPPPATH = [ dep_src_dir ])
+env.AppendUnique(LIBPATH = [ dep_lib_dir ])
+
######################################################################
# Set release/debug flags
######################################################################
-
if env.get('RELEASE'):
env.AppendUnique(CCFLAGS = ['-Os'])
env.AppendUnique(CPPDEFINES = ['NDEBUG'])
else:
env.AppendUnique(CCFLAGS = ['-g'])
-env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__ANDROID__'])
if env.get('LOGGING'):
- env.AppendUnique(CPPDEFINES = ['-DTB_LOG'])
-env.AppendUnique(CCFLAGS = ['-Wall', '-fPIC'])
-env.AppendUnique(LINKFLAGS = ['-ldl', '-lpthread'])
+ env.AppendUnique(CPPDEFINES = ['-DTB_LOG'])
-main_dir = Dir('.').srcnode().abspath
+env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__ANDROID__'])
+env.AppendUnique(CCFLAGS = ['-Wall', '-fPIC'])
+#env.AppendUnique(LINKFLAGS = ['-ldl', '-lpthread'])
-glib_dir = main_dir + '/../../../../../extlibs/glib/glib-2.40.2/'
-env.AppendUnique(CPPPATH = [
- glib_dir,
- glib_dir + 'glib',
- glib_dir + 'gthread'])
+env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+env.AppendUnique(LIBPATH = [src_dir + '/lib/android'])
+env.AppendUnique(LIBS = ['log', 'glib-2.40.2', 'gthread-2.40.2', 'coap'])
+if env.get('SECURED') == '1':
+ env.AppendUnique(LIBS = ['tinydtls'])
# From android-5 (API > 20), all application must be built with flags '-fPIE' '-pie'.
# Due to the limitation of Scons, it's required to added it into the command line
-#define build type
-BUILD = debug
-
-PROJECT_ROOT_PATH ?= ../..
-PROJECT_API_PATH = $(PROJECT_ROOT_PATH)/api
-PROJECT_INC_PATH = $(PROJECT_ROOT_PATH)/inc
-PROJECT_SRC_PATH = $(PROJECT_ROOT_PATH)/src
-PROJECT_COMMON_PATH = $(PROJECT_ROOT_PATH)/common
-PROJECT_COMMON_INC_PATH = $(PROJECT_COMMON_PATH)/inc
-PROJECT_COMMON_SRC_PATH = $(PROJECT_COMMON_PATH)/src
-PROJECT_LIB_PATH = $(PROJECT_ROOT_PATH)/lib
-PROJECT_EXTERNAL_PATH = $(PROJECT_ROOT_PATH)/external/inc
-DTLS_LIB = $(PROJECT_LIB_PATH)/tinydtls
-GLIB_PATH = $(PROJECT_LIB_PATH)/android/glib-2.40.2
-
-#Modify below values to enable/disable the Adapter
-#Suffix "NO_" to disable given adapter
-EDR = EDR_ADAPTER
-WIFI = WIFI_ADAPTER
-LE = LE_ADAPTER
-ETHERNET = NO_ETHERNET_ADAPTER
-
-#Add Pre processor definitions
-DEFINE_FLAG = -DWITH_POSIX -D__ANDROID__ -D__WITH_DTLS__
-DEFINE_FLAG += -D$(EDR) -D$(LE) -D$(WIFI) -D$(ETHERNET)
-
-#Add Debug flags here
-DEBUG_FLAG = -DTB_LOG
-#DEBUG_FLAG += -DADB_SHELL
-
-BUILD_FLAG.debug = $(DEFINE_FLAG) $(DEBUG_FLAG)
-BUILD_FLAG.release = $(DEFINE_FLAG)
-BUILD_FLAG = $(BUILD_FLAG.$(BUILD))
-
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#include glib
-
-include $(CLEAR_VARS)
-LOCAL_PATH = $(PROJECT_LIB_PATH)/android
-LOCAL_MODULE = Glib
-LOCAL_SRC_FILES := libglib-2.40.2.so
-LOCAL_EXPORT_C_INCLUDES = $(GLIB_PATH) \
- $(GLIB_PATH)/glib
-
-include $(PREBUILT_SHARED_LIBRARY)
-
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#include glibthread
-
-include $(CLEAR_VARS)
-LOCAL_PATH = $(PROJECT_LIB_PATH)/android
-LOCAL_MODULE = GLibThread
-LOCAL_SRC_FILES := libgthread-2.40.2.so
-LOCAL_EXPORT_C_INCLUDES = $(GLIB_PATH) \
- $(GLIB_PATH)/glib
-
-include $(PREBUILT_SHARED_LIBRARY)
-
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-#Build TinyDtls
-
-include $(CLEAR_VARS)
-include $(DTLS_LIB)/Android.mk
-
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#Build CACommon
-
-include $(CLEAR_VARS)
-
-#Build Common Libraries
-LOCAL_PATH = $(PROJECT_COMMON_SRC_PATH)
-LOCAL_MODULE = CACommon
-LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
-
-LOCAL_SHARED_LIBRARIES = Glib GLibThread
-
-LOCAL_CFLAGS = -D__ANDROID__ $(DEBUG_FLAG)
-
-LOCAL_C_INCLUDES = $(PROJECT_COMMON_INC_PATH)
-LOCAL_C_INCLUDES += $(PROJECT_API_PATH)
-
-LOCAL_SRC_FILES = oic_logger.c \
- oic_console_logger.c logger.c oic_malloc.c \
- uarraylist.c uqueue.c oic_string.c \
- uthreadpool.c umutex.c
-
-include $(BUILD_STATIC_LIBRARY)
-
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#Build CACoap
-
include $(CLEAR_VARS)
-
-LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
-LOCAL_PATH = $(PROJECT_LIB_PATH)/libcoap-4.1.1
-LOCAL_MODULE = CACoap
-LOCAL_EXPORT_C_INCLUDES = $(PROJECT_LIB_PATH)/libcoap-4.1.1
-LOCAL_CFLAGS = -DWITH_POSIX
-LOCAL_SRC_FILES = pdu.c net.c debug.c encode.c uri.c coap_list.c resource.c hashkey.c \
- str.c option.c async.c subscribe.c block.c
-
-include $(BUILD_STATIC_LIBRARY)
-
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#Build CA
-
-#Relative path to LOCAL_PATH (PROJECT_SRC_PATH)
-LOCAL_PLATFORM = android
-
-ENET_ADAPTER_PATH = ethernet_adapter/$(LOCAL_PLATFORM)
-EDR_ADAPTER_PATH = bt_edr_adapter/$(LOCAL_PLATFORM)
-LE_ADAPTER_PATH = bt_le_adapter/$(LOCAL_PLATFORM)
-WIFI_ADAPTER_PATH = wifi_adapter/$(LOCAL_PLATFORM)
-ADAPTER_UTILS = adapter_util
-
-include $(CLEAR_VARS)
-
-LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
-LOCAL_PATH = $(PROJECT_SRC_PATH)
-LOCAL_MODULE = CA
-
-LOCAL_STATIC_LIBRARIES = CACommon CACoap TinyDtls
-
-LOCAL_C_INCLUDES = $(PROJECT_API_PATH)
-LOCAL_C_INCLUDES += $(PROJECT_COMMON_INC_PATH)
-LOCAL_C_INCLUDES += $(PROJECT_INC_PATH)
-LOCAL_C_INCLUDES += $(PROJECT_LIB_PATH)/libcoap-4.1.1
-LOCAL_C_INCLUDES += $(PROJECT_EXTERNAL_PATH)
-LOCAL_C_INCLUDES += $(DTLS_LIB)
-
-LOCAL_CFLAGS += $(BUILD_FLAG)
-
-LOCAL_SRC_FILES = \
- caconnectivitymanager.c caremotehandler.c cainterfacecontroller.c \
- camessagehandler.c canetworkconfigurator.c caprotocolmessage.c \
- caretransmission.c caqueueingthread.c \
- $(ADAPTER_UTILS)/caadapternetdtls.c $(ADAPTER_UTILS)/caadapterutils.c \
- $(ADAPTER_UTILS)/camsgparser.c \
- $(LE_ADAPTER_PATH)/caleadapter.c $(LE_ADAPTER_PATH)/caleclient.c \
- $(LE_ADAPTER_PATH)/caleserver.c $(LE_ADAPTER_PATH)/caleutils.c \
- $(LE_ADAPTER_PATH)/calenwmonitor.c \
- bt_edr_adapter/caedradapter.c $(EDR_ADAPTER_PATH)/caedrutils.c \
- $(EDR_ADAPTER_PATH)/caedrclient.c $(EDR_ADAPTER_PATH)/caedrserver.c \
- $(EDR_ADAPTER_PATH)/caedrnwmonitor.c \
- wifi_adapter/cawifiadapter.c $(WIFI_ADAPTER_PATH)/cawifiserver.c \
- $(WIFI_ADAPTER_PATH)/cawificlient.c $(WIFI_ADAPTER_PATH)/cawifinwmonitor.c \
-
-include $(BUILD_STATIC_LIBRARY)
-
+LOCAL_MODULE := flags_probe
+include $(BUILD_SHARED_LIBRARY)
+
+$(info TC_PREFIX=$(TOOLCHAIN_PREFIX))
+$(info CFLAGS=$(TARGET_CFLAGS))
+$(info CXXFLAGS=$(TARGET_CXXFLAGS) $(TARGET_NO_EXECUTE_CFLAGS))
+$(info CPPPATH=$(TARGET_C_INCLUDES) $(__ndk_modules.$(APP_STL).EXPORT_C_INCLUDES))
+$(info SYSROOT=$(SYSROOT_LINK))
+$(info LDFLAGS=$(TARGET_LDFLAGS) $(TARGET_NO_EXECUTE_LDFLAGS) $(TARGET_NO_UNDEFINED_LDFLAGS) $(TARGET_RELRO_LDFLAGS))
+$(info TC_VER=$(TOOLCHAIN_VERSION))
+$(info PLATFORM=$(APP_PLATFORM))
\ No newline at end of file
env.AppendUnique(CPPPATH = [
'common/inc/',
])
-
+
+if ca_os == 'android':
+ main_dir = Dir('.').srcnode().abspath
+ glib_dir = main_dir + '/../../../../extlibs/glib/glib-2.40.2/'
+ env.AppendUnique(CPPPATH = [
+ glib_dir,
+ glib_dir + 'glib',
+ glib_dir + 'gthread'])
temp = env['CPPPATH']
header = ' '