Connectivity patch to fix SCons build issues
authorjnashok <jn.ashok@samsung.com>
Mon, 13 Apr 2015 13:54:36 +0000 (22:54 +0900)
committerErich Keane <erich.keane@intel.com>
Tue, 14 Apr 2015 17:59:41 +0000 (17:59 +0000)
this patch also removes hard coded sdk version

Change-Id: Iabb1cb0e261c8513d0f08469dee9842d5084d681
Signed-off-by: jnashok <jn.ashok@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/703
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Erich Keane <erich.keane@intel.com>
build_common/android/SConscript
resource/csdk/connectivity/SConstruct
resource/csdk/connectivity/build/SConscript
resource/csdk/connectivity/build/android/SConscript
resource/csdk/connectivity/build/android/jni/Android.mk
resource/csdk/connectivity/common/SConscript

index 33997cd..eb43bac 100644 (file)
@@ -25,17 +25,18 @@ if not android_ndk:
 
 # 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'
@@ -197,12 +198,9 @@ env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 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)
index 3bde13d..6529011 100644 (file)
@@ -7,7 +7,6 @@
 # Load common build config
 SConscript('./build/SConscript')
 
-SConscript('extra_options.scons')
 Import('env')
 
 sample_env = env.Clone()
index a4da7fc..76dad2e 100644 (file)
@@ -71,7 +71,7 @@ help_vars.AddVariables(('DEVICE_NAME', 'Network display name for device', 'OIC-D
 ######################################################################
 # 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
index f70355e..751b52f 100644 (file)
@@ -23,6 +23,19 @@ if not android_ndk:
 '''
        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'
@@ -45,11 +58,10 @@ elif platform.system().lower() == 'darwin':
 
 # 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
 ######################################################################
@@ -143,10 +155,20 @@ for flags in p.stdout.readlines():
                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'])
@@ -154,19 +176,18 @@ if env.get('RELEASE'):
 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
index 13e9d4d..282900a 100644 (file)
-#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
index a44e8ca..1dccc0b 100644 (file)
@@ -17,7 +17,14 @@ ca_common_src_path = ca_common_path + 'src/'
 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 = ' '