2 # liboctbstack (share library) build script
8 SConscript(env.get('SRC_DIR') + '/resource/third_party_libs.scons', 'lib_env')
10 liboctbstack_env = lib_env.Clone()
12 target_os = env.get('TARGET_OS')
13 # As in the source code, it includes arduino Time library (C++)
14 # It requires compile the .c with g++
15 if target_os == 'arduino':
16 liboctbstack_env.Replace(CC = env.get('CXX'))
17 liboctbstack_env.Replace(CFLAGS = env.get('CXXFLAGS'))
19 ######################################################################
21 ######################################################################
22 liboctbstack_env.PrependUnique(CPPPATH = [
23 '../../extlibs/cjson/',
28 'stack/include/internal',
29 '../oc_logger/include',
30 'connectivity/lib/libcoap-4.1.1',
34 'security/include/internal',
37 if target_os not in ['arduino', 'windows', 'winrt']:
38 liboctbstack_env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
39 liboctbstack_env.AppendUnique(CFLAGS = ['-std=c99'])
41 if target_os not in ['windows', 'winrt']:
42 liboctbstack_env.AppendUnique(CFLAGS = ['-Wall'])
44 liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
45 liboctbstack_env.AppendUnique(LIBS = ['coap', 'm'])
47 liboctbstack_env.AppendUnique(CPPDEFINES = ['CA_SEC_MERGE_WORKAROUND'])
49 if target_os == 'arduino':
50 liboctbstack_env.AppendUnique(CPPDEFINES = ['NDEBUG', 'WITH_ARDUINO'])
52 liboctbstack_env.AppendUnique(CFLAGS = ['-fPIC'])
54 if target_os in ['darwin', 'ios']:
55 liboctbstack_env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
56 liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
57 liboctbstack_env.AppendUnique(LIBS = ['coap'])
59 if not env.get('RELEASE'):
60 liboctbstack_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
62 ######################################################################
63 # Source files and Targets
64 ######################################################################
65 OCTBSTACK_SRC = 'stack/src/'
67 '../../extlibs/cjson/cJSON.c',
68 OCTBSTACK_SRC + 'ocstack.c',
69 OCTBSTACK_SRC + 'occlientcb.c',
70 OCTBSTACK_SRC + 'ocresource.c',
71 OCTBSTACK_SRC + 'ocobserve.c',
72 OCTBSTACK_SRC + 'ocserverrequest.c',
73 OCTBSTACK_SRC + 'occollection.c',
74 OCTBSTACK_SRC + 'oicgroup.c',
75 'security/src/ocsecurity.c',
76 'logger/src/logger.c',
77 'ocrandom/src/ocrandom.c',
78 'ocmalloc/src/ocmalloc.c'
80 if target_os == 'arduino':
81 liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
83 liboctbstack = liboctbstack_env.SharedLibrary('octbstack', liboctbstack_src)
85 liboctbstack_env.InstallTarget(liboctbstack, 'liboctbstack')