Merge branch 'connectivity-abstraction' to master 92/692/20
authorErich Keane <erich.keane@intel.com>
Fri, 10 Apr 2015 00:50:26 +0000 (17:50 -0700)
committerErich Keane <erich.keane@intel.com>
Fri, 10 Apr 2015 19:06:24 +0000 (12:06 -0700)
Change-Id: I54ea8ab0ea7c4929576ac9b613ce19c79a5c92b8
Signed-off-by: Erich Keane <erich.keane@intel.com>
54 files changed:
1  2 
.gitignore
Readme.scons.txt
auto_build.sh
build_common/android/SConscript
build_common/arduino/SConscript
build_common/darwin/SConscript
build_common/linux/SConscript
examples/OICMiddle/Client.cpp
extlibs/boost/SConscript
extlibs/buildDependencies.sh
resource/SConscript
resource/buildScript.mk
resource/csdk/SConscript
resource/csdk/connectivity/common/src/logger.c
resource/csdk/connectivity/lib/libcoap-4.1.1/SConscript
resource/csdk/connectivity/samples/linux/README
resource/csdk/makefile
resource/csdk/stack/include/internal/oicgroup.h
resource/csdk/stack/include/ocstack.h
resource/csdk/stack/samples/linux/SimpleClientServer/SConscript
resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp
resource/csdk/stack/src/occollection.c
resource/csdk/stack/src/ocresource.c
resource/csdk/stack/src/oicgroup.c
resource/examples/garageclient.cpp
resource/examples/groupclient.cpp
resource/examples/presenceclient.cpp
resource/examples/simpleserver.cpp
resource/examples/threadingsample.cpp
resource/include/OCPlatform_impl.h
resource/include/OCRepresentation.h
resource/include/OCResource.h
resource/include/OCUtilities.h
resource/include/OutOfProcClientWrapper.h
resource/makefile
service/notification-manager/SConscript
service/notification-manager/SampleApp/linux/sampleProvider/SampleProvider.cpp
service/protocol-plugin/plugin-manager/SConscript
service/protocol-plugin/plugins/SConscript
service/protocol-plugin/plugins/mqtt-fan/lib/mosquitto.c
service/protocol-plugin/sample-app/linux/SConscript
service/protocol-plugin/sample-app/linux/mqtt/Makefile
service/soft-sensor-manager/SConscript
service/soft-sensor-manager/SSMCore/src/SSMInterface/SSMResourceServer.cpp
service/soft-sensor-manager/SSMCore/src/SensorProcessor/ResourceFinder.cpp
service/soft-sensor-manager/SampleApp/SConscript
service/soft-sensor-manager/SampleApp/linux/HeightSensorApp/SConscript
service/soft-sensor-manager/SampleApp/linux/SSMTesterApp/src/SSMTestApp.cpp
service/soft-sensor-manager/SampleApp/linux/THSensorApp/SConscript
service/soft-sensor-manager/SampleApp/linux/THSensorApp1/SConscript
service/soft-sensor-manager/SampleApp/linux/WeightSensorApp/SConscript
service/things-manager/SConscript
service/things-manager/sampleapp/linux/configuration/SConscript
service/things-manager/sdk/src/GroupManager.cpp

diff --cc .gitignore
@@@ -59,14 -54,9 +59,19 @@@ platfor
  
  # Ignore downloaded dependencies
  extlibs/gtest*
 -extlibs/hippomocks-master
 +extlibs/hippomocks-master/
 +extlibs/master.zip
 +extlibs/cereal/cereal
 +extlibs/expat/expat*
+ extlibs/cereal
+ *.tgz
+ *.zip
+ extlibs/arduino/arduino-1.5.8
+ build_common/arduino/extlibs/arduino/arduino-1.5.8
 +
 +# Ignore editor (e.g. Emacs) backup and autosave files
 +*~
 +*#*#
 +
 +# Ignore byte-compiled Python scripts
 +*.pyc
Simple merge
diff --cc auto_build.sh
@@@ -22,12 -22,12 +22,11 @@@ function build(
        # Note: for android, as oic-resource uses C++11 feature stoi and to_string,
        # it requires gcc-4.9, currently only android-ndk-r10(for linux)
        # and windows android-ndk-r10(64bit target version) support these features.
 -
        if [ "$BUILD_FOR_ANDROID" = "true" ]
                then
                echo "*********** Build Boost for android ***********"
                pushd extlibs
-               ./buildDependencies.sh
+               .//buildDependencies.sh
                popd
  
                echo "*********** Build for android x86 *************"
                echo "*********** Build for android armeabi-v7a-hard *************"
                scons TARGET_OS=android TARGET_ARCH=armeabi-v7a-hard ANDROID_NDK=$1 RELEASE=$3
        fi
-       
        echo "*********** Build for arduino avr *************"
-       scons TARGET_OS=arduino TARGET_ARCH=avr ARDUINO_HOME=$2 RELEASE=$3
+       scons TARGET_OS=arduino UPLOAD=false BOARD=mega TARGET_ARCH=avr TARGET_TRANSPORT=ETHERNET NET=Ethernet RELEASE=$3
+       scons TARGET_OS=arduino UPLOAD=false BOARD=mega TARGET_ARCH=avr TARGET_TRANSPORT=WIFI NET=Wifi RELEASE=$3
  
        echo "*********** Build for arduino arm *************"
-       scons TARGET_OS=arduino TARGET_ARCH=arm ARDUINO_HOME=$2 RELEASE=$3
+       scons TARGET_OS=arduino UPLOAD=false BOARD=arduino_due_x TARGET_ARCH=arm TARGET_TRANSPORT=ETHERNET NET=Ethernet RELEASE=$3
+       scons TARGET_OS=arduino UPLOAD=false BOARD=arduino_due_x TARGET_ARCH=arm TARGET_TRANSPORT=WIFI NET=Wifi RELEASE=$3
  
-         scons TARGET_OS=arduino BOARD=mega NET=Wifi ARDUINO_HOME=$2 RELEASE=$3
 +      echo "*********** Build for arduino mega w/WiFi *************"
++      scons TARGET_OS=arduino BOARD=mega NET=Wifi ARDUINO_HOME=$2 RELEASE=$3
 +
        if [ $(uname -s) = "Darwin" ]
        then
                echo "*********** Build for OSX *************"
@@@ -100,7 -99,11 +101,11 @@@ the
  fi
  
  # Suppress "Reading ..." message and enable parallel build
 -export SCONSFLAGS="-Q -j 8"
 +export SCONSFLAGS="-Q -j 4"
  build $1 $2 true
  build $1 $2 false
+ scons resource RELEASE=false -c
+ scons resource LOGGING=false RELEASE=false
+ scons resource TEST=1 RELEASE=false
  echo "===================== done ====================="
@@@ -132,19 -147,25 +146,35 @@@ for flags in p.stdout.readlines()
  
        elif cmp(flags[0:7], 'TC_VER=') == 0:  # set gnustl library path
                ver = flags[7:].strip()
 -              env.AppendUnique(LIBPATH = [android_ndk + '/sources/cxx-stl/gnu-libstdc++/'
 -                              + ver + '/libs/' + target_arch])
 +              stl_path = android_ndk + '/sources/cxx-stl/gnu-libstdc++/' + ver + '/libs/' + target_arch
 +              if target_arch in ['armeabi', 'armeabi-v7a', 'armeabi-v7a-hard']:
 +                      stl_path = stl_path + '/thumb/'
 +
 +              env.AppendUnique(LIBPATH = [stl_path])
 +              env.Install(env.get('BUILD_DIR'), stl_path + '/libgnustl_shared.so')
 +
 +      elif cmp(flags[0:9], 'PLATFORM=') == 0:  # get target platform: android-x
 +              platform_ver = flags[9+8:].strip()
 +              if not platform_ver.isdigit():
 +                      platform_ver = ''
 +
  
+       elif cmp(flags[0:9], 'PLATFORM=') == 0:  # get target platform: android-x
+               platform_ver = flags[9+8:].strip()
+               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
  ######################################################################
@@@ -113,14 -113,27 +113,28 @@@ def __import_lib(env, lib)
        lib_src.extend(__search_files(lib_path, '*.c'))
        lib_src.extend(__search_files(lib_path, '*.cpp'))
  
-       prefix = env.get('BOARD') + '_'
-       if env.get('CPU'):
-               prefix += env.get('CPU') + '_'
+       lib_obj = __src_to_obj(env, lib_src)
+       build_dir = env.get('BUILD_DIR')
+       if build_dir:
+               lib_a = env.StaticLibrary(build_dir + lib, lib_obj)
+       else:
+               lib_a = env.StaticLibrary(lib, lib_obj)
+       # If we link libSPI.a, the final binary is not getting launched
+       # on the board.  Which is not the case if we directly use SPI.o.
  
-       lib = env.get('BUILD_DIR', '.') + '/arduino/' + prefix + lib
-       lib_a = env.StaticLibrary(lib, __src_to_obj(env, lib_src))
+       if env.get('TARGET_ARCH') == 'arm':
+               if lib == 'SPI':
+                       for obj in lib_obj:
+                               if obj.name.endswith('SPI.o'):
+                                       env.PrependUnique(LIBS = [File(obj)])
+               else:
++
+                       env.AppendUnique(LIBS = [File(lib_a[0])])
+       else:
+               env.PrependUnique(LIBS = [File(lib_a[0])])
  
-       env.AppendUnique(LIBS = [File(lib_a[0])])
+       #env.AppendUnique(LIBS = [File(lib_a[0])])
  
  def __build_core(env):
        core_src = __search_files(core_folder, '*.S')
@@@ -396,13 -424,11 +427,11 @@@ else
                env.AppendUnique(LIBS = 'm')
        env.Replace(ARCOM = '$AR ' + platform_info.get('compiler.ar.flags') + ' $TARGET $SOURCES')
  
- # Make sure the .d files are removed when clean the build
- if env.GetOption('clean'):
-       dfs = __search_files(env.get('BUILD_DIR'), '*.d')
-       for df in dfs:
-               Execute(Delete(df))
+ __build_core(env)
  
  env.AddMethod(__import_lib, "ImportLib") #import arduino library
 -#env.AddMethod(__build_core, "BuildCore") #build arduino core
 +env.AddMethod(__build_core, "BuildCore") #build arduino core
  env.AddMethod(__create_bin, "CreateBin") #create binary files(.eep and .hex)
+ env.AddMethod(__upload, "Upload") #Upload binary to board
  env.AddMethod(__upload_help, "UploadHelp") #print the command line that to upload binary to the boardf
Simple merge
Simple merge
Simple merge
@@@ -7,143 -5,49 +7,50 @@@ boost_env = env.Clone(
  modules = ['thread','program_options']
  
  target_os = env.get('TARGET_OS')
 +target_arch = env.get('TARGET_ARCH')
  
- boost_version   = '1.57.0'
- boost_base_name  = 'boost_'+string.replace(boost_version,'.','_')
- boost_arch_name  = boost_base_name+'.zip'
- boost_url       = 'http://downloads.sourceforge.net/project/boost/boost/'+boost_version+'/'+boost_arch_name+'?r=&ts=1421801329&use_mirror=iweb'
- host_os = sys.platform
- if host_os == 'linux2' :
-     boost_bootstrap = boost_base_name+os.sep+'bootstrap.sh'
-     boost_b2_name    = boost_base_name+os.sep+'b2'
- else :
-     msg="Host platform (%s) is currently not supported for boost builds" % host_os
-     raise SCons.Errors.EnvironmentError(msg)
- # Download source code
- boost_zip = boost_env.Download(boost_arch_name, boost_url)
- # Unpack source code
- if not os.path.exists(boost_bootstrap):
-     boost_env.UnpackAll(boost_bootstrap, boost_zip)
- # Fix android x86_64 build error due to missing asm/page.h
- if target_os == 'android':
-     file_object = open(boost_base_name + '/boost/thread/pthread/thread_data.hpp', 'r+')
-     try:
-         content = file_object.read()
-         idx = content.find('#include <asm/page.h>')
-         if idx > 0 :
-             if content[idx -1] != '/' :
-                 content = content.replace('#include <asm/page.h>', '//#include <asm/page.h>')
-                 file_object.seek(0)
-                 file_object.write(content)
-     finally:
-         file_object.close( )
- # Run bootstrap.sh
- if not os.path.exists(boost_b2_name):
-     boost_env.Configure(boost_base_name, './bootstrap.sh')
- cmd = None
- # Windows...
- if boost_env["PLATFORM"] in ["win32"] :
-     if boost_env.WhereIs("cmd") :
-         # TODO: Add Windows Support
-         cmd = None
- # read the tools on *nix systems and sets the default parameters
- elif boost_env["PLATFORM"] in ["darwin", "linux", "posix"] :
-     if boost_env.WhereIs("sh") :
-         cmd = ['./b2']
- if not cmd :
-     raise SCons.Errors.StopError("Boost build system not supported on this platform [%s]" % (boost_env["PLATFORM"]))
- # We need to be in the target's directory
- cwd = boost_base_name
- # Gather all of the path, bin and flags
- version     = boost_env.get('VERSION','')
- tool_path   = os.path.dirname(boost_env['CXX'])
- cxx_bin     = os.path.basename(boost_env['CXX'])
- ar_bin      = os.path.basename(boost_env['AR'])
- ranlib_bin  = os.path.basename(boost_env['RANLIB'])
- cflags     = list(boost_env['CFLAGS'])
- ccflags    = list(boost_env['CCFLAGS'])
- cxxflags    = list(boost_env['CXXFLAGS'])
- try:
-     cxxflags.remove('-fno-rtti')
- except ValueError:
-     pass
- try:
-     cxxflags.remove('-fno-exceptions')
- except ValueError:
-     pass
- # Write a user-config for this variant
- user_config_name = os.path.join(cwd, 'tools', 'build', 'src', 'user-config.jam')
- user_config_file = open(user_config_name, 'w')
- user_config_file.write('import os ;\n')
- user_config_file.write('using gcc :')
- user_config_file.write(' '+version+' :')
- #user_config_file.write(' :')
- #user_config_file.write(' '+os.path.basename(toolchain['CXX']['BIN'])+' :\n')
- user_config_file.write(' '+cxx_bin+' :\n')
- user_config_file.write('    <archiver>'+ar_bin+'\n')
- user_config_file.write('    <ranlib>'+ranlib_bin+'\n')
- for value in boost_env['CPPDEFINES'] :
-     if len(value) > 1 :
-         user_config_file.write('    <compileflags>-D'+value[0]+'='+value[1]+'\n')
+ if 'linux' == target_os :
+     # Check for Boost libraries in /usr/boost
+     print 'TODO: Perform platform check for linux'
+     raise SCons.Errors.EnvironmentError('Unsupported platform')
+ if 'android' == target_os :
+     env.Tool('URLDownload',    toolpath=['../../tools/scons'])
+     env.Tool('UnpackAll',      toolpath=['../../tools/scons'])
+     env.Tool('BoostBootstrap', toolpath=['../../tools/scons'])
+     env.Tool('BoostBuild',     toolpath=['../../tools/scons'])
+     boost_version   = '1.57.0'
+     boost_base_name  = 'boost_'+string.replace(boost_version,'.','_')
+     boost_arch_name  = boost_base_name+'.zip'
+     boost_url       = 'http://downloads.sourceforge.net/project/boost/boost/'+boost_version+'/'+boost_arch_name+'?r=&ts=1421801329&use_mirror=iweb'
+     host_os = sys.platform
+     if host_os == 'linux2' :
+         boost_bootstrap = boost_base_name+os.sep+'bootstrap.sh'
+         boost_b2_name    = boost_base_name+os.sep+'b2'
      else :
-         user_config_file.write('    <compileflags>-D'+value[0]+'\n')
- for value in boost_env['CPPPATH'] :
-     user_config_file.write('    <compileflags>-I'+value+'\n')
- for flag in ccflags :
-     user_config_file.write('    <compileflags>'+flag+'\n')
- for flag in cflags :
-     user_config_file.write('    <cflags>'+flag+'\n')
- for flag in cxxflags :
-     user_config_file.write('    <cxxflags>'+flag+'\n')
- user_config_file.write('    ;\n')
- user_config_file.close();
- # Ensure that the toolchain is in the PATH
- penv = os.environ.copy()
- penv["PATH"] = tool_path + ":" + env['ENV'].get('PATH', '') + ':' + penv["PATH"]
- build_path = os.path.join('build', target_os, target_arch)
- cmd.append('-q')
- cmd.append('target-os=linux')
- cmd.append('link=static')
- cmd.append('threading=multi')
- cmd.append('--layout=system')
- cmd.append('--build-type=minimal')
- cmd.append('--prefix='+ build_path + os.sep + 'install_tmp')
- cmd.append('--build-dir='+build_path)
- for module in modules :
-     cmd.append('--with-'+module)
- cmd.append('headers')
- cmd.append('install')
- # build it now (we need the shell, because some programs need it)
- devnull = open(os.devnull, "wb")
- print "Building boost [%s] on the source [%s]" % (cmd, boost_b2_name)
- handle  = subprocess.Popen(cmd, env=penv, cwd=cwd)#, stdout=devnull )
- if handle.wait() <> 0 :
-     raise SCons.Errors.BuildError( "Building boost [%s] on the source [%s]" % (cmd, boost_b2_name) )
- # Use Copy instead of InstallXXX to make sure boost is installed immediately
- Execute(Copy(os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'include'),
-     os.path.join(boost_base_name, build_path, 'install_tmp', 'include')))
- Execute(Copy(os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'lib', target_arch),
-     os.path.join(boost_base_name, build_path, 'install_tmp', 'lib')))
+         msg="Host platform (%s) is currently not supported for boost builds" % host_os
+         raise SCons.Errors.EnvironmentError(msg)
+     boost_zip = env.URLDownload(boost_arch_name, boost_url)
+     boost_dir = env.UnpackAll(boost_bootstrap, boost_zip)
+     boost_b2  = env.BoostBootstrap(boost_b2_name, boost_dir)
+     dep_sys_root = env['DEP_SYS_ROOT']
+     dep_src_dir =  dep_sys_root + os.sep + 'include'
+     dep_lib_dir =  dep_sys_root + os.sep + 'lib'
+     boost_targets = [
+         os.path.join(dep_src_dir, 'boost', 'config.hpp'),
+         os.path.join(dep_src_dir, 'boost', 'variant.hpp'),
+         os.path.join(dep_src_dir, 'boost', 'program_options.hpp'),
+         os.path.join(dep_src_dir, 'libboost_thread.a'),
+         os.path.join(dep_src_dir, 'libboost_atomic.a'),
+         os.path.join(dep_src_dir, 'libboost_system.a'),
+         os.path.join(dep_src_dir, 'libboost_program_options.a')
+         ]
+     boost_build = env.BoostBuild(boost_targets, boost_b2, PREFIX=dep_sys_root, MODULES=modules)
  
Simple merge
@@@ -33,6 -62,6 +62,6 @@@ if target_os == 'linux'
  elif target_os == 'darwin':
        # Build linux samples for now
        SConscript('csdk/stack/samples/linux/SimpleClientServer/SConscript')
--elif target_os == 'arduino':
-       # Build c samples
--      SConscript('csdk/stack/samples/arduino/SimpleClientServer/ocserver/SConscript')
++#elif target_os == 'arduino':
++#     SConscript('csdk/stack/samples/arduino/SimpleClientServer/ocserver/SConscript')
--# //******************************************************************
--# //
--# // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
--# //
--# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
--# //
--# // Licensed under the Apache License, Version 2.0 (the "License");
--# // you may not use this file except in compliance with the License.
--# // You may obtain a copy of the License at
--# //
--# //      http://www.apache.org/licenses/LICENSE-2.0
--# //
--# // Unless required by applicable law or agreed to in writing, software
--# // distributed under the License is distributed on an "AS IS" BASIS,
--# // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# // See the License for the specific language governing permissions and
--# // limitations under the License.
--# //
--# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++## //******************************************************************
++## //
++## // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
++## //
++## //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++## //
++## // Licensed under the Apache License, Version 2.0 (the "License");
++## // you may not use this file except in compliance with the License.
++## // You may obtain a copy of the License at
++## //
++## //      http://www.apache.org/licenses/LICENSE-2.0
++## //
++## // Unless required by applicable law or agreed to in writing, software
++## // distributed under the License is distributed on an "AS IS" BASIS,
++## // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++## // See the License for the specific language governing permissions and
++## // limitations under the License.
++## //
++## //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++##
  #
--
--# This makefile build-script requires the following for each platform:
--# Note:  Refer to READMEs at "<oic-resource>/" & "<oic-resource>/csdk/" for
--#        more information.
++## This makefile build-script requires the following for each platform:
++## Note:  Refer to READMEs at "<oic-resource>/" & "<oic-resource>/csdk/" for
++##        more information.
++##
++## Linux:
++##    OS: Ubuntu 12.04
++##    GCC Version: 4.6.1
++##
++## Arduino ATMega 2560:
++##    Framework Version: Arduino 1.0.5
++##    AVR-GCC Version: 4.5.3
++##
++## Arduino Due:
++##    Framework Version: Arduino 1.5.7
++##    AVR-GCC Version: 4.8.3
++#
++## Header Description:
++## ====NAME/TITLE - BUILD TYPE - OUT DIRECTORY====
++#
++################################################################################
++#####       TB Stack, TB Unit Tests, TB Examples, UB Stack,                 ####
++#####       & UB Examples - Linux & Arduino Mega                            ####
++##### Note: Default "all" target builds Release only "all" of Linux &       ####
++#####       Release only "all" of Arduino Mega with Ethernet Shield.        ####
++################################################################################
++#
++#all: all_release
++#
++#all_all: all_release all_debug
++#
++#dev: linux_ub_dev arduinomega_all_dev
++#
++#all_release: linux_release arduinomega_release
++#
++#all_debug: linux_debug arduinomega_debug
++#
++################################################################################
++#####       TB Stack, TB Unit Tests, TB Examples, UB Stack,                 ####
++#####       & UB Examples - Linux & Arduino Due                             ####
++##### Note: Default "all" target builds Release only "all" of Linux &       ####
++#####       Release only "all" of Arduino Due with Ethernet Shield.         ####
++################################################################################
++#
++#complement: complement_release
++#
++#complement_all: complement_release complement_debug
++#
++#complement_dev: linux_ub_dev arduinodue_all_dev
++#
++#complement_release: linux_release arduinodue_release
++#
++#complement_debug: linux_debug arduinodue_debug
++#
++################################################################################
++#####       TB Stack, TB Unit Tests, TB Examples, UB Stack, UB Examples,    ####
++#####       & OCICUC - Linux, Arduino Mega and Arduino Due                  ####
++##### Note: The "all_dev" target is intended for use on the build           ####
++#####       server(s). This includes "all" targets for Release & Debug for  ####
++#####       Linux, "all" Release & Debug for Arduino Mega with Ethernet     ####
++#####       Shield & WiFi Shield, and "all" Release & Debug for Arduino     ####
++#####       Due with Ethernet Shield & Wifi Shield.                         ####
++################################################################################
++#
++#all_dev: linux_ub_dev arduinomega_all_dev arduinodue_all_dev
++#
++################################################################################
++### TB Stack, TB Unit Tests, TB Examples, UB Stack, & UB Examples - Linux Only #
++################################################################################
++#
++#linux: linux_tb_release
++#
++#linux_all: linux_release linux_debug
++#
++#linux_release: linux_tb_release linux_ub_release
++#
++#linux_debug: linux_tb_debug linux_ub_debug
++#
++################################################################################
++#####      TB Stack, TB Unit Tests, & TB Examples - Linux Only              ####
++################################################################################
++#
++#linux_tb: linux_tb_release
++#
++#linux_tb_all: linux_tb_release linux_tb_debug
++#
++#linux_tb_release: linux_tb_stack_release linux_tb_unittests_release linux_tb_examples_release
++#
++#linux_tb_debug: linux_tb_stack_debug linux_tb_unittests_debug linux_tb_examples_debug
++#
++################################################################################
++#####      UB Stack, TB Stack, & UB Examples - Linux Only                   ####
++################################################################################
++#
++#linux_ub: linux_ub_release
++#
++#linux_ub_all: linux_ub_release linux_ub_debug
++#
++#linux_ub_release: linux_tb_stack_release linux_ub_unittests_release linux_ub_stack_release linux_ub_examples_release
++#
++#linux_ub_debug: linux_tb_stack_debug linux_ub_unittests_debug linux_ub_stack_debug linux_ub_examples_debug
++#
++################################################################################
++#####      TB Stack - Linux Only                                            ####
++################################################################################
++#
++#linux_tb_stack: linux_tb_stack_release
++#
++#linux_tb_stack_all: linux_tb_stack_release linux_tb_stack_debug
++#
++#linux_tb_stack_debug:
++#     @echo "=====BUILD TB STACK FOR LINUX - DEBUG - <oic-resource>/csdk/linux/debug/====="
++#     $(MAKE) -C csdk/ "buildScript_all" "BUILD=debug" "PLATFORM=linux"
++#
++#linux_tb_stack_release:
++#     @echo "=====BUILD TB STACK FOR LINUX - RELEASE - <oic-resource>/csdk/linux/release/====="
++#     $(MAKE) -C csdk/ "buildScript_all" "BUILD=release" "PLATFORM=linux"
++#
++################################################################################
++#####      TB Unit Tests - Linux Only                                       ####
++################################################################################
++#
++#linux_tb_unittests: linux_tb_unittests_release
++#
++#linux_tb_unittests_all: linux_tb_unittests_release linux_tb_unittests_debug
++#
++#linux_tb_unittests_release: linux_tb_stack_release
++#     @echo "=====BUILD TB UNITTESTS FOR LINUX - RELEASE - <oic-resource>/csdk/stack/test/linux/release/====="
++#     $(MAKE) -C csdk/stack/test/linux/ "BUILD=release"
++#
++#linux_tb_unittests_debug: linux_tb_stack_debug
++#     @echo "=====BUILD TB UNITTESTS FOR LINUX - DEBUG - <oic-resource>/csdk/stack/test/linux/debug/====="
++#     $(MAKE) -C csdk/stack/test/linux/ "BUILD=debug"
++#
++################################################################################
++#####      TB Examples - Linux Only                                         ####
++################################################################################
++#
++#linux_tb_examples: linux_tb_stack_release linux_tb_examples_release
++#
++#linux_tb_examples_all: linux_tb_stack_release linux_tb_examples_debug
++#
++#linux_tb_examples_release: linux_tb_stack_release
++#     @echo "=====BUILD TB SAMPLE APPS FOR LINUX - RELEASE - <oic-resource>/csdk/stack/samples/linux/SimpleClientServer/release/====="
++#     $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "PLATFORM=linux" "BUILD=release"
++#     $(MAKE) -C csdk/stack/samples/linux/secure "PLATFORM=linux" "BUILD=release"
++#
++#linux_tb_examples_debug: linux_tb_stack_debug
++#     @echo "=====BUILD TB SAMPLE APPS FOR LINUX - DEBUG - <oic-resource>/csdk/stack/samples/linux/SimpleClientServer/debug/====="
++#     $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "PLATFORM=linux" "BUILD=debug"
++#     $(MAKE) -C csdk/stack/samples/linux/secure "PLATFORM=linux" "BUILD=debug"
++#
++################################################################################
++#####      UB Stack (& TB Stack as prerequisite) - Linux Only               ####
++################################################################################
++#
++#linux_ub_stack: linux_ub_stack_release
++#
++#linux_ub_stack_all: linux_ub_stack_release linux_ub_stack_debug
++#
++#linux_ub_stack_release: linux_tb_stack_release
++#     @echo "=====BUILD UB STACK FOR LINUX - RELEASE - <oic-resource>/release/====="
++#     $(MAKE) -C ./ "buildScript_all" "BUILD=release"
++#
++#linux_ub_stack_debug: linux_tb_stack_debug
++#     @echo "=====BUILD UB STACK FOR LINUX - DEBUG - <oic-resource>/debug/====="
++#     $(MAKE) -C ./ "buildScript_all" "BUILD=debug"
++#
++################################################################################
++#####      UB Unit Tests (& TB Stack as prequisite) - Linux Only            ####
++################################################################################
++#
++#linux_ub_unittests: linux_ub_unittests_release
++#
++#linux_ub_unittests_all: linux_ub_unittests_release linux_ub_unittests_debug
++#
++#linux_ub_unittests_release: linux_ub_stack_release
++#     @echo "=====BUILD UB UNIT TESTS FOR LINUX - RELEASE - <oic-resource>/unittests/release====="
++#     $(MAKE) -C unittests/ "BUILD=release"
++#
++#linux_ub_unittests_debug: linux_ub_stack_debug
++#     @echo "=====BUILD UB UNIT TESTS FOR LINUX - DEBUG - <oic-resource>/unittests/debug====="
++#     $(MAKE) -C unittests/ "BUILD=debug"
++#
++################################################################################
++#####      UB Examples (& UB Stack as prerequisite) - Linux Only            ####
++################################################################################
++#
++#linux_ub_examples: linux_ub_examples_release
++#
++#linux_ub_examples_all: linux_ub_examples_release linux_ub_examples_debug
++#
++#linux_ub_examples_release: linux_ub_stack_release
++#     @echo "=====BUILD UB SAMPLE APPS FOR LINUX - RELEASE - <oic-resource>/examples/release/====="
++#     $(MAKE) -C examples/ "buildScript_all" "BUILD=release"
++#
++#linux_ub_examples_debug: linux_ub_stack_debug
++#     @echo "=====BUILD UB SAMPLE APPS FOR LINUX - DEBUG - <oic-resource>/examples/debug/====="
++#     $(MAKE) -C examples/ "buildScript_all" "BUILD=debug"
++#
++################################################################################
++#####      TB Stack, TB Unit Tests, TB Examples, UB Stack, UB Examples,     ####
++#####      UB Unit Tests - Linux Only                                       ####
++################################################################################
++#
++#linux_ub_dev: linux_ub_stack_all linux_ub_unittests_all linux_ub_examples_all linux_tb_examples_all
++#
++################################################################################
++##TB Stack, TB Unit Tests, & TB Examples - Arduino Mega Only - Ethernet & WiFi #
++################################################################################
++#
++#arduinomega: arduinomega_release
++#
++#arduinomega_all: arduinomega_release arduinomega_debug
++#
++#arduinomega_all_dev: arduinomega_release_dev arduinomega_debug_dev
++#
++#arduinomega_release: arduinomega_ethernet_release
++#
++#arduinomega_debug: arduinomega_ethernet_debug
++#
++#arduinomega_release_dev: arduinomega_ethernet_release arduinomega_wifi_release
++#
++#arduinomega_debug_dev: arduinomega_ethernet_debug arduinomega_wifi_debug
++#
++################################################################################
++### TB Stack, TB Unit Tests, & TB Examples - Arduino Mega Only - Ethernet Only #
++################################################################################
++#
++#arduinomega_ethernet: arduinomega_ethernet_release
++#
++#arduinomega_ethernet_all: arduinomega_ethernet_release arduinomega_ethernet_debug
++#
++#arduinomega_ethernet_release: arduinomega_stack_ethernet_release arduinomega_samples_ethernet_release
++#
++#arduinomega_ethernet_debug: arduinomega_stack_ethernet_debug arduinomega_samples_ethernet_debug
++#
++################################################################################
++### TB Stack, TB Unit Tests, & TB Examples - Arduino Mega Only - Ethernet Only #
++################################################################################
++#
++#arduinomega_wifi: arduinomega_wifi_release
++#
++#arduinomega_wifi_all: arduinomega_wifi_release arduinomega_wifi_debug
++#
++#arduinomega_wifi_release: arduinomega_stack_wifi_release arduinomega_samples_wifi_release
++#
++#arduinomega_wifi_debug: arduinomega_stack_wifi_debug arduinomega_samples_wifi_debug
++#
++################################################################################
++#####             TB Stack - Arduino Mega Only - Ethernet Only              ####
++################################################################################
++#
++#arduinomega_stack_ethernet: arduinomega_stack_ethernet_release
++#
++#arduinomega_stack_ethernet_all: arduinomega_stack_ethernet_release arduinomega_stack_ethernet_debug
++#
++#arduinomega_stack_ethernet_release:
++#     @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - RELEASE - ETHERNET SHIELD======"
++#     @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinomega/ethernet_shield/release/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
++#
++#arduinomega_stack_ethernet_debug:
++#     @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - DEBUG - ETHERNET SHIELD======"
++#     @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinomega/ethernet_shield/debug/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
++#
++################################################################################
++#####             TB Stack - Arduino Mega Only - WiFi Only                  ####
++################################################################################
++#
++#arduinomega_stack_wifi: arduinomega_stack_wifi_release
++#
++#arduinomega_stack_wifi_all: arduinomega_stack_wifi_release arduinomega_stack_wifi_debug
++#
++#arduinomega_stack_wifi_release:
++#     @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - RELEASE - WiFi SHIELD======"
++#     @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinomega/wifi_shield/release/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
++#
++#arduinomega_stack_wifi_debug:
++#     @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - DEBUG - WiFi SHIELD======"
++#     @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinomega/wifi_shield/debug/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
++#
++################################################################################
++#####          TB Examples - Arduino Mega Only - Ethernet Only              ####
++################################################################################
++#
++#arduinomega_samples_ethernet: arduinomega_samples_ethernet_release
++#
++#arduinomega_samples_ethernet_all: arduinomega_samples_ethernet_release arduinomega_samples_ethernet_debug
++#
++#arduinomega_samples_ethernet_release: arduinomega_stack_ethernet_release
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - RELEASE - ETHERNET SHIELD====="
++#     @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/ethernet_shield/release/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
++#
++#arduinomega_samples_ethernet_debug: arduinomega_stack_ethernet_debug
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - DEBUG - ETHERNET SHIELD====="
++#     @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/ethernet_shield/debug/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
++#
++################################################################################
++#####             TB Examples - Arduino Mega Only - WiFi Only               ####
++################################################################################
++#
++#arduinomega_samples_wifi: arduinomega_samples_wifi_release
++#
++#arduinomega_samples_wifi_all: arduinomega_samples_wifi_release arduinomega_samples_wifi_debug
++#
++#arduinomega_samples_wifi_release: arduinomega_stack_wifi_release
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - RELEASE - WIFI SHIELD====="
++#     @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/wifi_shield/release/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
++#
++#arduinomega_samples_wifi_debug: arduinomega_stack_wifi_debug
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - DEBUG - WIFI SHIELD====="
++#     @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/wifi_shield/debug/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
++#
++#
++################################################################################
++##TB Stack, TB Unit Tests, & TB Examples - Arduino Due Only - Ethernet & WiFi ##
++################################################################################
++#
++#arduinodue: arduinodue_release
++#
++#arduinodue_all: arduinodue_release arduinodue_debug
++#
++#arduinodue_all_dev: arduinodue_release_dev arduinodue_debug_dev
++#
++#arduinodue_release: arduinodue_ethernet_release
++#
++#arduinodue_debug: arduinodue_ethernet_debug
++#
++#arduinodue_release_dev: arduinodue_ethernet_release arduinodue_wifi_release
++#
++#arduinodue_debug_dev: arduinodue_ethernet_debug arduinodue_wifi_debug
++#
++################################################################################
++### TB Stack, TB Unit Tests, & TB Examples - Arduino Due Only - Ethernet Only ##
++################################################################################
++#
++#arduinodue_ethernet: arduinodue_ethernet_release
++#
++#arduinodue_ethernet_all: arduinodue_ethernet_release arduinodue_ethernet_debug
++#
++#arduinodue_ethernet_release: arduinodue_stack_ethernet_release arduinodue_samples_ethernet_release
++#
++#arduinodue_ethernet_debug: arduinodue_stack_ethernet_debug arduinodue_samples_ethernet_debug
++#
++################################################################################
++### TB Stack, TB Unit Tests, & TB Examples - Arduino Due Only - Ethernet Only ##
++################################################################################
++#
++#arduinodue_wifi: arduinodue_wifi_release
++#
++#arduinodue_wifi_all: arduinodue_wifi_release arduinodue_wifi_debug
++#
++#arduinodue_wifi_release: arduinodue_stack_wifi_release arduinodue_samples_wifi_release
++#
++#arduinodue_wifi_debug: arduinodue_stack_wifi_debug arduinodue_samples_wifi_debug
++#
++################################################################################
++#####             TB Stack - Arduino Due Only - Ethernet Only               ####
++################################################################################
++#
++#arduinodue_stack_ethernet: arduinodue_stack_ethernet_release
++#
++#arduinodue_stack_ethernet_all: arduinodue_stack_ethernet_release arduinodue_stack_ethernet_debug
++#
++#arduinodue_stack_ethernet_release:
++#     @echo "=====BUILD C STACK FOR ARDUINO DUE - RELEASE - ETHERNET SHIELD======"
++#     @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinodue/ethernet_shield/release/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
++#
++#arduinodue_stack_ethernet_debug:
++#     @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinodue/ethernet_shield/debug/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
++#
++################################################################################
++#####             TB Stack - Arduino Due Only - WiFi Only                   ####
++################################################################################
++#
++#arduinodue_stack_wifi: arduinodue_stack_wifi_release
++#
++#arduinodue_stack_wifi_all: arduinodue_stack_wifi_release arduinodue_stack_wifi_debug
++#
++#arduinodue_stack_wifi_release:
++#     @echo "=====BUILD C STACK FOR ARDUINO DUE - RELEASE - WiFi SHIELD======"
++#     @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinodue/wifi_shield/release/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
++#
++#arduinodue_stack_wifi_debug:
++#     @echo "=====BUILD C STACK FOR ARDUINO DUE - DEBUG - WiFi SHIELD======"
++#     @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinodue/wifi_shield/debug/====="
++#     $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
++#
++################################################################################
++#####          TB Examples - Arduino Due Only - Ethernet Only               ####
++################################################################################
++#
++#arduinodue_samples_ethernet: arduinodue_samples_ethernet_release
++#
++#arduinodue_samples_ethernet_all: arduinodue_samples_ethernet_release arduinodue_samples_ethernet_debug
++#
++#arduinodue_samples_ethernet_release: arduinodue_stack_ethernet_release
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - RELEASE - ETHERNET SHIELD====="
++#     @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/ethernet_shield/release/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
++#
++#arduinodue_samples_ethernet_debug: arduinodue_stack_ethernet_debug
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - DEBUG - ETHERNET SHIELD====="
++#     @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/ethernet_shield/debug/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
++#
++################################################################################
++#####             TB Examples - Arduino Due Only - WiFi Only                ####
++################################################################################
++#
++#arduinodue_samples_wifi: arduinodue_samples_wifi_release
++#
++#arduinodue_samples_wifi_all: arduinodue_samples_wifi_release arduinodue_samples_wifi_debug
++#
++#arduinodue_samples_wifi_release: arduinodue_stack_wifi_release
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - RELEASE - WIFI SHIELD====="
++#     @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/wifi_shield/release/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
++#
++#arduinodue_samples_wifi_debug: arduinodue_stack_wifi_debug
++#     @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - DEBUG - WIFI SHIELD====="
++#     @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/wifi_shield/debug/====="
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
++#
++################################################################################
++#####                Clean All - Linux Only - Ethernet Only                 ####
++################################################################################
++#
++#linux_clean:
++#     -rm -rf -C csdk/linux
++#     $(MAKE) -C csdk/stack/test/linux "clean"
++#     $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "clean"
++#     $(MAKE) -C csdk/stack/samples/linux/secure "clean"
++#     $(MAKE) -C . "clean"
++#
++################################################################################
++#####            Clean All - Arduino Mega Only - Ethernet & WiFi            ####
++################################################################################
++#
++#arduinomega_clean:
++#     -rm -rf csdk/arduinomega
++#     -rm -rf csdk/stack/test/arduino/arduinomega
++#     -rm -rf csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega
++#
++################################################################################
++#####            Clean All - Arduino Due Only - Ethernet & WiFi             ####
++################################################################################
++#
++#arduinodue_clean:
++#     -rm -rf csdk/arduinodue
++#     -rm -rf csdk/stack/test/arduino/arduinodue
++#     -rm -rf csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue
++#
++#
++################################################################################
++#####  Clean All - Linux, Arduino Mega & Arduino Due - Ethernet & WiFi      ####
++################################################################################
++#clean:
++#     $(MAKE) -C csdk "clean" "deepclean"
++#     $(MAKE) -C csdk/stack/test/linux "clean"
++#     $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "clean"
++#     $(MAKE) -C csdk/stack/samples/linux/secure "clean"
++#     $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "clean"
++#     $(MAKE) -C . "clean"
++#     $(MAKE) -C unittests/ "clean"
++#     $(MAKE) -C examples/ "clean"
++#     $(MAKE) -C oc_logger/ "clean"
++#
++################################################################################
++#### You must specify arduinomega or arduinodue when using an arduino target.###
++################################################################################
++#arduino:
++#     $(error "You must specify "arduinomega" or "arduinodue" when trying to\
++#     build arduino targets.")
  #
--# Linux:
--#    OS: Ubuntu 12.04
--#    GCC Version: 4.6.1
  #
--# Arduino ATMega 2560:
--#    Framework Version: Arduino 1.0.5
--#    AVR-GCC Version: 4.5.3
  #
--# Arduino Due:
--#    Framework Version: Arduino 1.5.7
--#    AVR-GCC Version: 4.8.3
--
--# Header Description:
--# ====NAME/TITLE - BUILD TYPE - OUT DIRECTORY====
--
--###############################################################################
--####       TB Stack, TB Unit Tests, TB Examples, UB Stack,                 ####
--####       & UB Examples - Linux & Arduino Mega                            ####
--#### Note: Default "all" target builds Release only "all" of Linux &       ####
--####       Release only "all" of Arduino Mega with Ethernet Shield.        ####
--###############################################################################
--
--all: all_release
--
--all_all: all_release all_debug
--
--dev: linux_ub_dev arduinomega_all_dev
--
--all_release: linux_release arduinomega_release
--
--all_debug: linux_debug arduinomega_debug
--
--###############################################################################
--####       TB Stack, TB Unit Tests, TB Examples, UB Stack,                 ####
--####       & UB Examples - Linux & Arduino Due                             ####
--#### Note: Default "all" target builds Release only "all" of Linux &       ####
--####       Release only "all" of Arduino Due with Ethernet Shield.         ####
--###############################################################################
--
--complement: complement_release
--
--complement_all: complement_release complement_debug
--
--complement_dev: linux_ub_dev arduinodue_all_dev
--
--complement_release: linux_release arduinodue_release
--
--complement_debug: linux_debug arduinodue_debug
--
--###############################################################################
--####       TB Stack, TB Unit Tests, TB Examples, UB Stack, UB Examples,    ####
--####       & OCICUC - Linux, Arduino Mega and Arduino Due                  ####
--#### Note: The "all_dev" target is intended for use on the build           ####
--####       server(s). This includes "all" targets for Release & Debug for  ####
--####       Linux, "all" Release & Debug for Arduino Mega with Ethernet     ####
--####       Shield & WiFi Shield, and "all" Release & Debug for Arduino     ####
--####       Due with Ethernet Shield & Wifi Shield.                         ####
--###############################################################################
--
--all_dev: linux_ub_dev arduinomega_all_dev arduinodue_all_dev
--
--###############################################################################
--## TB Stack, TB Unit Tests, TB Examples, UB Stack, & UB Examples - Linux Only #
--###############################################################################
--
--linux: linux_tb_release
--
--linux_all: linux_release linux_debug
--
--linux_release: linux_tb_release linux_ub_release
--
--linux_debug: linux_tb_debug linux_ub_debug
--
--###############################################################################
--####      TB Stack, TB Unit Tests, & TB Examples - Linux Only              ####
--###############################################################################
--
--linux_tb: linux_tb_release
--
--linux_tb_all: linux_tb_release linux_tb_debug
--
--linux_tb_release: linux_tb_stack_release linux_tb_unittests_release linux_tb_examples_release
--
--linux_tb_debug: linux_tb_stack_debug linux_tb_unittests_debug linux_tb_examples_debug
--
--###############################################################################
--####      UB Stack, TB Stack, & UB Examples - Linux Only                   ####
--###############################################################################
--
--linux_ub: linux_ub_release
--
--linux_ub_all: linux_ub_release linux_ub_debug
--
--linux_ub_release: linux_tb_stack_release linux_ub_unittests_release linux_ub_stack_release linux_ub_examples_release
--
--linux_ub_debug: linux_tb_stack_debug linux_ub_unittests_debug linux_ub_stack_debug linux_ub_examples_debug
--
--###############################################################################
--####      TB Stack - Linux Only                                            ####
--###############################################################################
--
--linux_tb_stack: linux_tb_stack_release
--
--linux_tb_stack_all: linux_tb_stack_release linux_tb_stack_debug
--
--linux_tb_stack_debug:
-       @echo "=====BUILD LIBCOAP FOR LINUX - DEBUG - <oic-resource>/csdk/libcoap/linux/debug/====="
-       $(MAKE) -C csdk/libcoap "BUILD=debug" "PLATFORM=linux"
--      @echo "=====BUILD TB STACK FOR LINUX - DEBUG - <oic-resource>/csdk/linux/debug/====="
--      $(MAKE) -C csdk/ "buildScript_all" "BUILD=debug" "PLATFORM=linux"
--
--linux_tb_stack_release:
-       @echo "=====BUILD LIBCOAP FOR LINUX - RELEASE - <oic-resource>/csdk/libcoap/linux/release/====="
-       $(MAKE) -C csdk/libcoap "BUILD=release" "PLATFORM=linux"
--      @echo "=====BUILD TB STACK FOR LINUX - RELEASE - <oic-resource>/csdk/linux/release/====="
--      $(MAKE) -C csdk/ "buildScript_all" "BUILD=release" "PLATFORM=linux"
--
--###############################################################################
--####      TB Unit Tests - Linux Only                                       ####
--###############################################################################
--
--linux_tb_unittests: linux_tb_unittests_release
--
--linux_tb_unittests_all: linux_tb_unittests_release linux_tb_unittests_debug
--
--linux_tb_unittests_release: linux_tb_stack_release
--      @echo "=====BUILD TB UNITTESTS FOR LINUX - RELEASE - <oic-resource>/csdk/stack/test/linux/release/====="
--      $(MAKE) -C csdk/stack/test/linux/ "BUILD=release"
--
--linux_tb_unittests_debug: linux_tb_stack_debug
--      @echo "=====BUILD TB UNITTESTS FOR LINUX - DEBUG - <oic-resource>/csdk/stack/test/linux/debug/====="
--      $(MAKE) -C csdk/stack/test/linux/ "BUILD=debug"
--
--###############################################################################
--####      TB Examples - Linux Only                                         ####
--###############################################################################
--
--linux_tb_examples: linux_tb_stack_release linux_tb_examples_release
--
--linux_tb_examples_all: linux_tb_stack_release linux_tb_examples_debug
--
--linux_tb_examples_release: linux_tb_stack_release
--      @echo "=====BUILD TB SAMPLE APPS FOR LINUX - RELEASE - <oic-resource>/csdk/stack/samples/linux/SimpleClientServer/release/====="
--      $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "PLATFORM=linux" "BUILD=release"
--      $(MAKE) -C csdk/stack/samples/linux/secure "PLATFORM=linux" "BUILD=release"
--
--linux_tb_examples_debug: linux_tb_stack_debug
--      @echo "=====BUILD TB SAMPLE APPS FOR LINUX - DEBUG - <oic-resource>/csdk/stack/samples/linux/SimpleClientServer/debug/====="
--      $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "PLATFORM=linux" "BUILD=debug"
--      $(MAKE) -C csdk/stack/samples/linux/secure "PLATFORM=linux" "BUILD=debug"
--
--###############################################################################
--####      UB Stack (& TB Stack as prerequisite) - Linux Only               ####
--###############################################################################
--
--linux_ub_stack: linux_ub_stack_release
--
--linux_ub_stack_all: linux_ub_stack_release linux_ub_stack_debug
--
--linux_ub_stack_release: linux_tb_stack_release
--      @echo "=====BUILD UB STACK FOR LINUX - RELEASE - <oic-resource>/release/====="
--      $(MAKE) -C ./ "buildScript_all" "BUILD=release"
--
--linux_ub_stack_debug: linux_tb_stack_debug
--      @echo "=====BUILD UB STACK FOR LINUX - DEBUG - <oic-resource>/debug/====="
--      $(MAKE) -C ./ "buildScript_all" "BUILD=debug"
--
--###############################################################################
--####      UB Unit Tests (& TB Stack as prequisite) - Linux Only            ####
--###############################################################################
--
--linux_ub_unittests: linux_ub_unittests_release
--
--linux_ub_unittests_all: linux_ub_unittests_release linux_ub_unittests_debug
--
--linux_ub_unittests_release: linux_ub_stack_release
--      @echo "=====BUILD UB UNIT TESTS FOR LINUX - RELEASE - <oic-resource>/unittests/release====="
--      $(MAKE) -C unittests/ "BUILD=release"
--
--linux_ub_unittests_debug: linux_ub_stack_debug
--      @echo "=====BUILD UB UNIT TESTS FOR LINUX - DEBUG - <oic-resource>/unittests/debug====="
--      $(MAKE) -C unittests/ "BUILD=debug"
--
--###############################################################################
--####      UB Examples (& UB Stack as prerequisite) - Linux Only            ####
--###############################################################################
--
--linux_ub_examples: linux_ub_examples_release
--
--linux_ub_examples_all: linux_ub_examples_release linux_ub_examples_debug
--
--linux_ub_examples_release: linux_ub_stack_release
--      @echo "=====BUILD UB SAMPLE APPS FOR LINUX - RELEASE - <oic-resource>/examples/release/====="
--      $(MAKE) -C examples/ "buildScript_all" "BUILD=release"
--
--linux_ub_examples_debug: linux_ub_stack_debug
--      @echo "=====BUILD UB SAMPLE APPS FOR LINUX - DEBUG - <oic-resource>/examples/debug/====="
--      $(MAKE) -C examples/ "buildScript_all" "BUILD=debug"
--
--###############################################################################
--####      TB Stack, TB Unit Tests, TB Examples, UB Stack, UB Examples,     ####
--####      UB Unit Tests - Linux Only                                       ####
--###############################################################################
--
--linux_ub_dev: linux_ub_stack_all linux_ub_unittests_all linux_ub_examples_all linux_tb_examples_all
--
--###############################################################################
--#TB Stack, TB Unit Tests, & TB Examples - Arduino Mega Only - Ethernet & WiFi #
--###############################################################################
--
--arduinomega: arduinomega_release
--
--arduinomega_all: arduinomega_release arduinomega_debug
--
--arduinomega_all_dev: arduinomega_release_dev arduinomega_debug_dev
--
--arduinomega_release: arduinomega_ethernet_release
--
--arduinomega_debug: arduinomega_ethernet_debug
--
--arduinomega_release_dev: arduinomega_ethernet_release arduinomega_wifi_release
--
--arduinomega_debug_dev: arduinomega_ethernet_debug arduinomega_wifi_debug
--
--###############################################################################
--## TB Stack, TB Unit Tests, & TB Examples - Arduino Mega Only - Ethernet Only #
--###############################################################################
--
--arduinomega_ethernet: arduinomega_ethernet_release
--
--arduinomega_ethernet_all: arduinomega_ethernet_release arduinomega_ethernet_debug
--
--arduinomega_ethernet_release: arduinomega_stack_ethernet_release arduinomega_samples_ethernet_release
--
--arduinomega_ethernet_debug: arduinomega_stack_ethernet_debug arduinomega_samples_ethernet_debug
--
--###############################################################################
--## TB Stack, TB Unit Tests, & TB Examples - Arduino Mega Only - Ethernet Only #
--###############################################################################
--
--arduinomega_wifi: arduinomega_wifi_release
--
--arduinomega_wifi_all: arduinomega_wifi_release arduinomega_wifi_debug
--
--arduinomega_wifi_release: arduinomega_stack_wifi_release arduinomega_samples_wifi_release
--
--arduinomega_wifi_debug: arduinomega_stack_wifi_debug arduinomega_samples_wifi_debug
--
--###############################################################################
--####             TB Stack - Arduino Mega Only - Ethernet Only              ####
--###############################################################################
--
--arduinomega_stack_ethernet: arduinomega_stack_ethernet_release
--
--arduinomega_stack_ethernet_all: arduinomega_stack_ethernet_release arduinomega_stack_ethernet_debug
--
--arduinomega_stack_ethernet_release:
--      @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - RELEASE - ETHERNET SHIELD======"
-       @echo "=====BUILD LIBCOAP - RELEASE - <oic-resource>/csdk/libcoap/arduinomega/ethernet_shield/release/====="
-       $(MAKE) -C csdk/libcoap "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
--      @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinomega/ethernet_shield/release/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
--
--arduinomega_stack_ethernet_debug:
--      @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - DEBUG - ETHERNET SHIELD======"
-       @echo "=====BUILD LIBCOAP - DEBUG - <oic-resource>/csdk/libcoap/arduinomega/ethernet_shield/debug/====="
-       $(MAKE) -C csdk/libcoap "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
--      @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinomega/ethernet_shield/debug/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
--
--###############################################################################
--####             TB Stack - Arduino Mega Only - WiFi Only                  ####
--###############################################################################
--
--arduinomega_stack_wifi: arduinomega_stack_wifi_release
--
--arduinomega_stack_wifi_all: arduinomega_stack_wifi_release arduinomega_stack_wifi_debug
--
--arduinomega_stack_wifi_release:
--      @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - RELEASE - WiFi SHIELD======"
-       @echo "=====BUILD LIBCOAP - RELEASE - <oic-resource>/csdk/libcoap/arduinomega/wifi_shield/release/====="
-       $(MAKE) -C csdk/libcoap "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
--      @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinomega/wifi_shield/release/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
--
--arduinomega_stack_wifi_debug:
--      @echo "=====BUILD C STACK FOR ARDUINO ATMEGA 2560 - DEBUG - WiFi SHIELD======"
-       @echo "=====BUILD LIBCOAP - DEBUG - <oic-resource>/csdk/libcoap/arduinomega/wifi_shield/debug/====="
-       $(MAKE) -C csdk/libcoap "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
--      @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinomega/wifi_shield/debug/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
--
--###############################################################################
--####          TB Examples - Arduino Mega Only - Ethernet Only              ####
--###############################################################################
--
--arduinomega_samples_ethernet: arduinomega_samples_ethernet_release
--
--arduinomega_samples_ethernet_all: arduinomega_samples_ethernet_release arduinomega_samples_ethernet_debug
--
--arduinomega_samples_ethernet_release: arduinomega_stack_ethernet_release
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - RELEASE - ETHERNET SHIELD====="
--      @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/ethernet_shield/release/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
--
--arduinomega_samples_ethernet_debug: arduinomega_stack_ethernet_debug
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - DEBUG - ETHERNET SHIELD====="
--      @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/ethernet_shield/debug/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=0"
--
--###############################################################################
--####             TB Examples - Arduino Mega Only - WiFi Only               ####
--###############################################################################
--
--arduinomega_samples_wifi: arduinomega_samples_wifi_release
--
--arduinomega_samples_wifi_all: arduinomega_samples_wifi_release arduinomega_samples_wifi_debug
--
--arduinomega_samples_wifi_release: arduinomega_stack_wifi_release
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - RELEASE - WIFI SHIELD====="
--      @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/wifi_shield/release/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
--
--arduinomega_samples_wifi_debug: arduinomega_stack_wifi_debug
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO ATMEGA 2560 - DEBUG - WIFI SHIELD====="
--      @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega/wifi_shield/debug/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinomega" "ARDUINOWIFI=1"
--
--
--###############################################################################
--#TB Stack, TB Unit Tests, & TB Examples - Arduino Due Only - Ethernet & WiFi ##
--###############################################################################
--
--arduinodue: arduinodue_release
--
--arduinodue_all: arduinodue_release arduinodue_debug
--
--arduinodue_all_dev: arduinodue_release_dev arduinodue_debug_dev
--
--arduinodue_release: arduinodue_ethernet_release
--
--arduinodue_debug: arduinodue_ethernet_debug
--
--arduinodue_release_dev: arduinodue_ethernet_release arduinodue_wifi_release
--
--arduinodue_debug_dev: arduinodue_ethernet_debug arduinodue_wifi_debug
--
--###############################################################################
--## TB Stack, TB Unit Tests, & TB Examples - Arduino Due Only - Ethernet Only ##
--###############################################################################
--
--arduinodue_ethernet: arduinodue_ethernet_release
--
--arduinodue_ethernet_all: arduinodue_ethernet_release arduinodue_ethernet_debug
--
--arduinodue_ethernet_release: arduinodue_stack_ethernet_release arduinodue_samples_ethernet_release
--
--arduinodue_ethernet_debug: arduinodue_stack_ethernet_debug arduinodue_samples_ethernet_debug
--
--###############################################################################
--## TB Stack, TB Unit Tests, & TB Examples - Arduino Due Only - Ethernet Only ##
--###############################################################################
--
--arduinodue_wifi: arduinodue_wifi_release
--
--arduinodue_wifi_all: arduinodue_wifi_release arduinodue_wifi_debug
--
--arduinodue_wifi_release: arduinodue_stack_wifi_release arduinodue_samples_wifi_release
--
--arduinodue_wifi_debug: arduinodue_stack_wifi_debug arduinodue_samples_wifi_debug
--
--###############################################################################
--####             TB Stack - Arduino Due Only - Ethernet Only               ####
--###############################################################################
--
--arduinodue_stack_ethernet: arduinodue_stack_ethernet_release
--
--arduinodue_stack_ethernet_all: arduinodue_stack_ethernet_release arduinodue_stack_ethernet_debug
--
--arduinodue_stack_ethernet_release:
--      @echo "=====BUILD C STACK FOR ARDUINO DUE - RELEASE - ETHERNET SHIELD======"
-       @echo "=====BUILD LIBCOAP - RELEASE - <oic-resource>/csdk/libcoap/arduinodue/ethernet_shield/release/====="
-       $(MAKE) -C csdk/libcoap "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
--      @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinodue/ethernet_shield/release/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
--
--arduinodue_stack_ethernet_debug:
-       @echo "=====BUILD C STACK FOR ARDUINO DUE - DEBUG - ETHERNET SHIELD======"
-       @echo "=====BUILD LIBCOAP - DEBUG - <oic-resource>/csdk/libcoap/arduinodue/ethernet_shield/debug/====="
-       $(MAKE) -C csdk/libcoap "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
--      @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinodue/ethernet_shield/debug/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
--
--###############################################################################
--####             TB Stack - Arduino Due Only - WiFi Only                   ####
--###############################################################################
--
--arduinodue_stack_wifi: arduinodue_stack_wifi_release
--
--arduinodue_stack_wifi_all: arduinodue_stack_wifi_release arduinodue_stack_wifi_debug
--
--arduinodue_stack_wifi_release:
--      @echo "=====BUILD C STACK FOR ARDUINO DUE - RELEASE - WiFi SHIELD======"
-       @echo "=====BUILD LIBCOAP - RELEASE - <oic-resource>/csdk/libcoap/arduinodue/wifi_shield/release/====="
-       $(MAKE) -C csdk/libcoap "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
--      @echo "=====BUILD TB STACK - RELEASE - <oic-resource>/csdk/arduinodue/wifi_shield/release/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
--
--arduinodue_stack_wifi_debug:
--      @echo "=====BUILD C STACK FOR ARDUINO DUE - DEBUG - WiFi SHIELD======"
-       @echo "=====BUILD LIBCOAP - DEBUG - <oic-resource>/csdk/libcoap/arduinodue/wifi_shield/debug/====="
-       $(MAKE) -C csdk/libcoap "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
--      @echo "=====BUILD TB STACK - DEBUG - <oic-resource>/csdk/arduinodue/wifi_shield/debug/====="
--      $(MAKE) -C csdk "buildScript_all" "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
--
--###############################################################################
--####          TB Examples - Arduino Due Only - Ethernet Only               ####
--###############################################################################
--
--arduinodue_samples_ethernet: arduinodue_samples_ethernet_release
--
--arduinodue_samples_ethernet_all: arduinodue_samples_ethernet_release arduinodue_samples_ethernet_debug
--
--arduinodue_samples_ethernet_release: arduinodue_stack_ethernet_release
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - RELEASE - ETHERNET SHIELD====="
--      @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/ethernet_shield/release/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
--
--arduinodue_samples_ethernet_debug: arduinodue_stack_ethernet_debug
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - DEBUG - ETHERNET SHIELD====="
--      @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/ethernet_shield/debug/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=0"
--
--###############################################################################
--####             TB Examples - Arduino Due Only - WiFi Only                ####
--###############################################################################
--
--arduinodue_samples_wifi: arduinodue_samples_wifi_release
--
--arduinodue_samples_wifi_all: arduinodue_samples_wifi_release arduinodue_samples_wifi_debug
--
--arduinodue_samples_wifi_release: arduinodue_stack_wifi_release
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - RELEASE - WIFI SHIELD====="
--      @echo "=====BUILD OCSERVER - RELEASE - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/wifi_shield/release/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=release" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
--
--arduinodue_samples_wifi_debug: arduinodue_stack_wifi_debug
--      @echo "=====BUILD TB SAMPLE APPS FOR ARDUINO DUE - DEBUG - WIFI SHIELD====="
--      @echo "=====BUILD OCSERVER - DEBUG - <oic-resource>/csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue/wifi_shield/debug/====="
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "BUILD=debug" "PLATFORM=arduinodue" "ARDUINOWIFI=1"
--
--###############################################################################
--####                Clean All - Linux Only - Ethernet Only                 ####
--###############################################################################
--
--linux_clean:
-       -rm -rf -C csdk/libcoap/linux
--      -rm -rf -C csdk/linux
--      $(MAKE) -C csdk/stack/test/linux "clean"
--      $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "clean"
--      $(MAKE) -C csdk/stack/samples/linux/secure "clean"
--      $(MAKE) -C . "clean"
--
--###############################################################################
--####            Clean All - Arduino Mega Only - Ethernet & WiFi            ####
--###############################################################################
--
--arduinomega_clean:
-       -rm -rf csdk/libcoap/arduinomega
--      -rm -rf csdk/arduinomega
--      -rm -rf csdk/stack/test/arduino/arduinomega
--      -rm -rf csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinomega
--
--###############################################################################
--####            Clean All - Arduino Due Only - Ethernet & WiFi             ####
--###############################################################################
--
--arduinodue_clean:
-       -rm -rf csdk/libcoap/arduinodue
--      -rm -rf csdk/arduinodue
--      -rm -rf csdk/stack/test/arduino/arduinodue
--      -rm -rf csdk/stack/samples/arduino/SimpleClientServer/ocserver/arduinodue
--
--
--###############################################################################
--####  Clean All - Linux, Arduino Mega & Arduino Due - Ethernet & WiFi      ####
--###############################################################################
--clean:
--      $(MAKE) -C csdk "clean" "deepclean"
--      $(MAKE) -C csdk/stack/test/linux "clean"
--      $(MAKE) -C csdk/stack/samples/linux/SimpleClientServer "clean"
--      $(MAKE) -C csdk/stack/samples/linux/secure "clean"
--      $(MAKE) -C csdk/stack/samples/arduino/SimpleClientServer/ocserver "clean"
--      $(MAKE) -C . "clean"
--      $(MAKE) -C unittests/ "clean"
--      $(MAKE) -C examples/ "clean"
--      $(MAKE) -C oc_logger/ "clean"
 -
 -###############################################################################
 -### You must specify arduinomega or arduinodue when using an arduino target.###
 -###############################################################################
 -arduino:
 -      $(error "You must specify "arduinomega" or "arduinodue" when trying to\
 -      build arduino targets.")
  
- ###############################################################################
- ### You must specify arduinomega or arduinodue when using an arduino target.###
- ###############################################################################
- arduino:
-       $(error "You must specify "arduinomega" or "arduinodue" when trying to\
-       build arduino targets.")
++all_dev:
  ##
  # liboctbstack (share library) build script
  ##
 -
  Import('env')
  
- liboctbstack_env = env.Clone()
+ lib_env = env.Clone()
+ SConscript(env.get('SRC_DIR') + '/resource/third_party_libs.scons', 'lib_env')
+ liboctbstack_env = lib_env.Clone()
  
  target_os = env.get('TARGET_OS')
  # As in the source code, it includes arduino Time library (C++)
@@@ -17,8 -41,6 +40,7 @@@ if target_os == 'arduino'
  ######################################################################
  liboctbstack_env.PrependUnique(CPPPATH = [
                '../../extlibs/cjson/',
-               'ocsocket/include',
 +              '../../extlibs/timer/',
                'logger/include',
                'ocrandom/include',
                'ocmalloc/include',
@@@ -38,16 -64,18 +64,21 @@@ if target_os not in ['windows', 'winrt'
  liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
  liboctbstack_env.AppendUnique(LIBS = ['coap', 'm'])
  
 +if target_os not in ['android', 'arduino', 'windows', 'winrt']:
 +      liboctbstack_env.AppendUnique(LIBS = ['pthread'])
 +
  if target_os == 'arduino':
        liboctbstack_env.AppendUnique(CPPDEFINES = ['NDEBUG', 'WITH_ARDUINO'])
+ elif target_os not in ['darwin','ios']:
+       liboctbstack_env.AppendUnique(CFLAGS = ['-fPIC'])
+ if target_os == 'android':    
+       liboctbstack_env.AppendUnique(LIBS = ['connectivity_abstraction'])
  if target_os in ['darwin', 'ios']:
        liboctbstack_env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
+       liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+       liboctbstack_env.AppendUnique(LIBS = ['coap'])
  
- if not env.get('RELEASE'):
+ if env.get('LOGGING'):
        liboctbstack_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
  
  ######################################################################
  OCTBSTACK_SRC = 'stack/src/'
  liboctbstack_src = [
        '../../extlibs/cjson/cJSON.c',
-       'occoap/src/occoap.c',
-       'occoap/src/occoaphelper.c',
 +      '../../extlibs/timer/timer.c',
        OCTBSTACK_SRC + 'ocstack.c',
        OCTBSTACK_SRC + 'occlientcb.c',
        OCTBSTACK_SRC + 'ocresource.c',
        OCTBSTACK_SRC + 'ocobserve.c',
-     OCTBSTACK_SRC + 'ocserverrequest.c',
+       OCTBSTACK_SRC + 'ocserverrequest.c',
        OCTBSTACK_SRC + 'occollection.c',
-       OCTBSTACK_SRC + 'ocsecurity.c',
-     OCTBSTACK_SRC + 'oicgroup.c'
+       OCTBSTACK_SRC + 'oicgroup.c',
+       'security/src/ocsecurity.c',
+       'logger/src/logger.c',
+       'ocrandom/src/ocrandom.c',
+       'ocmalloc/src/ocmalloc.c'
        ]
 -if target_os in ['arduino','darwin'] :
 -      liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
 +if target_os in ['arduino','darwin','ios'] :
 +      static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
 +      liboctbstack_env.InstallTarget(static_liboctbstack, 'liboctbstack')
  else:
 -      liboctbstack = liboctbstack_env.SharedLibrary('octbstack', liboctbstack_src)
 -
 -liboctbstack_env.InstallTarget(liboctbstack, 'liboctbstack')
 +      static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
 +      shared_liboctbstack = liboctbstack_env.SharedLibrary('octbstack', liboctbstack_src)
 +      liboctbstack_env.InstallTarget([static_liboctbstack, shared_liboctbstack], 'liboctbstack')
@@@ -225,35 -296,34 +297,35 @@@ void OICLogInit(
   * @param buffer     - pointer to buffer of bytes
   * @param bufferSize - max number of byte in buffer
   */
- void OICLogBuffer(LogLevel level, PROGMEM const char * tag, const uint8_t * buffer, uint16_t bufferSize)
- {
-     if (!buffer || !tag || (bufferSize == 0))
-     {
-         return;
-     }
-     char lineBuffer[LINE_BUFFER_SIZE] =
-     {   0};
-     uint8_t lineIndex = 0;
-     for (uint8_t i = 0; i < bufferSize; i++)
-     {
+  void OICLogBuffer(LogLevel level, PROGMEM const char * tag,
+          const uint8_t * buffer, uint16_t bufferSize)
+  {
+      if (!buffer || !tag || (bufferSize == 0))
+      {
+          return;
+      }
+      char lineBuffer[LINE_BUFFER_SIZE] = {0};
+      uint8_t lineIndex = 0;
+      for (uint8_t i = 0; i < bufferSize; i++)
+      {
 -         // Format the buffer data into a line
 -         sprintf(&lineBuffer[lineIndex++ * 3], "%02X ", buffer[i]);
 +        // Format the buffer data into a line
 +        snprintf(&lineBuffer[lineIndex*3], sizeof(lineBuffer)-lineIndex*3, "%02X ", buffer[i]);
 +        lineIndex++;
-         // Output 16 values per line
-         if (((i+1)%16) == 0)
-         {
-             OICLogString(level, tag, lineBuffer);
-             memset(lineBuffer, 0, sizeof lineBuffer);
-             lineIndex = 0;
-         }
-     }
-     // Output last values in the line, if any
-     if (bufferSize % 16)
-     {
-         OICLogString(level, tag, lineBuffer);
-     }
- }
+          // Output 16 values per line
+          if (((i+1)%16) == 0)
+          {
+              OICLogString(level, tag, lineBuffer);
+              memset(lineBuffer, 0, sizeof lineBuffer);
+              lineIndex = 0;
+          }
+      }
+      // Output last values in the line, if any
+      if (bufferSize % 16)
+      {
+          OICLogString(level, tag, lineBuffer);
+      }
 }
  
  /**
   * Output a log string with the specified priority level.
@@@ -26,7 -29,8 +28,8 @@@ if target_os == 'arduino'
                ])
  
  if target_os not in ['arduino', 'windows', 'winrt']:
 -      libcoap_env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
 +      libcoap_env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '_BSD_SOURCE'])
+       libcoap_env.AppendUnique(CFLAGS = ['-std=gnu99','-fPIC'])
  
  if target_os not in ['windows', 'winrt']:
        libcoap_env.AppendUnique(CFLAGS = ['-Wall', '-ffunction-sections',
@@@ -60,26 -64,9 +63,13 @@@ libcoap_src = 
        'option.c',
        'async.c',
        'subscribe.c',
-       'block.c',
-       '../logger/src/logger.c',
-       '../ocrandom/src/ocrandom.c',
-       '../ocmalloc/src/ocmalloc.c',
-       '../../oc_logger/c/oc_logger.c',
-       '../../oc_logger/c/oc_console_logger.c'
+       'block.c'
        ]
  
- if target_os == 'arduino':
-       if env.get('NET') == 'Wifi':
-               libcoap_src.append(['../ocsocket/src/ocsocket_arduino_wifi.cpp'])
-       else:
-               libcoap_src.append(['../ocsocket/src/ocsocket_arduino.cpp'])
- else:
-       libcoap_src.append(['../ocsocket/src/ocsocket.c'])
 -libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap_')
--
 -libcoap_env.InstallTarget(libcoap, 'libcoap')
 +if target_os in ['arduino','darwin','ios']:
 +      static_libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap_')
 +      libcoap_env.InstallTarget(static_libcoap, 'libcoap')
 +else:
 +      static_libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap_')
 +      shared_libcoap = libcoap_env.SharedLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap_')
 +      libcoap_env.InstallTarget([static_libcoap, shared_libcoap], 'libcoap')
index a8c6808,31cc697..28d66a1
mode 100755,100644..100755
@@@ -80,35 -83,33 +83,34 @@@ ifeq ($(OBJ_DIR), 
  OBJ_DIR       = $(OUT_DIR)/obj
  endif
  
- OCLOGGER_DIR  = logger
- OC_LOG_DIR      = ../oc_logger
- OCRANDOM_DIR  = ocrandom
- OCSOCKET_DIR  = ocsocket
- LCOAP_DIR     = libcoap-4.1.1
- OCCOAP_DIR    = occoap
- OCTBSTACK_DIR = stack
- OCMALLOC_DIR  = ocmalloc
- EXTLIBS_DIR   = ../../extlibs
- CJSON_DIR     = $(EXTLIBS_DIR)/cjson
+ OCLOGGER_DIR          = logger
+ OC_LOG_DIR            = ../oc_logger
+ OCRANDOM_DIR          = ocrandom
+ OCTBSTACK_DIR         = stack
+ OCMALLOC_DIR          = ocmalloc
+ OCSECURITY_DIR  = security
+ EXTLIBS_DIR           = ../../extlibs
+ CJSON_DIR             = $(EXTLIBS_DIR)/cjson
 +TIMER_DIR     = $(EXTLIBS_DIR)/timer
  TINYDTLS_DIR  = $(EXTLIBS_DIR)/tinydtls
- OCCOAP_SRC    = $(OCCOAP_DIR)/src
- OCTBSTACK_SRC = $(OCTBSTACK_DIR)/src
- OCMALLOC_SRC  = $(OCMALLOC_DIR)/src
- CJSON_SRC     = $(CJSON_DIR)
- TIMER_SRC     = $(TIMER_DIR)
- OCLOGGER_INC  = $(OCLOGGER_DIR)/include
- OC_LOG_INC    = $(OC_LOG_DIR)/include
- OCRANDOM_INC  = $(OCRANDOM_DIR)/include
- OCSOCKET_INC  = $(OCSOCKET_DIR)/include
- LCOAP_INC     = $(LCOAP_DIR)
- OCCOAP_INC    = $(OCCOAP_DIR)/include
- OCTBSTACK_INC = $(OCTBSTACK_DIR)/include
- OCMALLOC_INC  = $(OCMALLOC_DIR)/include
- CJSON_INC     = $(CJSON_DIR)
- TIMER_INC     = $(TIMER_DIR)
+ CONNECTIVITY_DIR      = connectivity
+ OCTBSTACK_SRC         = $(OCTBSTACK_DIR)/src
+ OCMALLOC_SRC          = $(OCMALLOC_DIR)/src
+ OCSECURITY_SRC    = $(OCSECURITY_DIR)/src
+ CJSON_SRC             = $(CJSON_DIR)
+ CONNECTIVITY_SRC      = $(CONNECTIVITY_DIR)
+ OCLOGGER_SRC          = $(OCLOGGER_DIR)/src
+ OCRANDOM_SRC          = $(OCRANDOM_DIR)/src
+ OCLOGGER_INC          = $(OCLOGGER_DIR)/include
+ OC_LOG_INC            = $(OC_LOG_DIR)/include
+ OCRANDOM_INC          = $(OCRANDOM_DIR)/include
+ OCTBSTACK_INC         = $(OCTBSTACK_DIR)/include
+ OCMALLOC_INC          = $(OCMALLOC_DIR)/include
+ OCSECURITY_INC        = $(OCSECURITY_DIR)/include
+ CJSON_INC             = $(CJSON_DIR)
+ CONNECTIVITY_INC      = $(CONNECTIVITY_DIR)/inc
+ LIBCOAP_INC         = $(CONNECTIVITY_DIR)/lib/libcoap-4.1.1
  
  INC_DIRS      := -I$(OCLOGGER_INC)
  INC_DIRS      += -I$(OC_LOG_INC)
@@@ -120,20 -120,19 +121,20 @@@ INC_DIRS        += -I$(OCSECURITY_INC)/interna
  INC_DIRS      += -I$(OCTBSTACK_INC)
  INC_DIRS      += -I$(OCTBSTACK_INC)/internal
  INC_DIRS      += -I$(CJSON_INC)
- INC_DIRS      += -I$(TIMER_INC)
+ INC_DIRS      += -I$(CONNECTIVITY_INC)
+ INC_DIRS      += -I$(CONNECTIVITY_DIR)/api
+ INC_DIRS    += -I$(LIBCOAP_INC)
  
- CC_FLAGS.debug                := -O0 -g3 -Wall -c -fmessage-length=0 -pedantic -fpic -DTB_LOG
- CC_FLAGS.release      := -Os -Wall -c -fmessage-length=0 -fpic
+ # TODO-CA Remove -fstack-protector-all before merging to master
+ CC_FLAGS.debug                := -O0 -g3 -Wall -fstack-protector-all -c -fmessage-length=0 -pedantic -fpic -DTB_LOG
+ # TODO-CA Remove -fstack-protector-all before merging to master
+ CC_FLAGS.release      := -Os -Wall -fstack-protector-all -c -fmessage-length=0 -fpic
  
  CFLAGS                += $(CC_FLAGS.$(BUILD)) $(INC_DIRS) $(CFLAGS_PLATFORM) $(INC_DIR_PLATFORM)
- LDLIBS                += -lcoap
  
  CJSON_SOURCES         := $(CJSON_SRC)/cJSON.c
 +TIMER_SOURCES         := $(TIMER_SRC)/timer.c
  
- OCCOAP_SOURCES                := $(OCCOAP_SRC)/occoap.c
- OCCOAP_SOURCES                += $(OCCOAP_SRC)/occoaphelper.c
  OCTBSTACK_SOURCES     := $(OCTBSTACK_SRC)/ocstack.c
  OCTBSTACK_SOURCES     += $(OCTBSTACK_SRC)/occlientcb.c
  OCTBSTACK_SOURCES     += $(OCTBSTACK_SRC)/ocresource.c
@@@ -141,19 -140,17 +142,18 @@@ OCTBSTACK_SOURCES       += $(OCTBSTACK_SRC)/o
  OCTBSTACK_SOURCES     += $(OCTBSTACK_SRC)/ocserverrequest.c
  OCTBSTACK_SOURCES     += $(OCTBSTACK_SRC)/occollection.c
  OCTBSTACK_SOURCES     += $(OCTBSTACK_SRC)/oicgroup.c
- OCTBSTACK_SOURCES     += $(OCTBSTACK_SRC)/ocsecurity.c
+ OCTBSTACK_SOURCES     += $(OCSECURITY_SRC)/ocsecurity.c
+ OCTBSTACK_SOURCES     += $(OCMALLOC_SRC)/ocmalloc.c
+ OCTBSTACK_SOURCES     += $(OCLOGGER_SRC)/logger.c
+ OCTBSTACK_SOURCES     += $(OCRANDOM_SRC)/ocrandom.c
  
  SOURCES                       := $(CJSON_SOURCES)
- SOURCES                       += $(OCCOAP_SOURCES)
 +SOURCES                       += $(TIMER_SOURCES)
  SOURCES                       += $(OCTBSTACK_SOURCES)
  
- all:  make_lcoap objdirs obj_build liboctbstack.a
- buildScript_all: objdirs obj_build liboctbstack.a
+ all:  objdirs obj_build ca liboctbstack.a
  
- make_lcoap:
-       $(MAKE) -C $(LCOAP_DIR) "BUILD=$(BUILD)" "PLATFORM=$(PLATFORM)" "ARDUINOWIFI=$(ARDUINOWIFI)"
+ buildScript_all: objdirs obj_build ca liboctbstack.a
  
  objdirs:
        mkdir -p $(PLATFORM)
  #ifndef OIC_GROUP_H
  #define OIC_GROUP_H
  
- #include "ocstackinternal.h"
  #include "ocstack.h"
- #include "ocresource.h"
+ #include "ocstackinternal.h"
  
 +#ifdef __cplusplus
 +extern "C" {
 +#endif // __cplusplus
 +
  void AddCapability(OCCapability** head, OCCapability* node);
  
  void AddAction(OCAction** head, OCAction* node);
@@@ -516,20 -550,16 +551,30 @@@ OCStackResult OCStopPresence()
   */
  OCStackResult OCSetDefaultDeviceEntityHandler(OCDeviceEntityHandler entityHandler);
  
 +/**
 + * Set device information.
 + *
 + * @param deviceInfo - Structure passed by the server application containing
 + *                     the device information.
 + *
 + *
 + * @return
 + *     OC_STACK_OK              - no errors
 + *     OC_STACK_INVALID_PARAM   - invalid paramerter
 + *     OC_STACK_ERROR           - stack process error
 + */
 +OCStackResult OCSetDeviceInfo(OCDeviceInfo deviceInfo);
 +
+ /**
+  * Set device information.
+  *
+  * @param deviceInfo Structure passed by the server application containing
+  *                   the device information.
+  *
+  * @return ::OC_STACK_OK on success, some other value upon failure.
+  */
+ OCStackResult OCSetDeviceInfo(OCDeviceInfo deviceInfo);
  /**
   * Create a resource.
   *
@@@ -15,16 -34,20 +34,20 @@@ samples_env.PrependUnique(CPPPATH = 
                ])
  
  samples_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
- samples_env.AppendUnique(LIBS = ['-lpthread'])
+ samples_env.AppendUnique(RPATH = [env.get('BUILD_DIR')])
+ samples_env.AppendUnique(LIBS = ['-lpthread' ])
  samples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
- if target_os in ['darwin','ios']:
-       samples_env.PrependUnique(LIBS = ['octbstack', 'coap', 'm'])
 -if target_os in ['darwin']:
++if target_os in ['darwin', 'ios']:
+       samples_env.PrependUnique(LIBS = ['m','octbstack', 'connectivity_abstraction','coap' ])
  else:
-       samples_env.PrependUnique(LIBS = ['oc', 'octbstack', 'coap', 'oc_logger', 'm'])
+       samples_env.PrependUnique(LIBS = ['m', 'octbstack', 'oc_logger', 'connectivity_abstraction', 'coap'])
  
- samples_env.AppendUnique(CPPDEFINES = ['CA_INT', 'TB_LOG'])
+ if env.get('SECURED') == '1':
+     samples_env.AppendUnique(LIBS = ['tinydtls'])
+ samples_env.ParseConfig('pkg-config --libs glib-2.0');
+ samples_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
  
  ######################################################################
  # Source files and Targets
@@@ -922,8 -942,7 +942,8 @@@ bool DuplicateString(char** targetStrin
      else
      {
          *targetString = (char *) malloc(strlen(sourceString) + 1);
-         if(targetString)
 +
+         if(*targetString)
          {
              strncpy(*targetString, sourceString, (strlen(sourceString) + 1));
              return true;
@@@ -451,21 -533,20 +533,36 @@@ OCStackResult DefaultCollectionEntityHa
          }
      }
      else if (ehRequest->method == OC_REST_POST)
 +    {
 +
 +        switch (ifQueryParam)
 +        {
 +            case STACK_IF_GROUP:
 +            {
 +                OC_LOG_V(INFO, TAG, "IF_COLLECTION POST with request :: \n%s\n ",
 +                        ehRequest->reqJSONPayload);
 +                return BuildCollectionGroupActionJSONResponse(OC_REST_POST/*flag*/,
 +                        (OCResource *) ehRequest->resource, ehRequest);
 +            }
 +            default:
 +                return OC_STACK_ERROR;
 +        }
 +    }
++    else if (ehRequest->method == OC_REST_POST)
+     {
+         if(ifQueryParam == STACK_IF_GROUP)
+         {
+             OC_LOG_V(INFO, TAG, "IF_COLLECTION POST with request :: \n%s\n ",
+                     ehRequest->reqJSONPayload);
+             return BuildCollectionGroupActionJSONResponse(OC_REST_POST/*flag*/,
+                     (OCResource *) ehRequest->resource, ehRequest);
+         }
+         else
+         {
+             return OC_STACK_ERROR;
+         }
+     }
      return result;
  }
  
@@@ -863,4 -1021,5 +1048,3 @@@ OCStackResult SaveDeviceInfo(OCDeviceIn
  
      return OC_STACK_OK;
  }
 -
--
Simple merge
@@@ -72,8 -64,10 +72,9 @@@ void foundResource(std::shared_ptr< OCR
              if (resourceURI == "/core/a/collection")
              {
                  g_resource = resource;
 +                resource->get("", DEFAULT_INTERFACE, QueryParamsMap(), onGet);
              }
 -
 -            g_resource->get("", DEFAULT_INTERFACE, QueryParamsMap(), onGet);
+             printf("HOST :: %s\n", resource->host().c_str());
          }
      }
      catch (std::exception& e)
  using namespace OC;
  
  std::shared_ptr<OCResource> curResource;
- std::mutex curResourceLock;
+ std::mutex resourceLock;
 -
  static int TEST_CASE = 0;
  
+ static OCConnectivityType connectivityType = OC_WIFI;
  /**
   * List of methods that can be inititated from the client
   */
@@@ -55,6 -58,6 +57,11 @@@ void printUsage(
      std::cout << "-t 2 : Discover Resources and Initiate Unicast Presence with Filter"
                << std::endl;
      std::cout << "-t 3 : Discover Resources and Initiate Unicast Presence with Two Filters"
++              << std::endl;
++    std::cout << "-t 4 : Discover Resources and Initiate Multicast Presence" << std::endl;
++    std::cout << "-t 5 : Discover Resources and Initiate Multicast Presence with Filter"
++              << std::endl;
++    std::cout << "-t 6 : Discover Resources and Initiate Multicast Presence with two Filters"
              << std::endl;
      std::cout << "-t 4 : Discover Resources and Initiate Multicast Presence" << std::endl;
      std::cout << "-t 5 : Discover Resources and Initiate Multicast Presence with Filter"
@@@ -536,12 -536,11 +538,12 @@@ int main(int argc, char* argv[]
          std::mutex blocker;
          std::condition_variable cv;
          std::unique_lock<std::mutex> lock(blocker);
-         cv.wait(lock);
 +        std::cout <<"Waiting" << std::endl;
+         cv.wait(lock, []{return false;});
      }
-     catch(OCException e)
+     catch(OCException &e)
      {
-         //log(e.what());
+         std::cout << "OCException in main : " << e.what() << endl;
      }
  
      // No explicit call to stop the platform.
  #include <condition_variable>
  #include <map>
  #include <vector>
 +
  #include "OCPlatform.h"
  #include "OCApi.h"
  using namespace OC;
  
+ static OCConnectivityType connectivityType = OC_WIFI;
+ static std::ostringstream requestURI;
  struct FooResource
  {
      bool m_isFoo;
@@@ -116,52 -72,20 +72,35 @@@ namespace O
                      const std::shared_ptr<OCResourceResponse> responsePtr,
                      QualityOfService QoS);
  
-         /**
-         * API for Service and Resource Discovery.
-         * NOTE: This API applies to client side only.
-         *
-         * @param host - Host IP Address of a service to direct resource discovery query. If null or
-         *        empty, performs multicast resource discovery query
-         * @param resourceURI - name of the resource. If null or empty, performs search for all
-         *        resource names
-         * @param handler - Handles callbacks, success states and failure states.
-         *
-         *        Four modes of discovery defined as follows:
-         *        (NULL/Empty, NULL/Empty) - Performs ALL service discovery AND ALL resource
-         *                                   discovery.
-         *        (NULL/Empty, Not Empty) - Performs query for a filtered/scoped/particular
-         *                                   resource(s) from ALL services.
-         *        (Not Empty, NULL/Empty) - Performs ALL resource discovery on a particular service.
-         *        (Not Empty, Not Empty) - Performs query for a filtered/scoped/particular
-         *                                   resource(s) from a particular service.
-         * @param QualityOfService the quality of communication
-         *
-         * @return OCStackResult return value of this API. Returns OC_STACK_OK if success.
-         * NOTE: First parameter 'host' currently represents an IP address. This will change in
-         * future and will refer to endpoint interface so that we can refer to other transports such
-         * as BTH etc.
-         * NOTE: OCStackResult is defined in ocstack.h.
-         */
          OCStackResult findResource(const std::string& host, const std::string& resourceURI,
-                     FindCallback resourceHandler);
+                     OCConnectivityType connectivityType, FindCallback resourceHandler);
          OCStackResult findResource(const std::string& host, const std::string& resourceURI,
-                     FindCallback resourceHandler, QualityOfService QoS);
+                     OCConnectivityType connectivityType, FindCallback resourceHandler,
+                     QualityOfService QoS);
+         OCStackResult getDeviceInfo(const std::string& host, const std::string& deviceURI,
+                     OCConnectivityType connectivityType, FindDeviceCallback deviceInfoHandler);
+         OCStackResult getDeviceInfo(const std::string& host, const std::string& deviceURI,
+                     OCConnectivityType connectivityType, FindDeviceCallback deviceInfoHandler,
+                     QualityOfService QoS);
  
 +        /**
 +         * API for Device Discovery
 +         *
 +         * @param host - Host IP Address. If null or empty, Multicast is performed.
 +         * @param resourceURI - Uri containing address to the virtual device in C Stack
 +         *                       ("/oc/core/d")
 +         *
 +         * @param QualityOfService the quality of communication
 +         *
 +         */
 +        OCStackResult getDeviceInfo(const std::string& host, const std::string& deviceURI,
 +                    FindDeviceCallback deviceInfoHandler);
 +        OCStackResult getDeviceInfo(const std::string& host, const std::string& deviceURI,
 +                    FindDeviceCallback deviceInfoHandler, QualityOfService QoS);
 +
          /**
          * This API registers a resource with the server
          * NOTE: This API applies to server side only.
          OCStackResult registerResource(OCResourceHandle& resourceHandle,
                          const std::shared_ptr<OCResource> resource);
  
 +        /**
 +         * This API registers all the device specific information
 +         *
 +         * @param OCDeviceInfo - Structure containing all the device related information
 +         *
 +         * @return OCStackResult return value of the API. Returns OC_STACK_OK if success
 +         *
 +         * Note: OCDeviceInfo is defined in OCStack.h
 +         */
          OCStackResult registerDeviceInfo(const OCDeviceInfo deviceInfo);
  
-         /**
-         * Set default device entity handler
-         *
-         * @param entityHandler - entity handler to handle requests for
-         *                        any undefined resources or default actions.
-         *                        if NULL is passed it removes the device default entity handler.
-         *
-         * @return
-         *     OC_STACK_OK    - no errors
-         *     OC_STACK_ERROR - stack process error
-         */
          OCStackResult setDefaultDeviceEntityHandler(EntityHandler entityHandler);
  
-         /**
-         * This API unregisters a resource with the server
-         * NOTE: This API applies to server side only.
-         *
-         * @param resourceHandle - This is the resource handle which we which to unregister from the
-         *                           server
-         *
-         * @return OCStackResult return value of this API. Returns OC_STACK_OK if success.
-         * NOTE: OCStackResult is defined in ocstack.h.
-         */
          OCStackResult unregisterResource(const OCResourceHandle& resourceHandle) const;
  
-         /**
-         * Add a resource to a collection resource.
-         *
-         * @param collectionHandle - handle to the collection resource
-         * @param addedResourceHandle - handle to resource to be added to the collection resource
-         *
-         * @return OCStackResult return value of this API. Returns OC_STACK_OK if success.<br>
-         * NOTE: OCStackResult is defined in ocstack.h. <br>
-         * NOTE: bindResource must be used only after the both collection resource and
-         * resource to add under a collections are created and respective handles obtained<br>
-         * <b>Example:</b> <br>
-         * Step 1: registerResource(homeResourceHandle, "a/home", "home", Link_Interface,
-         *               entityHandler, OC_DISCOVERABLE | OC_OBSERVABLE);<br>
-         * Step 2: registerResource(kitchenResourceHandle, "a/kitchen", "kitchen", Link_Interface,
-         *               entityHandler, OC_DISCOVERABLE | OC_OBSERVABLE);<br>
-         * Step 3: bindResource(homeResourceHandle, kitchenResourceHandle);<br>
-         * At the end of Step 3, resource "a/home" will contain a reference to "a/kitchen".<br>
-         */
          OCStackResult bindResource(const OCResourceHandle collectionHandle,
                      const OCResourceHandle resourceHandle);
  
  #include <AttributeValue.h>
  #include <StringConstants.h>
  
 -#include <OCException.h>
 +#ifdef __ANDROID__
 +#include "OCAndroid.h"
 +#endif
  
 +#include <OCException.h>
+ #ifdef __ANDROID__
+ #include "android_cpp11_compat.h"
+ #endif
  
  namespace cereal
  {
Simple merge
Simple merge
@@@ -33,18 -33,19 +33,24 @@@ namespace O
          {}
  
          virtual OCStackResult ListenForResource(const std::string& serviceUrl,
-             const std::string& resourceType, FindCallback& callback, QualityOfService QoS)
+             const std::string& resourceType, OCConnectivityType connectivityType,
+             FindCallback& callback, QualityOfService QoS)
+             {return OC_STACK_NOTIMPL;}
+         virtual OCStackResult ListenForDevice(const std::string& serviceUrl,
+             const std::string& deviceURI, OCConnectivityType connectivityType,
+             FindDeviceCallback& callback, QualityOfService QoS)
              {return OC_STACK_NOTIMPL;}
  
 +        virtual OCStackResult ListenForDevice(const std::string& serviceUrl,
 +            const std::string& deviceURI, FindDeviceCallback& callback,
 +            QualityOfService QoS)
 +            {return OC_STACK_NOTIMPL;}
 +
          virtual OCStackResult GetResourceRepresentation(const std::string& host,
-             const std::string& uri, const QueryParamsMap& queryParams,
-             const HeaderOptions& headerOptions, GetCallback& callback,
-             QualityOfService QoS)
+             const std::string& uri, OCConnectivityType connectivityType,
+             const QueryParamsMap& queryParams, const HeaderOptions& headerOptions,
+             GetCallback& callback, QualityOfService QoS)
              {return OC_STACK_NOTIMPL;}
  
          virtual OCStackResult PutResourceRepresentation(const std::string& host,
@@@ -112,11 -112,11 +112,14 @@@ InProcServerWrapper.o: src/InProcServer
        $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcServerWrapper.cpp $(CXX_INC)
  
  InProcClientWrapper.o: src/InProcClientWrapper.cpp
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcClientWrapper.cpp $(CXX_INC)
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcClientWrapper.cpp $(CXX_INC) -I$(CEREAL_DIR)/include
+ OCResourceRequest.o: src/OCResourceRequest.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCResourceRequest.cpp $(CXX_INC) -I$(CEREAL_DIR)/include
  
 +OCResourceRequest.o: src/OCResourceRequest.cpp
 +      $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCResourceRequest.cpp $(CXX_INC)
 +
  clean: clean_legacy
        -rm -rf release
        -rm -rf debug
@@@ -20,7 -40,7 +20,7 @@@ plugin_manager_env.AppendUnique(CPPPAT
                ])
  
  if target_os not in ['windows', 'winrt']:
-       plugin_manager_env.AppendUnique(CXXFLAGS = ['-Wall',
 -      plugin_manager_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall',
++      plugin_manager_env.AppendUnique(CXXFLAGS = ['-Wall','-std=c++0x',
                '-fpermissive', '-Wsign-compare'])
  
  if target_os == 'android':
@@@ -17,19 -36,19 +36,21 @@@ target_os = env.get('TARGET_OS'
  plugins_env.AppendUnique(CPPPATH = ['../lib/cpluff/libcpluff'])
  
  if target_os not in ['windows', 'winrt']:
-     plugins_env.AppendUnique(CXXFLAGS = ['-g3', '-Wall', '-pthread'])
-     plugins_env.PrependUnique(CCFLAGS = ['-fPIC'])
-     plugins_env.AppendUnique(LINKFLAGS = ['-fPIC'])
+       plugins_env.AppendUnique(CXXFLAGS = ['-g3', '-Wall', '-pthread', '-std=c++0x'])
+       plugins_env.PrependUnique(CCFLAGS = ['-fPIC'])
+       plugins_env.AppendUnique(LINKFLAGS = ['-fPIC'])
  
-     if target_os not in ['arduino', 'android']:
-         plugins_env.AppendUnique(LIBS = ['pthread'])
++#plugins_env.AppendUnique(LIBS=['libconnectivity-abstraction'])
++
+       if target_os not in ['arduino', 'android']:
+               plugins_env.AppendUnique(LIBS = ['pthread'])
  
  if target_os == 'android':
-     plugins_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
-     plugins_env.AppendUnique(LIBS = ['gnustl_shared'])
+       plugins_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
 -      plugins_env.AppendUnique(LIBS = ['gnustl_static'])
++      plugins_env.AppendUnique(LIBS = ['gnustl_static'] )
  
  plugins_env.AppendUnique(LIBS = [File(env.get('BUILD_DIR') + '/libmosquitto.a'),
-         'mosquitto', 'ssl', 'rt'])
+               'mosquitto', 'ssl', 'rt'])
  
  
  ######################################################################
@@@ -32,8 -45,8 +45,9 @@@ POSSIBILITY OF SUCH DAMAGE
  #include <signal.h>
  #include <stdio.h>
  #include <string.h>
+ #include <strings.h>
  #ifndef WIN32
 +#include <strings.h>  /* for strcasecmp() */
  #include <sys/select.h>
  #include <sys/time.h>
  #include <unistd.h>
@@@ -16,13 -36,24 +36,24 @@@ target_os = env.get('TARGET_OS'
  sample_env.AppendUnique(CPPPATH = [
                                '../../plugin-manager/src/',
                                '../../lib/cpluff/libcpluff/',
-                               env.get('SRC_DIR') + '/extlibs/rapidxml'
-                         ])
 -                              '../../lib/rapidxml'])
++                              env.get('SRC_DIR') + '/extlibs/rapidxml/'])
  if target_os not in ['windows', 'winrt']:
-       sample_env.AppendUnique(CXXFLAGS = ['-Wall', '-pthread'])
+       sample_env.AppendUnique(CXXFLAGS = ['-Wall', '-pthread', '-std=c++0x'])
+ sample_env.AppendUnique(LIBS = ['pthread'])
+ sample_env.AppendUnique(LIBS = ['oc', 'oc_logger', 'octbstack',
+                                                               'connectivity_abstraction', 'coap',
+                                                               'ppm', 'pmimpl', 'dl'])
+ if env.get('SECURED') == '1':
+     sample_env.AppendUnique(LIBS = ['tinydtls'])
  
- sample_env.AppendUnique(LIBS = ['oc', 'oc_logger', 'octbstack', 'coap', 'ppm',
-       'pmimpl', 'boost_system', 'boost_thread', 'dl', 'pthread', 'expat'])
+ sample_env.ParseConfig('pkg-config --libs glib-2.0')
+ # On some platforms link order can miss functions so librt needs to be
+ # re-scanned at the end if present. gcc 4.6 is one with this issue.
+ if 'rt' in sample_env.get('LIBS'):
+     sample_env.Append(LIBS = ['rt'])
  
  ######################################################################
  # Source files and Targets
index 0000000,07ccdcd..8078783
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,40 +1,41 @@@
+ CXX = g++
+ CXX_FLAGS = -std=c++0x -Wall -pthread
+ TOP_DIR = ../../../../..
+ LIB_DIR = ../../../../../resource
+ DEPEND_DIR:= $(LIB_DIR)/dependencies
+ CXX_INC := -I$(LIB_DIR)/include/
+ CXX_INC += -I$(LIB_DIR)/oc_logger/include/
+ CXX_INC += -I$(LIB_DIR)/csdk/stack/include/
+ CXX_INC += -I$(LIB_DIR)/csdk/ocrandom/include/
+ CXX_INC += -I$(LIB_DIR)/csdk/logger/include/
++CXX_INC += -I$(TOP_DIR)/extlibs/rapidxml/
+ CXX_INC += -I$(BOOST_DIR)
+ CXX_INC += -I../../lib
+ CXX_INC += -I../../../lib/cpluff/libcpluff
+ CXX_INC += -I../../../plugin-manager/src
+ CXX_INC += -I../../../lib/rapidxml
+ LIB_OC_LOGGER := $(LIB_DIR)/oc_logger/lib/oc_logger.a
+ CXX_LIBS  := ../../../build/linux/release/libppm.a ../../../lib/cpluff/libcpluff/.libs/libcpluff.a
+ LINK_LIB = -lboost_system -ldl -lexpat -lboost_thread -L$(TOP_DIR)/out/linux/x86/release -loc -loctbstack -loc_logger -lcoap
+ .PHONY: mqttclient
+ all: .PHONY
+ mqttclient: mqttclient.o
+       $(CXX) $(CXX_FLAGS) -o mqttclient mqttclient.o $(CXX_LIBS) $(LINK_LIB)
+ mqttclient.o: mqttclient.cpp
+       $(CXX) $(CXX_FLAGS) -c mqttclient.cpp $(CXX_INC)
+ clean:
+       rm -f *.o
+       rm -f *.so
+       rm -f mqttclient
@@@ -20,9 -40,9 +40,10 @@@ if target_os == 'arduino'
  # Build flags
  ######################################################################
  if target_os not in ['windows', 'winrt']:
-       soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-Wall', '-DLINUX', '-DNDEBUG'])
 -      soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-DLINUX'])
++      soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-Wall', '-DLINUX','-std=c++0x'])
        if target_os != 'android':
 +              soft_sensor_manager_env.AppendUnique(LIBS = ['pthread'])
+               soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-pthread'])
  
  if target_os == 'android':
        soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
@@@ -127,15 -127,7 +151,18 @@@ static_libssmcore = ssmcore_env.StaticL
                source = [ssm_core_cpp_src, ssm_core_c_src]
                )
  
 -ssmcore_env.InstallTarget(libssmcore, 'libSSMCORE')
 +ssmcore_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
- ssmcore_env.AppendUnique(LIBS = ['oc', 'octbstack', 'coap', 'oc_logger'])
++ssmcore_env.AppendUnique(LIBS = ['oc', 'octbstack', 'coap', 'oc_logger',
++            'connectivity_abstraction', 'coap'])
++
++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]
 +              )
 +
 +ssmcore_env.InstallTarget([shared_libssmcore, static_libssmcore], 'libSSMCORE')
  
  #######################################################################
  ## build SampleApp
@@@ -149,7 -141,8 +176,7 @@@ SConscript('SampleApp/SConscript'
  if target_os == 'linux':
        Command("SSMTesterApp","SampleApp/linux/SSMTesterApp/SSMTesterApp", Copy("$TARGET", "$SOURCE"))
        Command("SoftSensorDescription.xml", "SoftSensorPlugin/SoftSensorDescription.xml", Copy("$TARGET", "$SOURCE"))
--      Command("THSensorApp","SampleApp/linux/THSensorApp/THSensorApp", Copy("$TARGET", "$SOURCE"))
--      Command("THSensorApp1","SampleApp/linux/THSensorApp1/THSensorApp1", Copy("$TARGET", "$SOURCE"))
-       Command("HeightSensorApp","SampleApp/linux/HeightSensorApp/HeightSensorApp", Copy("$TARGET", "$SOURCE"))
-       Command("WeightSensorApp","SampleApp/linux/WeightSensorApp/WeightSensorApp", Copy("$TARGET", "$SOURCE"))
 -
 -
++      #Command("THSensorApp","SampleApp/linux/THSensorApp/THSensorApp", Copy("$TARGET", "$SOURCE"))
++      #Command("THSensorApp1","SampleApp/linux/THSensorApp1/THSensorApp1", Copy("$TARGET", "$SOURCE"))
++      #Command("HeightSensorApp","SampleApp/linux/HeightSensorApp/HeightSensorApp", Copy("$TARGET", "$SOURCE"))
++      #Command("WeightSensorApp","SampleApp/linux/WeightSensorApp/WeightSensorApp", Copy("$TARGET", "$SOURCE"))
@@@ -71,6 -71,8 +71,7 @@@ void CResourceFinder::presenceHandler(O
      SSMRESULT res = SSM_E_FAIL;
      OCStackResult ret = OC_STACK_ERROR;
      intptr_t *pMessage = NULL;
 -
+     std::ostringstream requestURI;
  
      switch (result)
      {
@@@ -20,10 -20,5 +20,10 @@@ target_os = env.get('TARGET_OS'
  if target_os == 'linux' :
        # Build linux sample app
        SConscript('linux/SSMTesterApp/SConscript')
--      SConscript('linux/THSensorApp/SConscript')
--      SConscript('linux/THSensorApp1/SConscript')
-       SConscript('linux/HeightSensorApp/SConscript')
-       SConscript('linux/WeightSensorApp/SConscript')
++      #SConscript('linux/THSensorApp/SConscript')
++      #SConscript('linux/THSensorApp1/SConscript')
++      #SConscript('linux/HeightSensorApp/SConscript')
++      #SConscript('linux/WeightSensorApp/SConscript')
 +
 +
 +
index 72a3e36,0000000..6ff1a0e
mode 100755,000000..100755
--- /dev/null
@@@ -1,30 -1,0 +1,32 @@@
 +##
 +# linux sample app  build script
 +##
 +
 +Import('env')
 +
 +# Add third party libraries
 +lib_env = env.Clone()
 +SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', 'lib_env')
 +linux_sample_env = lib_env.Clone()
 +
 +######################################################################
 +# Build flags
 +######################################################################
 +linux_sample_env.AppendUnique(CPPPATH = ['include'])
 +linux_sample_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
 +linux_sample_env.AppendUnique(CPPDEFINES = ['LINUX'])
 +linux_sample_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 +linux_sample_env.AppendUnique(LIBS = ['oc'])
 +linux_sample_env.AppendUnique(LIBS = ['octbstack'])
 +linux_sample_env.AppendUnique(LIBS = ['libcoap'])
 +linux_sample_env.AppendUnique(LIBS = ['liboc_logger'])
++linux_sample_env.AppendUnique(LIBS = ['libconnectivity_abstraction'])
++linux_sample_env.AppendUnique(LIBS = ['libcoap'])
 +linux_sample_env.AppendUnique(LIBS = ['pthread'])
 +
 +######################################################################
 +#build sampleapp
 +######################################################################
 +heightsensorapp = linux_sample_env.Program('HeightSensorApp', 'src/HeightSensorApp.cpp')
 +Alias("heightsensorapp_sample", heightsensorapp)
 +env.AppendTarget('heightsensorapp')
@@@ -13,14 -33,24 +13,15 @@@ linux_sample_env = lib_env.Clone(
  # Build flags
  ######################################################################
  linux_sample_env.AppendUnique(CPPPATH = ['include'])
- linux_sample_env.AppendUnique(CXXFLAGS = ['-Wall', '-pthread'])
 -linux_sample_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
++linux_sample_env.AppendUnique(CXXFLAGS = ['-Wall', '-pthread','-std=c++0x'])
  linux_sample_env.AppendUnique(CPPDEFINES = ['LINUX'])
  linux_sample_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
  linux_sample_env.AppendUnique(LIBS = ['oc'])
  linux_sample_env.AppendUnique(LIBS = ['octbstack'])
  linux_sample_env.AppendUnique(LIBS = ['libcoap'])
  linux_sample_env.AppendUnique(LIBS = ['liboc_logger'])
++linux_sample_env.AppendUnique(LIBS = ['libconnectivity_abstraction'])
  linux_sample_env.AppendUnique(LIBS = ['pthread'])
 -linux_sample_env.AppendUnique(LIBS = ['connectivity_abstraction'])
 -linux_sample_env.AppendUnique(LIBS = ['coap'])
 -if env.get('SECURED') == '1':
 -    linux_sample_env.AppendUnique(LIBS = ['tinydtls'])
 -linux_sample_env.ParseConfig('pkg-config --libs glib-2.0')
 -
 -# On some platforms link order can miss functions so librt needs to be
 -# re-scanned at the end if present. gcc 4.6 is one with this issue.
 -if 'rt' in linux_sample_env.get('LIBS'):
 -    linux_sample_env.Append(LIBS = ['rt'])
  
  ######################################################################
  #build sampleapp
@@@ -13,14 -33,25 +13,15 @@@ linux_sample_env = lib_env.Clone(
  # Build flags
  ######################################################################
  linux_sample_env.AppendUnique(CPPPATH = ['include'])
- linux_sample_env.AppendUnique(CXXFLAGS = ['-Wall', '-pthread'])
 -linux_sample_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
++linux_sample_env.AppendUnique(CXXFLAGS = ['-Wall', '-pthread','-std=c++0x'])
  linux_sample_env.AppendUnique(CPPDEFINES = ['LINUX'])
  linux_sample_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
  linux_sample_env.AppendUnique(LIBS = ['oc'])
  linux_sample_env.AppendUnique(LIBS = ['octbstack'])
  linux_sample_env.AppendUnique(LIBS = ['libcoap'])
  linux_sample_env.AppendUnique(LIBS = ['liboc_logger'])
++linux_sample_env.AppendUnique(LIBS = ['libconnectivity_abstraction'])
  linux_sample_env.AppendUnique(LIBS = ['pthread'])
 -linux_sample_env.AppendUnique(LIBS = ['connectivity_abstraction'])
 -linux_sample_env.AppendUnique(LIBS = ['coap'])
 -if lib_env.get('SECURED') == '1':
 -    linux_sample_env.AppendUnique(LIBS = ['tinydtls'])
 -linux_sample_env.ParseConfig('pkg-config --libs glib-2.0')
 -
 -# On some platforms link order can miss functions so librt needs to be
 -# re-scanned at the end if present. gcc 4.6 is one with this issue.
 -if 'rt' in linux_sample_env.get('LIBS'):
 -    linux_sample_env.Append(LIBS = ['rt'])
 -
  
  ######################################################################
  #build sampleapp
index 236ae92,0000000..6bb78e6
mode 100755,000000..100755
--- /dev/null
@@@ -1,30 -1,0 +1,31 @@@
 +##
 +# linux sample app  build script
 +##
 +
 +Import('env')
 +
 +# Add third party libraries
 +lib_env = env.Clone()
 +SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', 'lib_env')
 +linux_sample_env = lib_env.Clone()
 +
 +######################################################################
 +# Build flags
 +######################################################################
 +linux_sample_env.AppendUnique(CPPPATH = ['include'])
 +linux_sample_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
 +linux_sample_env.AppendUnique(CPPDEFINES = ['LINUX'])
 +linux_sample_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 +linux_sample_env.AppendUnique(LIBS = ['oc'])
 +linux_sample_env.AppendUnique(LIBS = ['octbstack'])
 +linux_sample_env.AppendUnique(LIBS = ['libcoap'])
 +linux_sample_env.AppendUnique(LIBS = ['liboc_logger'])
++linux_sample_env.AppendUnique(LIBS = ['libconnectivity_abstraction'])
 +linux_sample_env.AppendUnique(LIBS = ['pthread'])
 +
 +######################################################################
 +#build sampleapp
 +######################################################################
 +weightsensorapp = linux_sample_env.Program('WeightSensorApp', 'src/WeightSensorApp.cpp')
 +Alias("weightsensorapp_sample", weightsensorapp)
 +env.AppendTarget('weightsensorapp')
index cac221a,f3239ea..15e20bc
mode 100644,100755..100755
@@@ -26,7 -46,14 +46,14 @@@ if target_os == 'android'
  ######################################################################
  # Source files and Targets
  ######################################################################
tgm_src = env.Glob('sdk/src/*.cpp', '../../extlibs/timer/timer.c')
# tgm_src = env.Glob(['sdk/src/*.cpp', '../../extlibs/timer/timer.c'])
 -tgm_src = ['../../extlibs/timer/timer.c', 
++tgm_src = [
+                       'sdk/src/GroupManager.cpp',
+                       'sdk/src/ActionSet.cpp',
+                       'sdk/src/GroupSynchronization.cpp',
+                       'sdk/src/ThingsConfiguration.cpp',
+                       'sdk/src/ThingsDiagnostics.cpp',
+                       'sdk/src/ThingsManager.cpp']
  tgmsdk = things_manager_env.StaticLibrary('TGMSDKLibrary', tgm_src)
  
  things_manager_env.InstallTarget(tgmsdk, 'libTGMSDK')