2 # libcoap (static library) build script
5 Import('env', 'BUILD_TARGET', 'TARGET_CPU_ARCH', 'RELEASE_BUILD', 'BUILD_DIR', 'ARDUINO_HOME')
7 libcoap_env = env.Clone()
9 # As in the source code, it includes arduino Time library (C++)
10 # It requires compile the .c with g++
11 if BUILD_TARGET == 'arduino':
12 libcoap_env.Replace(CC = env.get('CXX'))
13 libcoap_env.Replace(CFLAGS = env.get('CXXFLAGS'))
15 ######################################################################
17 ######################################################################
18 libcoap_env.PrependUnique(CPPPATH = [
19 '../ocsocket/include',
20 '../ocmalloc/include',
22 '../ocrandom/include',
24 '../../oc_logger/include'
27 if BUILD_TARGET not in ['arduino', 'windows', 'winrt']:
28 libcoap_env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
29 libcoap_env.AppendUnique(CFLAGS = ['-std=gnu99'])
31 if BUILD_TARGET not in ['windows', 'winrt']:
32 libcoap_env.AppendUnique(CFLAGS = ['-Wall', '-ffunction-sections',
33 '-fdata-sections', '-fno-exceptions'])
36 libcoap_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
38 ######################################################################
39 # Source files and Target(s)
40 ######################################################################
55 '../logger/src/logger.c',
56 '../ocrandom/src/ocrandom.c',
57 '../ocmalloc/src/ocmalloc.c',
58 '../../oc_logger/c/oc_logger.c',
59 '../../oc_logger/c/oc_console_logger.c'
62 if BUILD_TARGET == 'arduino':
63 if env.get('NET') == 'Wifi':
64 libcoap_src.append(['../ocsocket/src/ocsocket_arduino_wifi.cpp'])
66 libcoap_src.append(['../ocsocket/src/ocsocket_arduino.cpp'])
69 prefix = TARGET_CPU_ARCH + '-'
71 prefix = TARGET_CPU_ARCH + 'd-'
72 time_obj = libcoap_env.Object(ARDUINO_HOME + '/libraries/Time/Time.cpp', OBJPREFIX=prefix)
73 libcoap_src.append(time_obj)
75 libcoap_src.append(['../ocsocket/src/ocsocket.c'])
77 libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap')
78 i_lc = libcoap_env.Install(BUILD_DIR, libcoap)
79 Alias('libcoap', i_lc)
80 env.AppendUnique(TS = ['libcoap'])