mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-13 21:48:25 +08:00
387 lines
22 KiB
Makefile
387 lines
22 KiB
Makefile
#
|
|
# UNPUBLISHED PROPRIETARY SOURCE CODE
|
|
# Copyright (c) 2016 MXCHIP Inc.
|
|
#
|
|
# The contents of this file may not be disclosed to third parties, copied or
|
|
# duplicated in any form, in whole or in part, without the prior written
|
|
# permission of MXCHIP Corporation.
|
|
#
|
|
|
|
include $(MAKEFILES_PATH)/micoder_host_cmd.mk
|
|
|
|
CONFIG_FILE_DIR := $(SOURCE_ROOT)build/$(CLEANED_BUILD_STRING)
|
|
CONFIG_FILE := $(CONFIG_FILE_DIR)/config.mk
|
|
|
|
COMPONENT_DIRECTORIES := $(MICO_OS_PATH) \
|
|
$(MICO_OS_PATH)/sub_build \
|
|
$(MICO_OS_PATH)/board \
|
|
$(MICO_OS_PATH)/platform \
|
|
$(MICO_OS_PATH)/MiCO \
|
|
$(MICO_OS_PATH)/MiCO/net \
|
|
$(MICO_OS_PATH)/MiCO/RTOS \
|
|
$(MICO_OS_PATH)/MiCO/security/TLS \
|
|
$(MICO_OS_PATH)/libraries \
|
|
$(SOURCE_ROOT) \
|
|
$(SOURCE_ROOT)/board
|
|
|
|
MiCO_SDK_VERSION ?= $(MiCO_SDK_VERSION_MAJOR).$(MiCO_SDK_VERSION_MINOR).$(MiCO_SDK_VERSION_REVISION)
|
|
|
|
##################################
|
|
# Macros
|
|
##################################
|
|
|
|
# $(1) is component
|
|
GET_BARE_LOCATION =$(patsubst $(call ESCAPE_BACKSLASHES,$(SOURCE_ROOT))%,%,$(strip $($(1)_LOCATION)))
|
|
|
|
#####################################################################################
|
|
# Macro PROCESS_COMPONENT
|
|
# $(1) is the list of components left to process. $(COMP) is set as the first element in the list
|
|
define PROCESS_COMPONENT
|
|
$(eval COMP := $(word 1,$(1)))
|
|
$(eval COMP_LOCATION := $(subst .,/,$(COMP)))
|
|
$(eval COMP_MAKEFILE_NAME := $(notdir $(COMP_LOCATION)))
|
|
# Find the component makefile in directory list
|
|
$(eval TEMP_MAKEFILE := $(strip $(wildcard $(foreach dir, $(COMPONENT_DIRECTORIES), $(dir)/$(COMP_LOCATION)/$(COMP_MAKEFILE_NAME).mk))))
|
|
|
|
# Check if component makefile was found - if not try downloading it and re-doing the makefile search
|
|
$(if $(TEMP_MAKEFILE),,\
|
|
$(info Unknown component: $(COMP) - directory or makefile for component not found. Ensure the $(COMP_LOCATION) directory contains $(COMP_MAKEFILE_NAME).mk) \
|
|
$(info Below is a list of valid local components (Some are internal): ) \
|
|
$(call FIND_VALID_COMPONENTS, VALID_COMPONENT_LIST,$(COMPONENT_DIRECTORIES)) \
|
|
$(foreach comp,$(VALID_COMPONENT_LIST),$(info $(comp))) \
|
|
$(info Below is a list of valid components from the internet: ) \
|
|
$(info $(call DOWNLOAD_COMPONENT_LIST)) \
|
|
$(error Unknown component: $(COMP) - directory or makefile for component not found. Ensure the $(COMP_LOCATION) directory contains $(COMP_MAKEFILE_NAME).mk))
|
|
$(if $(filter 1,$(words $(TEMP_MAKEFILE))),,$(error More than one component with the name "$(COMP)". See $(TEMP_MAKEFILE)))
|
|
|
|
# Clear all the temporary variables
|
|
$(eval GLOBAL_INCLUDES:=)
|
|
$(eval GLOBAL_LINK_SCRIPT:=)
|
|
$(eval DEFAULT_LINK_SCRIPT:=)
|
|
$(eval DCT_LINK_SCRIPT:=)
|
|
$(eval GLOBAL_DEFINES:=)
|
|
$(eval GLOBAL_CFLAGS:=)
|
|
$(eval GLOBAL_CXXFLAGS:=)
|
|
$(eval GLOBAL_ASMFLAGS:=)
|
|
$(eval GLOBAL_LDFLAGS:=)
|
|
$(eval GLOBAL_CERTIFICATES:=)
|
|
$(eval WIFI_CONFIG_DCT_H:=)
|
|
$(eval BT_CONFIG_DCT_H:=)
|
|
$(eval APPLICATION_DCT:=)
|
|
$(eval CERTIFICATE:=)
|
|
$(eval PRIVATE_KEY:=)
|
|
$(eval CHIP_SPECIFIC_SCRIPT:=)
|
|
$(eval CONVERTER_OUTPUT_FILE:=)
|
|
$(eval BIN_OUTPUT_FILE:=)
|
|
$(eval OLD_CURDIR := $(CURDIR))
|
|
$(eval CURDIR := $(CURDIR)$(dir $(TEMP_MAKEFILE)))
|
|
|
|
# Cache the last valid RTOS/NS combination for iterative filtering.
|
|
$(eval TEMP_VALID_OSNS_COMBOS := $(VALID_OSNS_COMBOS))
|
|
|
|
# Include the component makefile - This defines the NAME variable
|
|
$(eval include $(TEMP_MAKEFILE))
|
|
|
|
# Filter the valid RTOS/NS combination to the least-common set.
|
|
$(eval VALID_OSNS_COMBOS :=\
|
|
$(if $(VALID_OSNS_COMBOS),\
|
|
$(filter $(VALID_OSNS_COMBOS),$(TEMP_VALID_OSNS_COMBOS)),\
|
|
$(TEMP_VALID_OSNS_COMBOS)\
|
|
)\
|
|
)
|
|
|
|
$(eval $(NAME)_MAKEFILE :=$(TEMP_MAKEFILE))
|
|
|
|
# Expand the list of resources to point to the full location (either component local or the common resources directory)
|
|
$(eval $(NAME)_RESOURCES_EXPANDED := $(foreach res,$($(NAME)_RESOURCES),$(word 1,$(wildcard $(addsuffix $(res),$(CURDIR) $(SOURCE_ROOT)resources/)))))
|
|
|
|
$(eval CURDIR := $(OLD_CURDIR))
|
|
|
|
$(eval $(NAME)_LOCATION ?= $(dir $(TEMP_MAKEFILE)))
|
|
$(eval $(NAME)_MAKEFILE := $(TEMP_MAKEFILE))
|
|
MiCO_SDK_MAKEFILES += $($(NAME)_MAKEFILE)
|
|
|
|
# Set debug/release specific options
|
|
$(eval $(NAME)_BUILD_TYPE := $(BUILD_TYPE))
|
|
$(eval $(NAME)_BUILD_TYPE := $(if $($(NAME)_NEVER_OPTIMISE), debug, $($(NAME)_BUILD_TYPE)))
|
|
$(eval $(NAME)_BUILD_TYPE := $(if $($(NAME)_ALWAYS_OPTIMISE), release, $($(NAME)_BUILD_TYPE)))
|
|
|
|
$(NAME)_ASMFLAGS += $(if $(findstring debug,$($(NAME)_BUILD_TYPE)), $(COMPILER_SPECIFIC_DEBUG_ASFLAGS), $(COMPILER_SPECIFIC_RELEASE_ASFLAGS))
|
|
$(NAME)_LDFLAGS += $(if $(findstring debug,$($(NAME)_BUILD_TYPE)), $(COMPILER_SPECIFIC_DEBUG_LDFLAGS), $(COMPILER_SPECIFIC_RELEASE_LDFLAGS))
|
|
|
|
$(NAME)_OPTIM_CFLAGS ?= $(if $(findstring debug,$($(NAME)_BUILD_TYPE)), $(COMPILER_SPECIFIC_DEBUG_CFLAGS), $(if $(findstring release_log,$($(NAME)_BUILD_TYPE)), $(COMPILER_SPECIFIC_RELEASE_LOG_CFLAGS), $(COMPILER_SPECIFIC_RELEASE_CFLAGS)))
|
|
|
|
$(NAME)_OPTIM_CXXFLAGS ?= $(if $(findstring debug,$($(NAME)_BUILD_TYPE)), $(COMPILER_SPECIFIC_DEBUG_CXXFLAGS), $(if $(findstring release_log,$($(NAME)_BUILD_TYPE)), $(COMPILER_SPECIFIC_RELEASE_LOG_CXXFLAGS), $(COMPILER_SPECIFIC_RELEASE_CXXFLAGS)))
|
|
|
|
MiCO_SDK_INCLUDES +=$(addprefix -I$($(NAME)_LOCATION),$(GLOBAL_INCLUDES))
|
|
MiCO_SDK_LINK_SCRIPT +=$(if $(GLOBAL_LINK_SCRIPT),$(GLOBAL_LINK_SCRIPT),)
|
|
MiCO_SDK_DEFAULT_LINK_SCRIPT+=$(if $(DEFAULT_LINK_SCRIPT),$(addprefix $($(NAME)_LOCATION),$(DEFAULT_LINK_SCRIPT)),)
|
|
MiCO_SDK_DEFINES +=$(GLOBAL_DEFINES)
|
|
MiCO_SDK_CFLAGS +=$(GLOBAL_CFLAGS)
|
|
MiCO_SDK_CXXFLAGS +=$(GLOBAL_CXXFLAGS)
|
|
MiCO_SDK_ASMFLAGS +=$(GLOBAL_ASMFLAGS)
|
|
MiCO_SDK_LDFLAGS +=$(GLOBAL_LDFLAGS)
|
|
MiCO_SDK_CHIP_SPECIFIC_SCRIPT += $(CHIP_SPECIFIC_SCRIPT)
|
|
MiCO_SDK_CONVERTER_OUTPUT_FILE += $(CONVERTER_OUTPUT_FILE)
|
|
MiCO_SDK_FINAL_OUTPUT_FILE += $(BIN_OUTPUT_FILE)
|
|
|
|
$(eval PROCESSED_COMPONENTS += $(NAME))
|
|
$(eval PROCESSED_COMPONENTS_LOCS += $(COMP))
|
|
$(eval COMPONENTS += $($(NAME)_COMPONENTS))
|
|
|
|
$(if $(strip $(filter-out $(PROCESSED_COMPONENTS_LOCS),$(COMPONENTS))),$(eval $(call PROCESS_COMPONENT,$(filter-out $(PROCESSED_COMPONENTS_LOCS),$(COMPONENTS)))),)
|
|
endef
|
|
|
|
define PROCESS_COMPATIBILITY_CHECK
|
|
$(eval $(if $(VALID_PLATFORMS), $(if $(filter $(VALID_PLATFORMS),$(PLATFORM)),,$(error $(APP) application does not support $(PLATFORM) platform)),))
|
|
$(eval $(if $(INVALID_PLATFORMS), $(if $(filter $(INVALID_PLATFORMS),$(PLATFORM)),$(error $(APP) application does not support $(PLATFORM) platform)),))
|
|
$(eval $(if $(VALID_OSNS_COMBOS), $(if $(filter $(VALID_OSNS_COMBOS),$(RTOS) $(RTOS)@$(NET)),,$(error $(APP) application does not support $(RTOS)-$(NET) combination, use $(VALID_OSNS_COMBOS))),))
|
|
$(eval $(if $(VALID_BUILD_TYPES), $(if $(filter $(VALID_BUILD_TYPES),$(BUILD_TYPE)),,$(error $(APP) application does not support $(BUILD_TYPE) build)),))
|
|
$(eval $(if $(VALID_BUSES), $(if $(filter $(VALID_BUSES),$(BUS)),,$(error $(PLATFORM) platform does not support $(BUS) bus type)),))
|
|
$(eval $(if $(VALID_IMAGE_TYPES), $(if $(filter $(VALID_IMAGE_TYPES),$(IMAGE_TYPE)),,$(error $(APP) application does not support $(IMAGE_TYPE) build)),))
|
|
$(eval $(if $(VALID_TLS), $(if $(filter $(VALID_TLS),$(TLS)),,$(error $(APP) application does not support $(TLS), use $(VALID_TLS))),))
|
|
endef
|
|
|
|
##################################
|
|
# Start of processing
|
|
##################################
|
|
|
|
# Separate the build string into components
|
|
COMPONENTS := $(subst @, ,$(MAKECMDGOALS))
|
|
|
|
BUS_LIST := SPI \
|
|
SDIO
|
|
|
|
MOC_LIST := MOC \
|
|
moc
|
|
|
|
BUILD_TYPE_LIST := debug \
|
|
release_log \
|
|
release
|
|
|
|
IMAGE_TYPE_LIST := rom \
|
|
ram
|
|
|
|
|
|
# Extract out: the bus option, the debug/release option, OTA option, and the lint option
|
|
BUS := $(if $(filter $(BUS_LIST),$(COMPONENTS)),$(firstword $(filter $(BUS_LIST),$(COMPONENTS))))
|
|
BUILD_TYPE := $(if $(filter $(BUILD_TYPE_LIST),$(COMPONENTS)),$(firstword $(filter $(BUILD_TYPE_LIST),$(COMPONENTS))),release_log)
|
|
IMAGE_TYPE := $(if $(filter $(IMAGE_TYPE_LIST),$(COMPONENTS)),$(firstword $(filter $(IMAGE_TYPE_LIST),$(COMPONENTS))),ram)
|
|
RUN_LINT := $(filter lint,$(COMPONENTS))
|
|
MOC := $(filter $(MOC_LIST),$(COMPONENTS))
|
|
COMPONENTS := $(filter-out $(MOC_LIST) $(BUS_LIST) $(BUILD_TYPE_LIST) $(IMAGE_TYPE_LIST) $(TOTAL_BUILD), $(COMPONENTS))
|
|
|
|
# Set debug/release specific options
|
|
ifeq ($(BUILD_TYPE),release)
|
|
MiCO_SDK_LDFLAGS += $(COMPILER_SPECIFIC_RELEASE_LDFLAGS)
|
|
else
|
|
MiCO_SDK_LDFLAGS += $(COMPILER_SPECIFIC_DEBUG_LDFLAGS)
|
|
endif
|
|
|
|
# MOC define mocOS and mocIP
|
|
ifneq ($(MOC),)
|
|
COMPONENTS += mocOS mocIP mocSSL
|
|
endif
|
|
|
|
# Check if there are any unknown components; output error if so.
|
|
$(foreach comp, $(COMPONENTS), $(if $(wildcard $(foreach dir, $(COMPONENT_DIRECTORIES), $(dir)/$(subst .,/,$(comp)) ) ),,$(error Unknown component: $(comp))))
|
|
|
|
# Find the matching network, platform, RTOS and application from the build string components
|
|
NET_FULL ?=$(strip $(foreach comp,$(subst .,/,$(COMPONENTS)),$(if $(wildcard $(MICO_OS_PATH)/MiCO/net/$(comp)),$(comp),)))
|
|
RTOS_FULL ?=$(strip $(foreach comp,$(subst .,/,$(COMPONENTS)),$(if $(wildcard $(MICO_OS_PATH)/MiCO/RTOS/$(comp)),$(comp),)))
|
|
TLS_FULL ?=$(strip $(foreach comp,$(subst .,/,$(COMPONENTS)),$(if $(wildcard $(MICO_OS_PATH)/MiCO/Security/TLS/$(comp)),$(comp),)))
|
|
PLATFORM_FULL :=$(strip $(foreach comp,$(subst .,/,$(COMPONENTS)),$(if $(wildcard $(MICO_OS_PATH)/board/$(comp)),$(MICO_OS_PATH)/board/$(comp),$(if $(wildcard $(SOURCE_ROOT)/board/$(comp)),$(SOURCE_ROOT)/board/$(comp),))))
|
|
APP_FULL :=$(strip $(foreach comp,$(subst .,/,$(COMPONENTS)),$(if $(wildcard $(SOURCE_ROOT)$(comp)),$(SOURCE_ROOT)$(comp),$(if $(wildcard $(MICO_OS_PATH)/$(comp)),$(MICO_OS_PATH)/$(comp),))))
|
|
|
|
NET :=$(notdir $(NET_FULL))
|
|
RTOS :=$(notdir $(RTOS_FULL))
|
|
TLS :=$(notdir $(TLS_FULL))
|
|
PLATFORM :=$(notdir $(PLATFORM_FULL))
|
|
APP :=$(notdir $(APP_FULL))
|
|
|
|
PLATFORM_DIRECTORY := $(PLATFORM_FULL)
|
|
|
|
# Define default RTOS and TCPIP stack
|
|
ifndef RTOS
|
|
RTOS := FreeRTOS
|
|
COMPONENTS += $(RTOS)
|
|
endif
|
|
|
|
ifndef NET
|
|
NET := LwIP
|
|
COMPONENTS += $(NET)
|
|
endif
|
|
|
|
ifndef TLS
|
|
TLS := wolfSSL
|
|
COMPONENTS += $(TLS)
|
|
endif
|
|
|
|
EXTRA_CFLAGS := -DMiCO_SDK_VERSION_MAJOR=$(MiCO_SDK_VERSION_MAJOR) \
|
|
-DMiCO_SDK_VERSION_MINOR=$(MiCO_SDK_VERSION_MINOR) \
|
|
-DMiCO_SDK_VERSION_REVISION=$(MiCO_SDK_VERSION_REVISION) \
|
|
-DBUS=$(SLASH_QUOTE_START)$$(BUS)$(SLASH_QUOTE_END) \
|
|
-I$(OUTPUT_DIR)/resources/ \
|
|
-DPLATFORM=$(SLASH_QUOTE_START)$$(PLATFORM)$(SLASH_QUOTE_END)
|
|
|
|
# Load platform makefile to make variables like WLAN_CHIP, HOST_OPENOCD & HOST_ARCH available to all makefiles
|
|
$(eval CURDIR := $(PLATFORM_DIRECTORY)/)
|
|
include $(PLATFORM_DIRECTORY)/$(notdir $(PLATFORM_DIRECTORY)).mk
|
|
$(eval CURDIR := $(MICO_OS_PATH)/platform/MCU/$(HOST_MCU_FAMILY)/)
|
|
include $(MICO_OS_PATH)/platform/MCU/$(HOST_MCU_FAMILY)/$(HOST_MCU_FAMILY).mk
|
|
MAIN_COMPONENT_PROCESSING :=1
|
|
$(eval $(call PROCESS_COMPATIBILITY_CHECK,))
|
|
|
|
# Now we know the target architecture - include all toolchain makefiles and check one of them can handle the architecture
|
|
CC :=
|
|
|
|
ifneq ($(filter $(HOST_ARCH),Cortex-M3 Cortex-M4 Cortex-M4F Cortex-R4 ARM968E-S),)
|
|
|
|
include $(MAKEFILES_PATH)/micoder_toolchain_arm-none-eabi.mk
|
|
|
|
else # ifneq ($(filter $(HOST_ARCH),Cortex-M3 Cortex-M4 Cortex-R4),)
|
|
ifneq ($(filter $(HOST_ARCH),MIPS),)
|
|
include $(MAKEFILES_PATH)/mico_toolchain_Win32_MIPS.mk
|
|
endif # ifneq ($(filter $(HOST_ARCH),MIPS),)
|
|
endif # ifneq ($(filter $(HOST_ARCH),Cortex-M3 Cortex-M4 Cortex-R4),)
|
|
|
|
ifndef CC
|
|
$(error No matching toolchain found for architecture $(HOST_ARCH))
|
|
endif
|
|
|
|
# Process all the components + MiCO
|
|
COMPONENTS += MiCO
|
|
$(info processing components: $(COMPONENTS))
|
|
|
|
CURDIR :=
|
|
$(eval $(call PROCESS_COMPONENT, $(COMPONENTS)))
|
|
|
|
# Add some default values
|
|
MiCO_SDK_INCLUDES += -I$(MICO_OS_PATH)/include -I$(APP_FULL) -I.
|
|
MiCO_SDK_DEFINES += $(EXTERNAL_MiCO_GLOBAL_DEFINES)
|
|
|
|
ALL_RESOURCES := $(sort $(foreach comp,$(PROCESSED_COMPONENTS),$($(comp)_RESOURCES_EXPANDED)))
|
|
|
|
# Make sure the user has specified a component from each category
|
|
$(if $(RTOS),,$(error No RTOS specified. Options are: $(notdir $(wildcard MiCO/RTOS/*))))
|
|
$(if $(PLATFORM),,$(error No platform specified. Options are: $(notdir $(wildcard board/*))))
|
|
$(if $(APP),,$(error No application specified.))
|
|
$(if $(BUS),,$(error No bus specified. Options are: SDIO SPI))
|
|
|
|
# Make sure a WLAN_CHIP, WLAN_CHIP_REVISION, WLAN_CHIP_FAMILY and HOST_OPENOCD have been defined
|
|
$(if $(WLAN_CHIP),,$(error No WLAN_CHIP has been defined))
|
|
$(if $(WLAN_CHIP_REVISION),,$(error No WLAN_CHIP_REVISION has been defined))
|
|
$(if $(WLAN_CHIP_FAMILY),,$(error No WLAN_CHIP_FAMILY has been defined))
|
|
$(if $(HOST_OPENOCD),,$(error No HOST_OPENOCD has been defined))
|
|
|
|
$(eval VALID_PLATFORMS := $(call EXPAND_WILDCARD_PLATFORMS,$(VALID_PLATFORMS)))
|
|
$(eval INVALID_PLATFORMS := $(call EXPAND_WILDCARD_PLATFORMS,$(INVALID_PLATFORMS)))
|
|
|
|
# Check for valid platform, OSNS combination, build type, image type and bus
|
|
$(eval $(call PROCESS_COMPATIBILITY_CHECK,))
|
|
|
|
REMOVE_FIRST = $(wordlist 2,$(words $(1)),$(1))
|
|
|
|
EXTRA_TARGET_MAKEFILES :=$(call unique,$(EXTRA_TARGET_MAKEFILES))
|
|
$(foreach makefile_name,$(EXTRA_TARGET_MAKEFILES),$(eval include $(makefile_name)))
|
|
|
|
$(CONFIG_FILE_DIR):
|
|
$(QUIET)$(call MKDIR, $@)
|
|
|
|
# Summarize all the information into the config file
|
|
|
|
|
|
# Fill out full CFLAGS - done here to allow late expansion of macros
|
|
$(foreach comp,$(PROCESSED_COMPONENTS), $(eval $(comp)_CFLAGS_ALL := $(call ADD_COMPILER_SPECIFIC_STANDARD_CFLAGS,$($(comp)_OPTIM_CFLAGS))) )
|
|
$(foreach comp,$(PROCESSED_COMPONENTS), $(eval $(comp)_CFLAGS_ALL += $(EXTRA_CFLAGS)) )
|
|
$(foreach comp,$(PROCESSED_COMPONENTS), $(eval $(comp)_CFLAGS_ALL += $($(comp)_CFLAGS)) )
|
|
|
|
$(foreach comp,$(PROCESSED_COMPONENTS), $(eval $(comp)_CXXFLAGS_ALL := $(call ADD_COMPILER_SPECIFIC_STANDARD_CXXFLAGS,$($(comp)_OPTIM_CXXFLAGS))) )
|
|
$(foreach comp,$(PROCESSED_COMPONENTS), $(eval $(comp)_CXXFLAGS_ALL += $(EXTRA_CFLAGS)) )
|
|
$(foreach comp,$(PROCESSED_COMPONENTS), $(eval $(comp)_CXXFLAGS_ALL += $($(comp)_CXXFLAGS)) )
|
|
|
|
|
|
MiCO_SDK_PREBUILT_LIBRARIES +=$(foreach comp,$(PROCESSED_COMPONENTS), $(addprefix $($(comp)_LOCATION),$($(comp)_PREBUILT_LIBRARY)))
|
|
MiCO_SDK_LINK_FILES +=$(foreach comp,$(PROCESSED_COMPONENTS), $(addprefix $$(OUTPUT_DIR)/Modules/$(call GET_BARE_LOCATION,$(comp)),$($(comp)_LINK_FILES)))
|
|
MiCO_SDK_UNIT_TEST_SOURCES +=$(foreach comp,$(PROCESSED_COMPONENTS), $(addprefix $($(comp)_LOCATION),$($(comp)_UNIT_TEST_SOURCES)))
|
|
|
|
ifeq ($(ADD_UNIT_TESTS_TO_LINK_FILES),1)
|
|
MiCO_SDK_LINK_FILES += $(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o, $(foreach comp,$(PROCESSED_COMPONENTS), $(addprefix $$(OUTPUT_DIR)/Modules/$(call GET_BARE_LOCATION,$(comp)),$($(comp)_UNIT_TEST_SOURCES))) )))
|
|
endif
|
|
|
|
|
|
# Build target, generate config file
|
|
.PHONY: $(MAKECMDGOALS)
|
|
$(MAKECMDGOALS): $(CONFIG_FILE) $(TOOLCHAIN_HOOK_TARGETS)
|
|
|
|
$(CONFIG_FILE): $(MiCO_SDK_MAKEFILES) | $(CONFIG_FILE_DIR)
|
|
$(QUIET)$(call WRITE_FILE_CREATE, $(CONFIG_FILE) ,MiCO_SDK_MAKEFILES += $(MiCO_SDK_MAKEFILES))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,TOOLCHAIN_NAME := $(TOOLCHAIN_NAME))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_LDFLAGS += $(strip $(MiCO_SDK_LDFLAGS)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,RESOURCE_CFLAGS += $(strip $(MiCO_SDK_CFLAGS)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_LINK_SCRIPT += $(strip $(if $(strip $(MiCO_SDK_LINK_SCRIPT)),$(MiCO_SDK_LINK_SCRIPT),$(MiCO_SDK_DEFAULT_LINK_SCRIPT))))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_LINK_SCRIPT_CMD += $(call COMPILER_SPECIFIC_LINK_SCRIPT,$(strip $(if $(strip $(MiCO_SDK_LINK_SCRIPT)),$(MiCO_SDK_LINK_SCRIPT),$(MiCO_SDK_DEFAULT_LINK_SCRIPT)))))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_PREBUILT_LIBRARIES += $(strip $(MiCO_SDK_PREBUILT_LIBRARIES)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_CERTIFICATES += $(strip $(MiCO_SDK_CERTIFICATES)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_PRE_APP_BUILDS += $(strip $(PRE_APP_BUILDS)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_LINK_FILES += $(MiCO_SDK_LINK_FILES))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_INCLUDES += $(call unique,$(MiCO_SDK_INCLUDES)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_DEFINES += $(call unique,$(strip $(addprefix -D,$(MiCO_SDK_DEFINES)))))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,COMPONENTS := $(PROCESSED_COMPONENTS))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,BUS := $(BUS))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,IMAGE_TYPE := $(IMAGE_TYPE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,NETWORK_FULL := $(NETWORK_FULL))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,RTOS_FULL := $(RTOS_FULL))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,PLATFORM_DIRECTORY := $(PLATFORM_DIRECTORY))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,APP_FULL := $(APP_FULL))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,NETWORK := $(NETWORK))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,RTOS := $(RTOS))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MODULE := $(MODULE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,PLATFORM := $(PLATFORM))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,HOST_MCU_FAMILY := $(HOST_MCU_FAMILY))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,USB := $(USB))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,APP := $(APP))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,HOST_OPENOCD := $(HOST_OPENOCD))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,JTAG := $(JTAG))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,HOST_ARCH := $(HOST_ARCH))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,NO_BUILD_BOOTLOADER := $(NO_BUILD_BOOTLOADER))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,NO_BOOTLOADER_REQUIRED := $(NO_BOOTLOADER_REQUIRED))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_LOCATION := $($(comp)_LOCATION)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_SOURCES += $($(comp)_SOURCES)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_CHECK_HEADERS += $($(comp)_CHECK_HEADERS)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_INCLUDES := $(addprefix -I$($(comp)_LOCATION),$($(comp)_INCLUDES))))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_DEFINES := $(addprefix -D,$($(comp)_DEFINES))))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_CFLAGS := $(MiCO_SDK_CFLAGS) $($(comp)_CFLAGS_ALL)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_CXXFLAGS := $(MiCO_SDK_CXXFLAGS) $($(comp)_CXXFLAGS_ALL)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_ASMFLAGS := $(MiCO_SDK_ASMFLAGS) $($(comp)_ASMFLAGS)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_RESOURCES := $($(comp)_RESOURCES_EXPANDED)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_MAKEFILE := $($(comp)_MAKEFILE)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_PRE_BUILD_TARGETS:= $($(comp)_PRE_BUILD_TARGETS)))
|
|
$(QUIET)$(foreach comp,$(PROCESSED_COMPONENTS), $(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,$(comp)_PREBUILT_LIBRARY := $(addprefix $($(comp)_LOCATION),$($(comp)_PREBUILT_LIBRARY))))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_UNIT_TEST_SOURCES := $(MiCO_SDK_UNIT_TEST_SOURCES))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,ALL_RESOURCES := $(call unique,$(ALL_RESOURCES)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,INTERNAL_MEMORY_RESOURCES := $(call unique,$(INTERNAL_MEMORY_RESOURCES)))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,EXTRA_TARGET_MAKEFILES := $(EXTRA_TARGET_MAKEFILES))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,APPS_START_SECTOR := $(APPS_START_SECTOR) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,BOOTLOADER_FIRMWARE := $(BOOTLOADER_FIRMWARE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,ATE_FIRMWARE := $(ATE_FIRMWARE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,APPLICATION_FIRMWARE := $(APPLICATION_FIRMWARE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,PARAMETER_1_IMAGE := $(PARAMETER_1_IMAGE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,PARAMETER_2_IMAGE := $(PARAMETER_2_IMAGE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,FILESYSTEM_IMAGE := $(FILESYSTEM_IMAGE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,WIFI_FIRMWARE := $(WIFI_FIRMWARE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,BT_PATCH_FIRMWARE := $(BT_PATCH_FIRMWARE) )
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_ROM_SYMBOL_LIST_FILE := $(MiCO_ROM_SYMBOL_LIST_FILE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_CHIP_SPECIFIC_SCRIPT := $(MiCO_SDK_CHIP_SPECIFIC_SCRIPT))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_CONVERTER_OUTPUT_FILE := $(MiCO_SDK_CONVERTER_OUTPUT_FILE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_SDK_FINAL_OUTPUT_FILE := $(MiCO_SDK_FINAL_OUTPUT_FILE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MiCO_RAM_STUB_LIST_FILE := $(MiCO_RAM_STUB_LIST_FILE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MOC_KERNEL_BIN_FILE := $(MOC_KERNEL_BIN_FILE))
|
|
$(QUIET)$(call WRITE_FILE_APPEND, $(CONFIG_FILE) ,MOC_APP_OFFSET := $(MOC_APP_OFFSET))
|
|
|
|
|
|
|
|
|
|
|
|
|