scons changes for connectivity-abstraction branch
[platform/upstream/iotivity.git] / resource / csdk / libcoap-4.1.1 / SConscript
index 3f3efe3..778e191 100644 (file)
@@ -1,14 +1,15 @@
 ##
-# libcoap (static library) build script
+# libcoap (share library) build script
 ##
 
-Import('env', 'BUILD_TARGET', 'TARGET_CPU_ARCH', 'RELEASE_BUILD', 'BUILD_DIR', 'ARDUINO_HOME')
+Import('env')
 
 libcoap_env = env.Clone()
 
-# As in the source code, it includes arduino Time library (C++)
+target_os = env.get('TARGET_OS')
+# As in the source code(C) includes arduino Time library head file(C++)
 # It requires compile the .c with g++
-if BUILD_TARGET == 'arduino':
+if target_os == 'arduino':
        libcoap_env.Replace(CC = env.get('CXX'))
        libcoap_env.Replace(CFLAGS = env.get('CXXFLAGS'))
 
@@ -24,15 +25,24 @@ libcoap_env.PrependUnique(CPPPATH = [
                '../../oc_logger/include'
                ])
 
-if BUILD_TARGET not in ['arduino', 'windows', 'winrt']:
+if target_os not in ['arduino', 'windows', 'winrt']:
        libcoap_env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
-       libcoap_env.AppendUnique(CFLAGS = ['-std=gnu99'])
+       libcoap_env.AppendUnique(CFLAGS = ['-std=gnu99', '-fPIC'])
 
-if BUILD_TARGET not in ['windows', 'winrt']:
+if target_os not in ['windows', 'winrt']:
        libcoap_env.AppendUnique(CFLAGS = ['-Wall', '-ffunction-sections',
                        '-fdata-sections', '-fno-exceptions'])
 
-if not RELEASE_BUILD:
+if target_os == 'android':
+       libcoap_env.AppendUnique(LIBS = ['log'])
+
+if target_os == 'arduino':
+       libcoap_env.AppendUnique(CPPDEFINES = ['NDEBUG', 'WITH_ARDUINO'])
+
+if target_os in ['darwin', 'ios']:
+       libcoap_env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
+
+if not env.get('RELEASE'):
        libcoap_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
 
 ######################################################################
@@ -45,7 +55,7 @@ libcoap_src = [
        'encode.c',
        'uri.c',
        'coap_list.c',
-       'resource.c',
+#      'resource.c',
        'hashkey.c',
     'str.c',
        'option.c',
@@ -59,22 +69,17 @@ libcoap_src = [
        '../../oc_logger/c/oc_console_logger.c'
        ]
 
-if BUILD_TARGET == 'arduino':
+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'])
-
-       if RELEASE_BUILD:
-               prefix = TARGET_CPU_ARCH + '-'
-       else:
-               prefix = TARGET_CPU_ARCH + 'd-'
-       time_obj = libcoap_env.Object(ARDUINO_HOME + '/libraries/Time/Time.cpp', OBJPREFIX=prefix)
-       libcoap_src.append(time_obj)
 else:
        libcoap_src.append(['../ocsocket/src/ocsocket.c'])
 
-libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap')
-i_lc = libcoap_env.Install(BUILD_DIR, libcoap)
-Alias('libcoap', i_lc)
-env.AppendUnique(TS = ['libcoap'])
\ No newline at end of file
+if target_os == 'arduino':
+       libcoap = libcoap_env.StaticLibrary('libcoap_csdk', libcoap_src, OBJPREFIX='libcoap_')
+else:
+       libcoap = libcoap_env.SharedLibrary('libcoap_csdk', libcoap_src, OBJPREFIX='libcoap_')
+
+libcoap_env.InstallTarget(libcoap, 'libcoap_csdk')