##
-# 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'))
'../../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'])
######################################################################
'encode.c',
'uri.c',
'coap_list.c',
- 'resource.c',
+# 'resource.c',
'hashkey.c',
'str.c',
'option.c',
'../../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')