Nuttx build support.
This commit is contained in:
@@ -54,29 +54,41 @@
|
||||
STATIC_CHECK := OFF
|
||||
endif
|
||||
|
||||
# External build configuration
|
||||
EXTERNAL_LIBS_INTERFACE ?= ./third-party/nuttx/include
|
||||
EXTERNAL_C_COMPILER ?= arm-none-eabi-gcc
|
||||
EXTERNAL_CXX_COMPILER ?= arm-none-eabi-g++
|
||||
|
||||
export TARGET_DEBUG_MODES = debug
|
||||
export TARGET_RELEASE_MODES = release
|
||||
|
||||
export TARGET_PC_SYSTEMS = linux
|
||||
export TARGET_NUTTX_SYSTEMS = nuttx
|
||||
|
||||
export TARGET_PC_MODS = cp cp_minimal mem_stats
|
||||
export TARGET_NUTTX_MODS = $(TARGET_PC_MODS)
|
||||
|
||||
export TARGET_MCU_MODS = cp cp_minimal
|
||||
|
||||
export TARGET_PC_SYSTEMS_MODS = $(TARGET_PC_SYSTEMS) \
|
||||
$(foreach __MOD,$(TARGET_PC_MODS),$(foreach __SYSTEM,$(TARGET_PC_SYSTEMS),$(__SYSTEM)-$(__MOD)))
|
||||
export TARGET_NUTTX_SYSTEMS_MODS = $(TARGET_NUTTX_SYSTEMS) \
|
||||
$(foreach __MOD,$(TARGET_NUTTX_MODS),$(foreach __SYSTEM,$(TARGET_NUTTX_SYSTEMS),$(__SYSTEM)-$(__MOD)))
|
||||
export TARGET_STM32F3_MODS = $(foreach __MOD,$(TARGET_MCU_MODS),mcu_stm32f3-$(__MOD))
|
||||
export TARGET_STM32F4_MODS = $(foreach __MOD,$(TARGET_MCU_MODS),mcu_stm32f4-$(__MOD))
|
||||
|
||||
# Target list
|
||||
export JERRY_LINUX_TARGETS = $(foreach __MODE,$(TARGET_DEBUG_MODES),$(foreach __SYSTEM,$(TARGET_PC_SYSTEMS_MODS),$(__MODE).$(__SYSTEM))) \
|
||||
$(foreach __MODE,$(TARGET_RELEASE_MODES),$(foreach __SYSTEM,$(TARGET_PC_SYSTEMS_MODS),$(__MODE).$(__SYSTEM)))
|
||||
export JERRY_NUTTX_TARGETS = $(foreach __MODE,$(TARGET_DEBUG_MODES),$(foreach __SYSTEM,$(TARGET_NUTTX_SYSTEMS_MODS),$(__MODE).$(__SYSTEM))) \
|
||||
$(foreach __MODE,$(TARGET_RELEASE_MODES),$(foreach __SYSTEM,$(TARGET_NUTTX_SYSTEMS_MODS),$(__MODE).$(__SYSTEM)))
|
||||
|
||||
export JERRY_STM32F3_TARGETS = $(foreach __MODE,$(TARGET_RELEASE_MODES),$(foreach __SYSTEM,$(TARGET_STM32F3_MODS),$(__MODE).$(__SYSTEM)))
|
||||
|
||||
export JERRY_STM32F4_TARGETS = $(foreach __MODE,$(TARGET_DEBUG_MODES),$(foreach __SYSTEM,$(TARGET_STM32F4_MODS),$(__MODE).$(__SYSTEM))) \
|
||||
$(foreach __MODE,$(TARGET_RELEASE_MODES),$(foreach __SYSTEM,$(TARGET_STM32F4_MODS),$(__MODE).$(__SYSTEM)))
|
||||
|
||||
export JERRY_TARGETS = $(JERRY_LINUX_TARGETS) $(JERRY_STM32F3_TARGETS) $(JERRY_STM32F4_TARGETS) unittests
|
||||
export JERRY_TARGETS = $(JERRY_LINUX_TARGETS) $(JERRY_NUTTX_TARGETS) $(JERRY_STM32F3_TARGETS) $(JERRY_STM32F4_TARGETS) unittests
|
||||
|
||||
export CHECK_TARGETS = $(foreach __TARGET,$(JERRY_LINUX_TARGETS),$(__TARGET).check)
|
||||
export FLASH_TARGETS = $(foreach __TARGET,$(JERRY_STM32F3_TARGETS) $(JERRY_STM32F4_TARGETS),$(__TARGET).flash)
|
||||
@@ -100,13 +112,15 @@ export SHELL=/bin/bash
|
||||
|
||||
# Native
|
||||
BUILD_DIRS_NATIVE := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/native)
|
||||
# Nuttx
|
||||
BUILD_DIRS_NUTTX := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/nuttx)
|
||||
# stm32f3
|
||||
BUILD_DIRS_STM32F3 := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/stm32f3)
|
||||
# stm32f4
|
||||
BUILD_DIRS_STM32F4 := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/stm32f4)
|
||||
|
||||
# All together
|
||||
BUILD_DIRS_ALL := $(BUILD_DIRS_NATIVE) $(BUILD_DIRS_STM32F3) $(BUILD_DIRS_STM32F4)
|
||||
BUILD_DIRS_ALL := $(BUILD_DIRS_NATIVE) $(BUILD_DIRS_NUTTX) $(BUILD_DIRS_STM32F3) $(BUILD_DIRS_STM32F4)
|
||||
|
||||
# Current
|
||||
BUILD_DIR := ./build/obj$(OPTIONS_STRING)
|
||||
@@ -127,6 +141,24 @@ $(BUILD_DIRS_NATIVE):
|
||||
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_linux_$$arch.cmake ../../.. &>cmake.log || \
|
||||
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
|
||||
|
||||
$(BUILD_DIRS_NUTTX):
|
||||
@ [ "$(EXTERNAL_LIBS_INTERFACE)" != "" ] && [ -x `which $(EXTERNAL_C_COMPILER)` ] && [ -x `which $(EXTERNAL_CXX_COMPILER)` ] || \
|
||||
(echo "Wrong external arguments."; \
|
||||
echo "EXTERNAL_LIBS_INTERFACE='$(EXTERNAL_LIBS_INTERFACE)'"; \
|
||||
echo "EXTERNAL_C_COMPILER='$(EXTERNAL_C_COMPILER)'"; \
|
||||
echo "EXTERNAL_CXX_COMPILER='$(EXTERNAL_CXX_COMPILER)'"; \
|
||||
exit 1;)
|
||||
@ mkdir -p $@ && \
|
||||
cd $@ && \
|
||||
cmake \
|
||||
-DENABLE_VALGRIND=$(VALGRIND) \
|
||||
-DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_external.cmake \
|
||||
-DEXTERNAL_LIBC_INTERFACE=${EXTERNAL_LIBS_INTERFACE} \
|
||||
-DEXTERNAL_CMAKE_C_COMPILER=${EXTERNAL_C_COMPILER} \
|
||||
-DEXTERNAL_CMAKE_CXX_COMPILER=${EXTERNAL_CXX_COMPILER} \
|
||||
../../.. &>cmake.log || \
|
||||
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
|
||||
|
||||
$(BUILD_DIRS_STM32F3):
|
||||
@ mkdir -p $@ && \
|
||||
cd $@ && \
|
||||
@@ -164,6 +196,21 @@ $(BUILD_ALL)_native: $(BUILD_DIRS_NATIVE)
|
||||
@ $(MAKE) -C $(BUILD_DIR)/native $(JERRY_LINUX_TARGETS) unittests VERBOSE=1 &>$(OUT_DIR)/$@/make.log || \
|
||||
(echo "Build failed. See $(OUT_DIR)/$@/make.log for details."; exit 1;)
|
||||
|
||||
$(JERRY_NUTTX_TARGETS): $(BUILD_DIR)/nuttx
|
||||
@ mkdir -p $(OUT_DIR)/$@
|
||||
@ [ "$(STATIC_CHECK)" = "OFF" ] || $(MAKE) -C $(BUILD_DIR)/nuttx VERBOSE=1 cppcheck.$@ &>$(OUT_DIR)/$@/cppcheck.log || \
|
||||
(echo "cppcheck run failed. See $(OUT_DIR)/$@/cppcheck.log for details."; exit 1;)
|
||||
@ $(MAKE) -C $(BUILD_DIR)/nuttx VERBOSE=1 $@ &>$(OUT_DIR)/$@/make.log || \
|
||||
(echo "Build failed. See $(OUT_DIR)/$@/make.log for details."; exit 1;)
|
||||
@ cp `cat $(BUILD_DIR)/nuttx/$@/list` $(OUT_DIR)/$@/
|
||||
|
||||
$(BUILD_ALL)_nuttx: $(BUILD_DIRS_NUTTX)
|
||||
@ mkdir -p $(OUT_DIR)/$@
|
||||
@ $(MAKE) -C $(BUILD_DIR)/nuttx plugins-all VERBOSE=1 &>$(OUT_DIR)/$@/make.log || \
|
||||
(echo "Build failed. See $(OUT_DIR)/$@/make.log for details."; exit 1;)
|
||||
@ $(MAKE) -C $(BUILD_DIR)/nuttx $(JERRY_NUTTX_TARGETS) VERBOSE=1 &>$(OUT_DIR)/$@/make.log || \
|
||||
(echo "Build failed. See $(OUT_DIR)/$@/make.log for details."; exit 1;)
|
||||
|
||||
$(JERRY_STM32F3_TARGETS): $(BUILD_DIR)/stm32f3
|
||||
@ mkdir -p $(OUT_DIR)/$@
|
||||
@ [ "$(STATIC_CHECK)" = "OFF" ] || $(MAKE) -C $(BUILD_DIR)/stm32f3 VERBOSE=1 cppcheck.$@ &>$(OUT_DIR)/$@/cppcheck.log || \
|
||||
@@ -200,7 +247,7 @@ $(BUILD_ALL)_stm32f4: $(BUILD_DIRS_STM32F4)
|
||||
@ $(MAKE) -C $(BUILD_DIR)/stm32f4 $(JERRY_STM32F4_TARGETS) VERBOSE=1 &>$(OUT_DIR)/$@/make.log || \
|
||||
(echo "Build failed. See $(OUT_DIR)/$@/make.log for details."; exit 1;)
|
||||
|
||||
build_all: $(BUILD_ALL)_native $(BUILD_ALL)_stm32f3 $(BUILD_ALL)_stm32f4
|
||||
build_all: $(BUILD_ALL)_native $(BUILD_ALL)_nuttx $(BUILD_ALL)_stm32f3 $(BUILD_ALL)_stm32f4
|
||||
|
||||
#
|
||||
# build - build_all, then run cppcheck and copy output to OUT_DIR
|
||||
|
||||
Reference in New Issue
Block a user