add RIOT-OS support to WAMR (#425)
* add RIOT platform see riot-os.org * add simple RIOT example
This commit is contained in:
96
product-mini/platforms/riot/Makefile
Normal file
96
product-mini/platforms/riot/Makefile
Normal file
@ -0,0 +1,96 @@
|
||||
APPLICATION = wamr-mini
|
||||
# If no BOARD is defined in the environment, use this default:
|
||||
BOARD ?= native
|
||||
|
||||
# This has to be the absolute path to the RIOT base directory:
|
||||
RIOTBASE ?= $(CURDIR)/../../../../RIOT
|
||||
|
||||
USEMODULE += xtimer
|
||||
USEMODULE += sema
|
||||
|
||||
WPEDANTIC := 0
|
||||
WERROR := 0
|
||||
|
||||
# Comment this out to disable code in RIOT that does safety checking
|
||||
# which is not needed in a production environment but helps in the
|
||||
# development process:
|
||||
DEVELHELP ?= 1
|
||||
|
||||
# Change this to 0 show compiler invocation lines by default:
|
||||
QUIET ?= 1
|
||||
|
||||
ARCHIVES += $(BINDIR)/libwamr.a
|
||||
|
||||
#Load the usual RIOT make infastructure
|
||||
|
||||
include $(RIOTBASE)/Makefile.include
|
||||
|
||||
|
||||
WAMR_SOURCE = $(CURDIR)/../../..
|
||||
WAMR_BUILD_DIR = $(BINDIR)/wamr
|
||||
|
||||
#less Wall TODO: get things fixed
|
||||
CFLAGS := $(filter-out -pedantic, $(CFLAGS))
|
||||
CFLAGS += -Wno-format
|
||||
CFLAGS += -Wno-strict-prototypes
|
||||
CFLAGS += -Wno-old-style-definition
|
||||
CFLAGS += -Wno-cast-function-type
|
||||
|
||||
WAMR_CORE = $(WAMR_SOURCE)/core
|
||||
IWASM_ROOT = $(WAMR_CORE)/iwasm
|
||||
SHARED_LIB_ROOT = $(WAMR_CORE)/shared
|
||||
|
||||
IWASM_INCLUDES += ${IWASM_ROOT}/include \
|
||||
${SHARED_LIB_ROOT}/platform/include \
|
||||
${SHARED_LIB_ROOT}/platform/riot \
|
||||
|
||||
|
||||
INCLUDES += $(addprefix -I,${IWASM_INCLUDES})
|
||||
|
||||
|
||||
|
||||
RIOT_INCLUDES = $(filter-out -%,$(subst -I,,$(INCLUDES)))
|
||||
|
||||
#WAMR_BUILD_TARGET is "X86_32" "AARCH64[sub]", "ARM[sub]",
|
||||
# "THUMB[sub]", "MIPS" or "XTENSA"
|
||||
#no msp430, no AVR support for now
|
||||
|
||||
#translate (CPU_ARCH) to Build Target
|
||||
ifeq ($(CPU),native)
|
||||
#$(CPU) is defined for every CPU
|
||||
#Riot native is x86_32
|
||||
WAMR_BUILD_TARGET = X86_32
|
||||
else ifeq ($(findstring arm,$(CPU_ARCH)),arm)
|
||||
WAMR_BUILD_TARGET = THUMB
|
||||
else ifeq ($(CPU_ARCH),mips32r2)
|
||||
WAMR_BUILD_TARGET = MIPS
|
||||
else ifeq ($(CPU_ARCH),xtensa)
|
||||
WAMR_BUILD_TARGET = XTENSA
|
||||
endif
|
||||
|
||||
ifeq ($(QUIET), 0)
|
||||
CMAKEMAKEFLAGS += VERBOSE=1
|
||||
endif
|
||||
|
||||
|
||||
$(BINDIR)/libwamr.a: $(WAMR_BUILD_DIR)/libwamr.a
|
||||
cp $< $@
|
||||
|
||||
$(WAMR_BUILD_DIR)/libwamr.a: $(WAMR_BUILD_DIR)/Makefile
|
||||
$(MAKE) -C $(WAMR_BUILD_DIR) $(CMAKEMAKEFLAGS)
|
||||
|
||||
$(WAMR_BUILD_DIR)/Makefile: CMakeLists.txt
|
||||
cmake -B$(WAMR_BUILD_DIR) \
|
||||
"-DRIOT_INCLUDES=$(RIOT_INCLUDES)"\
|
||||
-DWAMR_ROOT_DIR=$(WAMR_SOURCE)\
|
||||
-DWAMR_BUILD_TARGET=$(WAMR_BUILD_TARGET)\
|
||||
-DCMAKE_SYSTEM_NAME=Generic \
|
||||
-DCMAKE_SYSTEM_PROCESSOR="$(MCPU)" \
|
||||
-DCMAKE_C_COMPILER=$(CC) \
|
||||
-DCMAKE_C_COMPILER_WORKS=TRUE \
|
||||
|
||||
print_build_target:
|
||||
@echo CPU_ARCH: $(CPU_ARCH)
|
||||
@echo CPU: $(CPU)
|
||||
@echo CFLAGS: $(CFLAGS)
|
||||
@echo WAMR_BUILD_TARGET: $(WAMR_BUILD_TARGET)
|
||||
Reference in New Issue
Block a user