1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/pkg/openthread/Makefile
2023-07-18 12:24:10 +02:00

83 lines
2.5 KiB
Makefile

PKG_NAME=openthread
PKG_URL=https://github.com/openthread/openthread.git
# thread-reference-20200818
PKG_VERSION=54b31928cf65803a9cd83c9f97061b64e465aaf7
PKG_LICENSE=BSD-3-Clause
include $(RIOTBASE)/pkg/pkg.mk
ifneq (,$(filter openthread-ftd,$(USEMODULE)))
TD = ftd
OT_JOINER := OFF
else ifneq (,$(filter openthread-mtd,$(USEMODULE)))
TD = mtd
OT_JOINER := ON
else
$(error "Please use either USEMODULE=openthread-ftd or USEMODULE=openthread-mtd")
endif
OT_MODULES = mbedcrypto mbedtls openthread-$(TD)
ifneq (,$(filter openthread-cli-$(TD),$(USEMODULE)))
OT_MODULES += openthread-cli-$(TD)
OT_APP_CLI ?= ON
endif
# Enable CoAP
OT_COAP ?= ON
OT_C_FLAGS = $(CFLAGS_CPU)
OT_C_FLAGS += -fdata-sections
OT_C_FLAGS += -ffunction-sections -Os
OT_C_FLAGS += -ffunction-sections
OT_C_FLAGS += -fshort-enums
OT_C_FLAGS += -Wno-implicit-fallthrough
OT_C_FLAGS += -Wno-unused-parameter
OT_CXXFLAGS += -Wno-class-memaccess
OT_CXXFLAGS += -DOPENTHREAD_TARGET_RIOT
OT_MODULES_ARCHIVES = $(addsuffix .a,$(addprefix $(BINDIR)/,$(OT_MODULES)))
OT_CORE_LIB_DIR = $(PKG_BUILD_DIR)/src/core
OT_CLI_LIB_DIR = $(PKG_BUILD_DIR)/src/cli
OT_MBEDCRYPTO_LIB_DIR = $(PKG_BUILD_DIR)/third_party/mbedtls/repo/library
ifeq (llvm,$(TOOLCHAIN))
OT_C_FLAGS += -target $(TARGET_ARCH_LLVM)
OT_C_FLAGS += $(GCC_C_INCLUDES)
OT_CXXFLAGS += $(GCC_CXX_INCLUDES)
endif
all: $(OT_MODULES_ARCHIVES)
@:
$(BINDIR)/mbedtls.a: $(BINDIR)/openthread-$(TD).a
@cp $(OT_MBEDCRYPTO_LIB_DIR)/libmbedtls.a $@
$(BINDIR)/mbedcrypto.a: $(BINDIR)/openthread-$(TD).a
@cp $(OT_MBEDCRYPTO_LIB_DIR)/libmbedcrypto.a $@
$(BINDIR)/openthread-cli-$(TD).a: $(BINDIR)/openthread-$(TD).a
@cp $(OT_CLI_LIB_DIR)/libopenthread-cli-$(TD).a $@
$(BINDIR)/openthread-$(TD).a: $(OT_CORE_LIB_DIR)/libopenthread-$(TD).a
@cp $< $@
$(OT_CORE_LIB_DIR)/libopenthread-$(TD).a: $(PKG_BUILD_DIR)/Makefile
$(QQ)"$(MAKE)" -C $(PKG_BUILD_DIR) $(OT_MODULES)
$(PKG_BUILD_DIR)/Makefile:
cmake -Wno-dev -B$(PKG_BUILD_DIR) -H$(PKG_SOURCE_DIR) \
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_C_COMPILER="$(CC)" \
-DCMAKE_C_COMPILER_AR="$(AR)" \
-DCMAKE_C_COMPILER_RANLIB="$(RANLIB)" \
-DCMAKE_C_FLAGS="$(OT_C_FLAGS)" \
-DCMAKE_CXX_COMPILER="$(CXX)" \
-DCMAKE_CXX_FLAGS="$(OT_C_FLAGS) $(OT_CXXFLAGS) -fno-exceptions -fno-rtti" \
-DCMAKE_NM="$(NM)" \
-DCMAKE_STRIP="$(STRIP)" \
-DOT_PLATFORM=NO \
-DOT_CONFIG="$(RIOTBASE)/pkg/openthread/include/platform_config.h" \
-DOT_APP_CLI=$(OT_APP_CLI) \
-DOT_JOINER=$(OT_JOINER) \
-DOT_COAP=$(OT_COAP)