Fix for tizen build failure issue. 66/1066/3
authorHarish Kumara Marappa <h.marappa@samsung.com>
Thu, 21 May 2015 13:49:43 +0000 (19:19 +0530)
committerUze Choi <uzchoi@samsung.com>
Thu, 21 May 2015 14:45:49 +0000 (14:45 +0000)
Removed glib package dependency and added uuid package dependency.

Change-Id: I31ab7b2946dea000a499248276160fb20cd2214d
Signed-off-by: Harish Kumara Marappa <h.marappa@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1066
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Readme.scons.txt
build_common/SConscript
build_common/linux/SConscript
build_common/tizen/SConscript [new file with mode: 0644]
resource/csdk/SConscript
resource/csdk/connectivity/src/ip_adapter/SConscript
resource/third_party_libs.scons
service/soft-sensor-manager/SConscript
service/third_party_libs.scons
tools/tizen/iotivity.spec

index ef0542f..d433b3b 100644 (file)
@@ -115,6 +115,16 @@ Java codes, this isn't required)
 so you don't need to add it in command line each time. The build script will
 guide you to do that.)
 
 so you don't need to add it in command line each time. The build script will
 guide you to do that.)
 
+Tizen:
+To build for tizen platform cereal library is needed.
+Please download cereal if it is not present in extlibs/cereal folder
+and apply the patch as following:
+       $ git clone https://github.com/USCiLab/cereal.git extlibs/cereal/cereal
+       $ cd  extlibs/cereal/cereal
+       $ git reset --hard 7121e91e6ab8c3e6a6516d9d9c3e6804e6f65245
+       $ git apply ../../../resource/patches/cereal_gcc46.patch
+
+
 * 3. External libraries
 IoTivity project depends on some external libraries, such as boost, expat ...
 During building, the existence of external library will be checked, if it doesn't
 * 3. External libraries
 IoTivity project depends on some external libraries, such as boost, expat ...
 During building, the existence of external library will be checked, if it doesn't
@@ -151,10 +161,10 @@ it's unnecessary to specify it)
 
 4. Build Iotivity project for Tizen
       $ cd <top directory of the project>
 
 4. Build Iotivity project for Tizen
       $ cd <top directory of the project>
-      $ gbs build -A xxx --packaging-dir tools/tizen/
-(xxx can be i586 or armv7l, we provide the spec file required by gbs tool at
-toools/tizen directory. gbs is default build tool for Tizen platfrom, we can
-refer the following wiki to setup Tizen development environment:
+      $ sh gbsbuild.sh
+(we provide the spec file required by gbs tool at toools/tizen directory.
+gbs is default build tool for Tizen platfrom, we can refer the following
+wiki to setup Tizen development environment:
 https://source.tizen.org/documentation/developer-guide/getting-started-guide)
 
 === Build IoTivity project on Android ===
 https://source.tizen.org/documentation/developer-guide/getting-started-guide)
 
 === Build IoTivity project on Android ===
index afe6f56..16a81f9 100644 (file)
@@ -267,10 +267,7 @@ else:
     If target_os is not Yocto, continue with the regular build process
     '''
     # Load config of target os
     If target_os is not Yocto, continue with the regular build process
     '''
     # Load config of target os
-    if target_os in ['linux', 'tizen']:
-               env.SConscript('linux/SConscript')
-    else:
-               env.SConscript(target_os + '/SConscript')
+    env.SConscript(target_os + '/SConscript')
 
 # Delete the temp files of configuration
 if env.GetOption('clean'):
 
 # Delete the temp files of configuration
 if env.GetOption('clean'):
index a95c187..b1640e1 100644 (file)
@@ -22,11 +22,6 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-fPIC'])
 env.AppendUnique(LIBS = ['uuid'])
 env.AppendUnique(LINKFLAGS = ['-ldl', '-lpthread'])
 
 env.AppendUnique(LIBS = ['uuid'])
 env.AppendUnique(LINKFLAGS = ['-ldl', '-lpthread'])
 
-if env.get('TARGET_OS') == 'tizen':
-    env.AppendUnique(CCFLAGS = ['-D__TIZEN__', '-DSLP_SDK_LOG', '-D_GNU_SOURCE', '-DTIZEN_DEBUG_ENABLE'])
-    env.ParseConfig("pkg-config glib-2.0 gthread-2.0 --cflags --libs")
-    env.ParseConfig("pkg-config dlog --cflags --libs")
-
 # Set arch flags
 target_arch = env.get('TARGET_ARCH')
 if target_arch in ['x86']:
 # Set arch flags
 target_arch = env.get('TARGET_ARCH')
 if target_arch in ['x86']:
diff --git a/build_common/tizen/SConscript b/build_common/tizen/SConscript
new file mode 100644 (file)
index 0000000..cc3b535
--- /dev/null
@@ -0,0 +1,46 @@
+##
+# This script set linux specific flags (GNU GCC)
+#
+##
+Import('env')
+
+print "Reading linux configuration script"
+
+# 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 = ['-DTB_LOG'])
+
+env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__linux__'])
+env.AppendUnique(CFLAGS = ['-std=gnu99'])
+env.AppendUnique(CCFLAGS = ['-Wall', '-fPIC'])
+env.AppendUnique(LINKFLAGS = ['-ldl', '-lpthread'])
+
+if env.get('TARGET_OS') == 'tizen':
+    env.AppendUnique(CCFLAGS = ['-D__TIZEN__', '-DSLP_SDK_LOG', '-D_GNU_SOURCE', '-DTIZEN_DEBUG_ENABLE'])
+    env.ParseConfig("pkg-config dlog --cflags --libs")
+
+# 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.find('v7a-hard') > 0:
+       env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+       env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
+       env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
+       env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
+elif target_arch.find('v7a') > 0:
+       env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+elif target_arch.find('arm64') >= 0:
+       env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+else:
+       env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
index 9a6fced..82ed700 100644 (file)
@@ -63,10 +63,13 @@ if target_os not in ['windows', 'winrt']:
 
 liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 
 
 liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 
-if target_os in ['android', 'linux']:
+if target_os in ['android', 'linux', 'tizen']:
        liboctbstack_env.AppendUnique(LIBS = ['connectivity_abstraction'])
 liboctbstack_env.AppendUnique(LIBS = ['coap', 'm'])
 
        liboctbstack_env.AppendUnique(LIBS = ['connectivity_abstraction'])
 liboctbstack_env.AppendUnique(LIBS = ['coap', 'm'])
 
+if target_os == 'tizen':
+    liboctbstack_env.ParseConfig("pkg-config --cflags --libs uuid")
+
 if target_os not in ['android', 'arduino', 'windows', 'winrt']:
        liboctbstack_env.AppendUnique(LIBS = ['pthread'])
 
 if target_os not in ['android', 'arduino', 'windows', 'winrt']:
        liboctbstack_env.AppendUnique(LIBS = ['pthread'])
 
index 57ddf1b..2320380 100644 (file)
@@ -10,6 +10,9 @@ target_os = env.get('TARGET_OS')
 inc_files = env.get('CPPPATH')
 src_dir = './ip_adapter/'
 
 inc_files = env.get('CPPPATH')
 src_dir = './ip_adapter/'
 
+if target_os == 'tizen':
+    env.ParseConfig("pkg-config --cflags --libs capi-network-wifi")
+
 #Source files to build common for all platforms
 if target_os == 'arduino':
        env.AppendUnique(CA_SRC=[src_dir+'caipadapter_singlethread.c'])
 #Source files to build common for all platforms
 if target_os == 'arduino':
        env.AppendUnique(CA_SRC=[src_dir+'caipadapter_singlethread.c'])
index 9932616..46b80bd 100644 (file)
@@ -47,11 +47,6 @@ if target_os in ['linux', 'tizen']:
 ''' % target_arch
 
                conf = Configure(lib_env)
 ''' % target_arch
 
                conf = Configure(lib_env)
-
-               if target_os in ['tizen'] and not conf.CheckLib('glib-2.0'):
-                       print 'Install glib-2.0 to compile on Tizen platforms'
-                       Exit(1)
-
                conf.Finish()
 
 
                conf.Finish()
 
 
index ac460e4..1a645ef 100644 (file)
@@ -156,9 +156,6 @@ ssmcore_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 ssmcore_env.AppendUnique(LIBS = ['oc', 'octbstack', 'oc_logger',
             'connectivity_abstraction', 'coap'])
 
 ssmcore_env.AppendUnique(LIBS = ['oc', 'octbstack', 'oc_logger',
             'connectivity_abstraction', 'coap'])
 
-if target_os in ['tizen']:
-       ssmcore_env.ParseConfig('pkg-config --libs glib-2.0');
-
 shared_libssmcore = ssmcore_env.SharedLibrary(
                target = 'SSMCore',
                source = [ssm_core_cpp_src, ssm_core_c_src]
 shared_libssmcore = ssmcore_env.SharedLibrary(
                target = 'SSMCore',
                source = [ssm_core_cpp_src, ssm_core_c_src]
index 182fdef..6ddeebc 100644 (file)
@@ -49,11 +49,11 @@ if target_os in ['linux', 'tizen']:
 
                conf = Configure(lib_env)
 
 
                conf = Configure(lib_env)
 
-               if not conf.CheckLib('boost_thread', language='C++'):
+               if target_os not in ['tizen'] and not conf.CheckLib('boost_thread', language='C++'):
                        print 'Did not find boost_thread, exiting!'
                        Exit(1)
 
                        print 'Did not find boost_thread, exiting!'
                        Exit(1)
 
-               if not conf.CheckLib('boost_system', language='C++'):
+               if target_os not in ['tizen'] and not conf.CheckLib('boost_system', language='C++'):
                        print 'Did not find boost_system, exiting!'
                        Exit(1)
 
                        print 'Did not find boost_system, exiting!'
                        Exit(1)
 
index 381ccf2..e908d7b 100644 (file)
@@ -16,8 +16,7 @@ BuildRequires:  boost-thread
 BuildRequires:  boost-system
 BuildRequires:  boost-filesystem
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  boost-system
 BuildRequires:  boost-filesystem
 BuildRequires:  pkgconfig(dlog)
-BuildRequires:  pkgconfig(gthread-2.0)
-BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires:  pkgconfig(uuid)
 BuildRequires:  pkgconfig(capi-network-wifi)
 BuildRequires:  pkgconfig(capi-network-bluetooth)
 Requires(postun): /sbin/ldconfig
 BuildRequires:  pkgconfig(capi-network-wifi)
 BuildRequires:  pkgconfig(capi-network-bluetooth)
 Requires(postun): /sbin/ldconfig
@@ -59,7 +58,7 @@ export RPM_ARCH=%{_arch}
 %endif
 
 
 %endif
 
 
-scons -j 4 TARGET_OS=tizen TARGET_ARCH=$RPM_ARCH TARGET_TRANSPORT=WIFI
+scons -j 4 TARGET_OS=tizen TARGET_ARCH=$RPM_ARCH TARGET_TRANSPORT=IP
 
 %install
 rm -rf %{buildroot}
 
 %install
 rm -rf %{buildroot}
@@ -75,7 +74,6 @@ cp out/tizen/*/release/service/protocol-plugin/plugins/mqtt-light/*.so %{buildro
 
 cp resource/csdk/stack/include/ocstack.h %{buildroot}%{_includedir}
 cp resource/csdk/stack/include/ocstackconfig.h %{buildroot}%{_includedir}
 
 cp resource/csdk/stack/include/ocstack.h %{buildroot}%{_includedir}
 cp resource/csdk/stack/include/ocstackconfig.h %{buildroot}%{_includedir}
-#cp resource/csdk/ocsocket/include/ocsocket.h %{buildroot}%{_includedir}
 cp resource/oc_logger/include/oc_logger.hpp %{buildroot}%{_includedir}
 cp resource/oc_logger/include/oc_log_stream.hpp %{buildroot}%{_includedir}
 cp resource/oc_logger/include/oc_logger.h %{buildroot}%{_includedir}
 cp resource/oc_logger/include/oc_logger.hpp %{buildroot}%{_includedir}
 cp resource/oc_logger/include/oc_log_stream.hpp %{buildroot}%{_includedir}
 cp resource/oc_logger/include/oc_logger.h %{buildroot}%{_includedir}