Files
libcoap/examples/zephyr/Makefile
T
Jon Shallow ea01661faf Zephyr: Support C++ builds
Some of the Zephyr include files need to be C++, not C based. The 'extern "C"'
wrapper in include/coap3/coap.h means that all #include are treated as being C.

Remove 'extern "C"' wrapper from include/coap3/coap.h and add wrapper to
include files after #include and before any function / structure definitions.

Add in a C++ build test for CI.
2025-08-21 12:17:41 +01:00

54 lines
1.9 KiB
Makefile

ZEPHYR_PROJECT?=zephyrproject
all: $(ZEPHYR_PROJECT) coap-client coap-cpp-test
${ZEPHYR_PROJECT}:
python3 -m venv ${ZEPHYR_PROJECT}/.venv ;\
ls -l ${ZEPHYR_PROJECT}/.venv/bin/activate ;\
. ${ZEPHYR_PROJECT}/.venv/bin/activate ;\
pip install west ;\
west init ${ZEPHYR_PROJECT} ;\
cd ${ZEPHYR_PROJECT} ;\
west update -n ;\
west zephyr-export ;\
west packages pip --install ;\
cd zephyr ;\
if [ "${GITHUB_WORKSPACE}"a = "a" ] ; then \
west sdk install --install-base=$(ZEPHYR_PROJECT)/../ ;\
else \
west sdk install --install-base=$(ZEPHYR_PROJECT)/../ -t x86_64-zephyr-elf ;\
fi ;\
cd ../../ ;\
deactivate
coap-client: client-src/src/main.c client-src/* ../../src/*.c ../../include/*/*
@LIBCOAP_DIR=`pwd`/../.. ;\
(if [ -f $(ZEPHYR_PROJECT)/.venv/bin/activate ]; then \
. $(ZEPHYR_PROJECT)/.venv/bin/activate ;\
fi ;\
cp $${LIBCOAP_DIR}/zephyr/config-mbedtls-libcoap.h $(ZEPHYR_PROJECT)/zephyr/include/ ;\
cd $(ZEPHYR_PROJECT)/zephyr ;\
west build -p always -b native_sim \
$${LIBCOAP_DIR}/examples/zephyr/client-src -- \
-DCONF_FILE=prj.conf \
-DEXTRA_ZEPHYR_MODULES=$${LIBCOAP_DIR} \
-DEXTRA_CONF_FILE=$${LIBCOAP_DIR}/zephyr/libcoap-mbedtls.conf)
@cp -f $(ZEPHYR_PROJECT)/zephyr/build/zephyr/zephyr.exe coap-client
@rm -rf $(ZEPHYR_PROJECT)/zephyr/build
coap-cpp-test: test-cpp-src/src/test.cpp test-cpp-src/* ../../src/*.c ../../include/*/*
@LIBCOAP_DIR=`pwd`/../.. ;\
(if [ -f $(ZEPHYR_PROJECT)/.venv/bin/activate ]; then \
. $(ZEPHYR_PROJECT)/.venv/bin/activate ;\
fi ;\
cd $(ZEPHYR_PROJECT)/zephyr ;\
west build -p always -b native_sim \
$${LIBCOAP_DIR}/examples/zephyr/test-cpp-src -- \
-DCONF_FILE=prj.conf \
-DEXTRA_ZEPHYR_MODULES=$${LIBCOAP_DIR})
@cp -f $(ZEPHYR_PROJECT)/zephyr/build/zephyr/zephyr.exe coap-cpp-test
@rm -rf $(ZEPHYR_PROJECT)/zephyr/build
clean:
@rm -rf $(ZEPHYR_PROJECT)/zephyr/build
@rm -f coap-client coap-cpp-test