diff --git a/Makefile b/Makefile deleted file mode 100644 index 00dfd928f..000000000 --- a/Makefile +++ /dev/null @@ -1,214 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -# -# Version -# -export VERSION_MAJOR := 2 -export VERSION_MINOR := 11 -export VERSION_PATCH := 0 - -# -# Directories -# -export TOP_DIR := $(shell pwd) -export ARCH_DIR := $(TOP_DIR)/arch -export DOC_DIR := $(TOP_DIR)/doc -export FWK_DIR := $(TOP_DIR)/framework -export TOOLS_DIR := $(TOP_DIR)/tools -export BS_DIR := $(TOOLS_DIR)/build_system -export PRODUCTS_DIR := $(TOP_DIR)/product -export MODULES_DIR := $(TOP_DIR)/module -export CMSIS_DIR := $(TOP_DIR)/contrib/cmsis/git/CMSIS/Core -export DBG_DIR := $(TOP_DIR)/debugger - -export BUILD_STRING := $(shell $(TOOLS_DIR)/build_string.py 2>/dev/null) -export VERSION_STRING = v$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) -export VERSION_DESCRIBE_STRING = $(VERSION_STRING)_$(BUILD_STRING) - -# -# Tools -# -export RM := rm -rf -export MD := mkdir -p -export CP := cp -r -export DOC := doxygen - -# -# Default options -# -DEFAULT_MODE := release -DEFAULT_BUILD_PATH := $(TOP_DIR)/build -DEFAULT_VERBOSE := n -DEFAULT_DEBUGGER := n - -DEFAULT_LOG_LEVEL_debug := INFO -DEFAULT_LOG_LEVEL_release := WARN - -# -# Top-level configuration -# -.DEFAULT_GOAL = all -# MAKECMDGOALS isn't set if there's no explicit goal in the -# command line, so set the default. -MAKECMDGOALS ?= $(.DEFAULT_GOAL) - -# Mode -export MODE ?= $(DEFAULT_MODE) -ifneq ($(filter-out debug release, $(MODE)),) - $(error "Invalid MODE parameter. Aborting...") -endif - -# Log level -export LOG_LEVEL ?= $(DEFAULT_LOG_LEVEL_${MODE}) - -# Build directory -BUILD_PATH ?= $(DEFAULT_BUILD_PATH) -ifeq ($(BUILD_PATH),) - $(error "Invalid BUILD_PATH parameter. Aborting...") -endif -export BUILD_DIR = $(abspath $(BUILD_PATH)) -export BUILD_DOC_DIR = $(BUILD_DIR)/doc - -# Verbose mode: y/n -V ?= $(DEFAULT_VERBOSE) -export V -ifeq ($(V),n) - MAKEFLAGS += --silent - MAKEFLAGS += --no-print-directory -endif - -# Include debugger library: y/n -DEBUGGER ?= $(DEFAULT_DEBUGGER) -ifeq ($(DEBUGGER),y) - BUILD_HAS_DEBUGGER := yes - export BUILD_HAS_DEBUGGER -endif - -# -# Products -# -PRODUCTS := $(shell ls $(PRODUCTS_DIR) 2>/dev/null) - -PRODUCT_INDEPENDENT_GOALS := clean doc help test lib-% module-% - -ifneq ($(filter-out $(PRODUCT_INDEPENDENT_GOALS), $(MAKECMDGOALS)),) - ifeq ($(PRODUCT),) - $(error "You must define PRODUCT. Aborting...") - endif - - export PRODUCT_DIR := $(PRODUCTS_DIR)/$(PRODUCT) - - ifeq ($(wildcard $(PRODUCT_DIR)/product.mk),) - $(error "Missing product.mk in $(PRODUCT_DIR)") - endif - - include $(PRODUCT_DIR)/product.mk - - ifeq ($(BS_FIRMWARE_LIST),) - $(error "You must define BS_FIRMWARE_LIST in product.mk. Aborting...") - endif - - FIRMWARE_TARGETS := $(addprefix firmware-, $(BS_FIRMWARE_LIST)) - -define msg_start -================================================================ -Arm SCP/MCP Software build System -Platform : $(BS_PRODUCT_NAME) -Mode : $(MODE) -Firmware(s) : $(BS_FIRMWARE_LIST) -================================================================ -endef - - $(info $(msg_start)) -endif - -# -# Rules -# - -.PHONY: all -all: $(FIRMWARE_TARGETS) - -module-%: $(MODULES_DIR)/% - $(MAKE) -C $(MODULES_DIR)/$*/src - -firmware-%: $(PRODUCT_DIR)/% - $(MAKE) -f $(PRODUCT_DIR)/$*/firmware.mk FIRMWARE=$* - -lib-%: $(TOP_DIR)/% - $(MAKE) -C $*/src - -.PHONY: test -test: - $(MAKE) -C $(FWK_DIR)/test all - -.PHONY: doc -doc: - $(MAKE) -C $(DOC_DIR) doc - -.PHONY: clean -clean: - $(RM) $(BUILD_DIR) - -.PHONY: help -help: - @echo "Arm SCP/MCP Software build system" - @echo "" - @echo "Usage: make [PRODUCT=] [OPTIONS] [TARGET]" - @echo "" - @echo "--------------------------------------------------------------------" - @echo "| Available Targets |" - @echo "--------------------------------------------------------------------" - @echo " all Build all firmware defined by PRODUCT=" - @echo " clean Remove all built products" - @echo " firmware- Build a specific firmware from PRODUCT=" - @echo " help Show this documentation" - @echo " lib- Build a specific project library" - @echo " test Build and run the framework test cases" - @echo "" - @echo "--------------------------------------------------------------------" - @echo "| Product Selection |" - @echo "--------------------------------------------------------------------" - @echo " PRODUCT" - @echo " Available products: $(PRODUCTS)" - @echo " Select the target product to build. This is a required" - @echo " parameter." - @echo "" - @echo "--------------------------------------------------------------------" - @echo "| Options |" - @echo "--------------------------------------------------------------------" - @echo " BUILD_PATH" - @echo " Value: " - @echo " Default: '$(DEFAULT_BUILD_PATH)'" - @echo " Set the base directory used during the build process." - @echo "" - @echo " MODE" - @echo " Value: " - @echo " Default: '$(DEFAULT_MODE)'" - @echo " Choose between release and debug mode." - @echo "" - @echo " O" - @echo " Value: " - @echo " Default: " - @echo " Set the desired level of optimization the compiler will use." - @echo "" - @echo " V" - @echo " Value: " - @echo " Default: $(DEFAULT_VERBOSE)" - @echo " Enable or disable verbose mode for the build system." - @echo "" - @echo " DEBUGGER" - @echo " Value: " - @echo " Default: $(DEFAULT_DEBUGGER)" - @echo " Include the debugger library." - @echo "" - @echo " LOG_LEVEL" - @echo " Value: " - @echo " Default: $(LOG_LEVEL)" - @echo " Filter log messages less important than this level." - @echo "" diff --git a/debugger/src/Makefile b/debugger/src/Makefile deleted file mode 100644 index 323883d44..000000000 --- a/debugger/src/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -BS_LIB_NAME := debugger - -BS_LIB_SOURCES += \ - checkpoint.c \ - cli/cli.c \ - cli/cli_commands_core.c \ - cli/cli_commands_checkpoint.c \ - cli/cli_fifo.c \ - cli/cli_platform_time.c - -BS_LIB_INCLUDES += $(DBG_DIR)/include -BS_LIB_INCLUDES += $(ARCH_DIR)/include -BS_LIB_INCLUDES += $(FWK_DIR)/include - -include $(BS_DIR)/lib.mk diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 28c2629bd..000000000 --- a/doc/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2021, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# -# Description: -# Makefile for top-level documentation. -# - -MODULE_INCLUDES += $(shell ls -d $(MODULES_DIR)/*/include/ 2>/dev/null) - -MODULE_DOCS += $(shell ls -d $(MODULES_DIR)/*/doc/ 2>/dev/null) -MODULE_DOCS += $(shell ls -d $(PRODUCTS_DIR)/*/module/*/doc/ 2>/dev/null) - -export MODULE_INCLUDES -export MODULE_DOCS - -include $(BS_DIR)/rules.mk - -.PHONY: doc -doc: | $(BUILD_DOC_DIR)/ - $(call show-action,DOC,) - $(DOC) $(DOC_DIR)/Doxyfile diff --git a/tools/build_system/cpu.mk b/tools/build_system/cpu.mk deleted file mode 100644 index f60618ab0..000000000 --- a/tools/build_system/cpu.mk +++ /dev/null @@ -1,65 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_CPU_MK -BS_CPU_MK := 1 - -include $(BS_DIR)/defs.mk - -BS_ARCH_CPU := $(BS_FIRMWARE_CPU) - -# Supported ARMv7-M CPUs -ARMV7M_CPUS := cortex-m3 cortex-m7 - -# Supported ARMv8-A CPUs -ARMV8A_CPUS := cortex-a53 cortex-a57 cortex-a57.cortex-a53 - -ifneq ($(findstring $(BS_FIRMWARE_CPU),$(ARMV7M_CPUS)),) - BS_ARCH_VENDOR := arm - BS_ARCH_ARCH := armv7-m - BS_ARCH_MODE := thumb - - ifeq ($(BS_FIRMWARE_USE_NEWLIB_NANO_SPECS),yes) - # From GCC ARM Embedded 4.7 version and onwards, GCC toolchain includes - # newlib-nano library. Selecting nano.specs results in use of - # newlib-nano as standard C library. This will generate lesser code size - # but with cuts in some features that were added after C89. - LDFLAGS_GNU += --specs=nano.specs - else - LDFLAGS_GNU += --specs=nosys.specs - endif - - # Compiler RT builtins architecture - ifeq ($(BS_FIRMWARE_CPU),cortex-m7) - CLANG_BUILTINS_ARCH := armv7em - else - CLANG_BUILTINS_ARCH := armv7m - endif - - LDFLAGS_ARM += --target=arm-arm-none-eabi - CFLAGS_CLANG += --target=arm-arm-none-eabi - - CFLAGS += -mfloat-abi=soft # No hardware floating point support -else ifneq ($(findstring $(BS_FIRMWARE_CPU),$(ARMV8A_CPUS)),) - BS_ARCH_VENDOR := arm - BS_ARCH_ARCH := armv8-a - - CFLAGS_CLANG += -Wno-asm-operand-widths --target=aarch64-none-elf - CFLAGS_GCC += -mstrict-align - CFLAGS += -fno-builtin - - DEP_CFLAGS_GCC += -DAARCH64 - DEP_ASFLAGS_GCC += -D__ASSEMBLY__ -else ifeq ($(BS_FIRMWARE_CPU),host) - BS_ARCH_VENDOR := none - BS_ARCH_ARCH := host - BS_ARCH_HAS_SUB_SYSTEM_MODE := yes -else - $(erro "$(BS_FIRMWARE_CPU) is not a supported CPU. Aborting...") -endif - -endif diff --git a/tools/build_system/defs.mk b/tools/build_system/defs.mk deleted file mode 100644 index 7d8123cf1..000000000 --- a/tools/build_system/defs.mk +++ /dev/null @@ -1,65 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_DEFS_MK -BS_DEFS_MK := 1 - -# Escape comma character -comma = , - -# -# Suffix used for directories containing resources built with notification -# support enabled -NOTIFICATION_SUFFIX := _nt - -# -# SCP/MCP Software Version -# - -DEFINES += BUILD_VERSION_MAJOR=$(VERSION_MAJOR) -DEFINES += BUILD_VERSION_MINOR=$(VERSION_MINOR) -DEFINES += BUILD_VERSION_PATCH=$(VERSION_PATCH) -DEFINES += BUILD_VERSION_STRING=\"$(VERSION_STRING)\" -DEFINES += BUILD_VERSION_DESCRIBE_STRING=\"$(VERSION_DESCRIBE_STRING)\" - -# -# Returns a path relative to the top directory -# -# Param $1 Target path -# Return String containing the relative path -define relative-path - $(subst $(TOP_DIR)/,,$1) -endef - -# -# Shows an action that is being performed on a path -# -# Param $1 Action string -# Return None. -define show-action - @echo [$1] $(call relative-path, $2) -endef - -# -# Returns the path to the library binary -# -# Param $1 Library name -# Return String containing the library path -define lib_path - $(BUILD_FIRMWARE_DIR)/$1/$(MODE)/lib/lib.a -endef - -# -# Converts input string to uppercase -# -# Param $1 String -# Return Input string in uppercase -define to_upper -$(shell echo $(1) | tr '[:lower:]' '[:upper:]') -endef - -endif diff --git a/tools/build_system/firmware.mk b/tools/build_system/firmware.mk deleted file mode 100644 index df910d828..000000000 --- a/tools/build_system/firmware.mk +++ /dev/null @@ -1,362 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_FIRMWARE_MK -BS_FIRMWARE_MK := 1 - -include $(BS_DIR)/defs.mk -include $(BS_DIR)/toolchain.mk - -$(info == Building firmware $(FIRMWARE)) - -# -# Validate that all mandatory definitions are defined -# -ifeq ($(BS_FIRMWARE_CPU),) - $(error "You must define BS_FIRMWARE_CPU. Aborting...") -endif - - -ifeq ($(BS_FIRMWARE_HAS_NOTIFICATION),) - $(error "You must define BS_FIRMWARE_HAS_NOTIFICATION. \ - Valid options are: 'yes' and 'no'. \ - Aborting...") -endif - -ifneq ($(filter-out yes no,$(BS_FIRMWARE_HAS_NOTIFICATION)),) - $(error "Invalid parameter for BS_FIRMWARE_HAS_NOTIFICATION. \ - Valid options are: 'yes' and 'no'. \ - Aborting...") -endif - -export BS_FIRMWARE_CPU -export BS_FIRMWARE_HAS_NOTIFICATION -export BS_FIRMWARE_USE_NEWLIB_NANO_SPECS - -# -# Generate FIRMWARE_MODULES_LIST and list of excluded APIs for each module in -# the following format: -# -# _DISABLED_APIS = ... -# -# NOTE: and are all in uppercase -# -SPLIT_INPUT = $(subst $(comma), ,$(1)) -GET_MODULE_NAME = $(word 1,$(SPLIT_INPUT)) - -define process_module_entry - export $(call to_upper,$(GET_MODULE_NAME))_DISABLED_APIS = \ - $(call to_upper,$(filter-out $(GET_MODULE_NAME),$(SPLIT_INPUT))) - - FIRMWARE_MODULES_LIST += $(GET_MODULE_NAME) - DEFINES += BUILD_HAS_MOD_$(call to_upper,$(GET_MODULE_NAME))=1 -endef - -$(foreach entry, \ - $(BS_FIRMWARE_MODULES), \ - $(eval $(call process_module_entry, $(entry)))) - -include $(BS_DIR)/cpu.mk - -BUILD_PRODUCT_DIR := $(BUILD_DIR)/product/$(PRODUCT) -BUILD_FIRMWARE_DIR := $(BUILD_PRODUCT_DIR)/$(FIRMWARE) -BIN_DIR := $(BUILD_FIRMWARE_DIR)/$(MODE)/bin -OBJ_DIR := $(BUILD_FIRMWARE_DIR)/$(MODE)/obj -PRODUCT_MODULES_DIR := $(PRODUCT_DIR)/module -FIRMWARE_DIR := $(PRODUCT_DIR)/$(FIRMWARE) - -TARGET := $(BIN_DIR)/$(FIRMWARE) -TARGET_BIN := $(TARGET).bin -TARGET_ELF := $(TARGET).elf -TARGET_SREC := $(TARGET).srec - -ifeq ($(BS_LINKER),ARM) - TARGET_GOAL := $(TARGET_BIN) -else ifeq ($(BS_TOOLCHAIN),LLVM) - TARGET_GOAL := $(TARGET_BIN) -else - TARGET_GOAL := $(TARGET_SREC) -endif - -vpath %.c $(FIRMWARE_DIR) -vpath %.S $(FIRMWARE_DIR) -vpath %.c $(PRODUCT_DIR)/src -vpath %.S $(PRODUCT_DIR)/src - -goal: $(TARGET_GOAL) - -ifneq ($(BS_ARCH_CPU),host) - ifeq ($(BS_LINKER),ARM) - SCATTER_SRC = $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/src/arch.scatter.S - else - SCATTER_SRC = $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/src/arch.ld.S - endif - - SCATTER_PP = $(OBJ_DIR)/ld_preproc.s -endif - -# -# Sources -# -SOURCES = $(BS_FIRMWARE_SOURCES) - -# -# Modules -# -ALL_STANDARD_MODULES := $(patsubst $(MODULES_DIR)/%,%, \ - $(wildcard $(MODULES_DIR)/*)) -ALL_PRODUCT_MODULES := $(patsubst $(PRODUCT_MODULES_DIR)/%,%, \ - $(wildcard $(PRODUCT_MODULES_DIR)/*)) - -# Check for conflicts between module names -CONFLICTING_MODULES := $(filter $(ALL_PRODUCT_MODULES), $(ALL_STANDARD_MODULES)) -ifneq ($(CONFLICTING_MODULES),) - $(error "The following module(s) in '$(PRODUCT)' conflict with modules of \ - the same name in $(MODULES_DIR): $(CONFLICTING_MODULES). \ - Aborting...") -endif - -# Check for missing or invalid modules -MISSING_MODULES := $(filter-out $(ALL_STANDARD_MODULES) $(ALL_PRODUCT_MODULES),\ - $(FIRMWARE_MODULES_LIST) $(BS_FIRMWARE_MODULE_HEADERS_ONLY)) -ifneq ($(MISSING_MODULES),) - $(error "Missing or invalid module(s): $(MISSING_MODULES). Aborting...") -endif - -# Collect both the product and non product-specific module directory paths -MODULE_PATHS := $(wildcard $(MODULES_DIR)/* $(PRODUCT_MODULES_DIR)/*) - -# Filter out the module src/lib directory paths -SOURCE_MODULE_PATHS := $(wildcard $(addsuffix /src,$(MODULE_PATHS))) -LIBRARY_MODULE_PATHS := $(wildcard $(addsuffix /lib,$(MODULE_PATHS))) - -# Pull the module names from the module source directory paths -SOURCE_MODULES := \ - $(patsubst $(MODULES_DIR)/%/src,%,$(SOURCE_MODULE_PATHS)) -SOURCE_MODULES := \ - $(patsubst $(PRODUCT_MODULES_DIR)/%/src,%,$(SOURCE_MODULES)) - -# Select the source modules for the current firmware -SOURCE_MODULES := $(filter $(FIRMWARE_MODULES_LIST),$(SOURCE_MODULES)) - -# Pull the module names from the module library directory paths -LIBRARY_MODULES := \ - $(patsubst $(MODULES_DIR)/%/lib,%,$(LIBRARY_MODULE_PATHS)) -LIBRARY_MODULES := \ - $(patsubst $(PRODUCT_MODULES_DIR)/%/lib,%,$(LIBRARY_MODULES)) - -# Select the library modules for the current firmware -LIBRARY_MODULES := $(filter $(FIRMWARE_MODULES_LIST),$(LIBRARY_MODULES)) - -# Divide libraries into two groups -LIBRARY_MODULES_STANDARD := $(filter $(LIBRARY_MODULES),$(ALL_STANDARD_MODULES)) -LIBRARY_MODULES_PRODUCT := $(filter $(LIBRARY_MODULES),$(ALL_PRODUCT_MODULES)) - -# Modules selected to be built into the firmware -BUILD_STANDARD_MODULES := $(filter $(ALL_STANDARD_MODULES), \ - $(SOURCE_MODULES)) -BUILD_PRODUCT_MODULES := $(filter $(ALL_PRODUCT_MODULES), \ - $(SOURCE_MODULES)) - -# Module selected to have their headers made available for inclusion by other -# modules and their configuration files. These modules are not built into the -# firmware. -HEADER_STANDARD_MODULES := $(filter $(BS_FIRMWARE_MODULE_HEADERS_ONLY), \ - $(ALL_STANDARD_MODULES)) -HEADER_PRODUCT_MODULES := $(filter $(BS_FIRMWARE_MODULE_HEADERS_ONLY), \ - $(ALL_PRODUCT_MODULES)) - -ifneq ($(findstring $(BS_FIRMWARE_CPU),$(ARMV8A_CPUS)),) - INCLUDES += $(OS_DIR)/Include - INCLUDES += $(FREERTOS_DIR)/../../Source/include - INCLUDES += $(FREERTOS_DIR)/../../Source/portable/GCC/ARM_CA53_64_Rcar -else - INCLUDES += $(OS_DIR)/RTX/Source - INCLUDES += $(OS_DIR)/RTX/Include - INCLUDES += $(OS_DIR)/../Core/Include -endif - -ifeq ($(BS_FIRMWARE_HAS_NOTIFICATION),yes) - BUILD_SUFFIX := $(BUILD_SUFFIX)$(NOTIFICATION_SUFFIX) - BUILD_HAS_NOTIFICATION := yes -else - BUILD_HAS_NOTIFICATION := no -endif -export BUILD_HAS_NOTIFICATION - -ifeq ($(BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER),yes) - BUILD_HAS_SCMI_PERF_PLUGIN_HANDLER := yes -else - BUILD_HAS_SCMI_PERF_PLUGIN_HANDLER := no -endif - -ifeq ($(BS_FIRMWARE_HAS_SCMI_NOTIFICATIONS),yes) - BUILD_HAS_SCMI_NOTIFICATIONS := yes -else - BUILD_HAS_SCMI_NOTIFICATIONS := no -endif - -ifeq ($(BS_FIRMWARE_HAS_SCMI_SENSOR_EVENTS),yes) - BUILD_HAS_SCMI_SENSOR_EVENTS := yes -else - BUILD_HAS_SCMI_SENSOR_EVENTS := no -endif - -ifeq ($(BS_FIRMWARE_HAS_CLOCK_TREE_MGMT),yes) - BUILD_HAS_CLOCK_TREE_MGMT := yes -else - BUILD_HAS_CLOCK_TREE_MGMT := no -endif - -ifeq ($(BS_FIRMWARE_HAS_SENSOR_TIMESTAMP),yes) - BUILD_HAS_SENSOR_TIMESTAMP := yes -else - BUILD_HAS_SENSOR_TIMESTAMP := no -endif - -ifeq ($(BS_FIRMWARE_HAS_SENSOR_MULTI_AXIS),yes) - BUILD_HAS_SENSOR_MULTI_AXIS := yes -else - BUILD_HAS_SENSOR_MULTI_AXIS := no -endif - -ifeq ($(BS_FIRMWARE_HAS_SENSOR_EXT_ATTRIBS), yes) - BUILD_HAS_SENSOR_EXT_ATTRIBS := yes -else - BUILD_HAS_SENSOR_EXT_ATTRIBS := no -endif - -ifeq ($(BS_FIRMWARE_HAS_SCMI_SENSOR_V2), yes) - BUILD_HAS_SCMI_SENSOR_V2 := yes - BUILD_HAS_SENSOR_TIMESTAMP := yes - BUILD_HAS_SENSOR_MULTI_AXIS := yes - BUILD_HAS_SENSOR_EXT_ATTRIBS := yes -else - BUILD_HAS_SCMI_SENSOR_V2 := no -endif - -ifeq ($(BS_ARCH_HAS_SUB_SYSTEM_MODE),yes) - BUILD_HAS_SUB_SYSTEM_MODE := yes -else - BUILD_HAS_SUB_SYSTEM_MODE := no -endif - -# Add directories to the list of targets to build -LIB_TARGETS_y += $(patsubst %,$(MODULES_DIR)/%/src, \ - $(BUILD_STANDARD_MODULES)) -LIB_TARGETS_y += $(patsubst %,$(PRODUCT_MODULES_DIR)/%/src, \ - $(BUILD_PRODUCT_MODULES)) - -# Add lib path to the list of modules to link -MODULE_LIBS_y += $(patsubst %, \ - $(BUILD_FIRMWARE_DIR)/module/%$(BUILD_SUFFIX)/$(MODE)/lib/lib.a, \ - $(BUILD_STANDARD_MODULES) $(BUILD_PRODUCT_MODULES)) - -# Add path for libraries -MODULE_LIBS_y += $(foreach module,$(LIBRARY_MODULES_STANDARD), \ - $(MODULES_DIR)/$(module)/lib/mod_$(module).a) -MODULE_LIBS_y += $(foreach module,$(LIBRARY_MODULES_PRODUCT), \ - $(PRODUCT_MODULES_DIR)/$(module)/lib/*.a) - -# Create a list of include directories from the selected modules and libraries -MODULE_INCLUDES += $(patsubst %,$(MODULES_DIR)/%/include, \ - $(BUILD_STANDARD_MODULES) \ - $(LIBRARY_MODULES_STANDARD)) -MODULE_INCLUDES += $(patsubst %,$(PRODUCT_MODULES_DIR)/%/include, \ - $(BUILD_PRODUCT_MODULES) \ - $(LIBRARY_MODULES_PRODUCT)) -MODULE_INCLUDES += $(patsubst %,$(MODULES_DIR)/%/include, \ - $(HEADER_STANDARD_MODULES)) -MODULE_INCLUDES += $(patsubst %,$(PRODUCT_MODULES_DIR)/%/include, \ - $(HEADER_PRODUCT_MODULES)) - -# Default product include directories -PRODUCT_INCLUDES += $(PRODUCT_DIR) -PRODUCT_INCLUDES += $(PRODUCT_DIR)/include - -# Add the firmware directory to the main INCLUDES list -INCLUDES += $(FIRMWARE_DIR) - -# Add module, product and library includes to the main INCLUDES list -export INCLUDES += $(MODULE_INCLUDES) $(PRODUCT_INCLUDES) - -# -# Standard libraries -# -LIB_TARGETS_y += $(ARCH_DIR)/src -LIB_TARGETS_y += $(FWK_DIR)/src - -LIBS_y += $(call lib_path,arch$(BUILD_SUFFIX)) -LIBS_y += $(call lib_path,framework$(BUILD_SUFFIX)) - -# Add the CLI Debugger library -INCLUDES += $(DBG_DIR)/include -ifeq ($(BUILD_HAS_DEBUGGER),yes) - LIB_TARGETS_y += $(DBG_DIR)/src - LIBS_y += $(call lib_path,debugger$(BUILD_SUFFIX)) -endif - -# -# Additional library dependencies -# - -include $(ARCH_DIR)/$(BS_ARCH_VENDOR)/vendor.mk - -LIBS_y += $(BS_LIB_DEPS) - -SOURCES += $(BUILD_FIRMWARE_DIR)/fwk_module_list.c -$(BUILD_FIRMWARE_DIR)/fwk_module_list.c: gen_module -EXTRA_DEP := gen_module -export EXTRA_DEP -export BUILD_FIRMWARE_DIR -export FIRMWARE_MODULES_LIST -export DEFINES - -include $(BS_DIR)/rules.mk - -LDFLAGS_GCC += -Wl,-Map=$(TARGET).map - -ifneq ($(BS_ARCH_CPU),host) - LDFLAGS_GCC += -Wl,-n -endif - -LDFLAGS_GCC += \ - -Wl,--start-group \ - $(BUILTIN_LIBS) \ - $(MODULE_LIBS_y) \ - $(LIBS_y) \ - $(OBJECTS) \ - $(LIBS_GROUP_END) \ - -Wl,--end-group - -LDFLAGS_ARM += \ - $(BUILTIN_LIBS) \ - $(MODULE_LIBS) \ - $(MODULE_LIBS_y) \ - $(LIBS_y) \ - $(OBJECTS) - -.SECONDEXPANSION: - -$(TARGET_ELF): $(LIB_TARGETS_y) $(SCATTER_PP) $(OBJECTS) | $$(@D)/ - $(call show-action,LD,$@) - $(LD) $(LDFLAGS) -o $@ - $(SIZE) $@ - -$(SCATTER_PP): $(SCATTER_SRC) | $$(@D)/ - $(call show-action,GEN,$@) - $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ - -$(TARGET_BIN): $(TARGET_ELF) | $$(@D)/ - $(call show-action,BIN,$@) - $(OBJCOPY) $< $(OCFLAGS) $@ - cp $@ $(BIN_DIR)/firmware.bin - -$(TARGET_SREC): $(TARGET_BIN) - $(call show-action,SREC,$@) - $(OBJCOPY) -O srec $(TARGET_ELF) $(basename $@).srec -endif diff --git a/tools/build_system/lib.mk b/tools/build_system/lib.mk deleted file mode 100644 index ba6b108cd..000000000 --- a/tools/build_system/lib.mk +++ /dev/null @@ -1,63 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_LIB_MK -BS_LIB_MK := 1 - -include $(BS_DIR)/cpu.mk -include $(BS_DIR)/defs.mk - -$(info == Building $(BS_LIB_NAME) for $(BS_FIRMWARE_CPU)) - -SOURCES := $(BS_LIB_SOURCES) -INCLUDES += $(BS_LIB_INCLUDES) -DEFINES += $(BS_LIB_DEFINES) - -ifeq ($(BUILD_FIRMWARE_DIR),) - # We are not building underneath a particular firmware, so we use the target - # CPU to identify where to build this library - BUILD_FIRMWARE_DIR := $(BUILD_DIR)/$(BS_FIRMWARE_CPU) -endif - -# Discard the product-specific path part of product-specific modules -LIB_BASE := $(subst product/$(PRODUCT)/,,$(shell pwd)) - -# Extract the part of the path that will be used as the build subdirectory -LIB_BASE := $(patsubst $(TOP_DIR)/%/src,%,$(LIB_BASE)) - -# -# Generate the name of the list that holds all of the disabled APIS for this -# library -# -DISABLED_APIS_LIST_NAME = \ - $(subst MODULE/,,$(call to_upper,$(LIB_BASE)))_DISABLED_APIS - -# Define BUILD_DISABLE_API_ in this library for every disabled API -$(foreach api, \ - $($(DISABLED_APIS_LIST_NAME)), \ - $(eval DEFINES += BUILD_DISABLE_API_$(api))) - -ifeq ($(BS_FIRMWARE_HAS_NOTIFICATION),yes) - LIB_BASE := $(LIB_BASE)$(NOTIFICATION_SUFFIX) -endif - -LIB_DIR = $(BUILD_FIRMWARE_DIR)/$(LIB_BASE)/$(MODE)/lib -OBJ_DIR = $(BUILD_FIRMWARE_DIR)/$(LIB_BASE)/$(MODE)/obj - -LIB = $(LIB_DIR)/lib.a - -goal: $(LIB) - -INCLUDES += $(shell pwd) -INCLUDES += $(TOP_DIR)/$(LIB_BASE)/include - -INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/include -INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/include - -include $(BS_DIR)/rules.mk - -endif diff --git a/tools/build_system/rules.mk b/tools/build_system/rules.mk deleted file mode 100644 index 9c04d2bce..000000000 --- a/tools/build_system/rules.mk +++ /dev/null @@ -1,366 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_RULES_MK -BS_RULES_MK := 1 - -include $(BS_DIR)/defs.mk -include $(BS_DIR)/cpu.mk - -ifeq ($(BUILD_HAS_NOTIFICATION),yes) - DEFINES += BUILD_HAS_NOTIFICATION -endif - -ifeq ($(BUILD_HAS_SCMI_NOTIFICATIONS),yes) - DEFINES += BUILD_HAS_SCMI_NOTIFICATIONS -endif - -ifeq ($(BUILD_HAS_SCMI_PERF_FAST_CHANNELS),yes) - DEFINES += BUILD_HAS_SCMI_PERF_FAST_CHANNELS -endif - -ifeq ($(BUILD_HAS_SCMI_PERF_PLUGIN_HANDLER),yes) - DEFINES += BUILD_HAS_SCMI_PERF_PLUGIN_HANDLER -endif - -ifeq ($(BUILD_HAS_SCMI_SENSOR_EVENTS),yes) - ifeq ($(BUILD_HAS_SCMI_NOTIFICATIONS),yes) - DEFINES += BUILD_HAS_SCMI_SENSOR_EVENTS - endif -endif - -ifeq ($(BUILD_HAS_CLOCK_TREE_MGMT),yes) - DEFINES += BUILD_HAS_CLOCK_TREE_MGMT -endif - -ifeq ($(BUILD_HAS_SCMI_SENSOR_V2),yes) - DEFINES += BUILD_HAS_SCMI_SENSOR_V2 -endif - -ifeq ($(BUILD_HAS_SENSOR_TIMESTAMP),yes) - DEFINES += BUILD_HAS_SENSOR_TIMESTAMP -endif - -ifeq ($(BUILD_HAS_SENSOR_MULTI_AXIS),yes) - DEFINES += BUILD_HAS_SENSOR_MULTI_AXIS -endif - -ifeq ($(BUILD_HAS_SENSOR_EXT_ATTRIBS),yes) - DEFINES += BUILD_HAS_SENSOR_EXT_ATTRIBS -endif - -ifeq ($(BUILD_HAS_SUB_SYSTEM_MODE),yes) - DEFINES += BUILD_HAS_SUB_SYSTEM_MODE -endif - -export AS := $(CC) -export LD := $(CC) - -include $(BS_DIR)/toolchain.mk - -ifeq ($(BS_LINKER),ARM) - export AR := $(shell $(CC) --print-prog-name armar) - export OBJCOPY := $(shell $(CC) --print-prog-name fromelf) - export SIZE := $(shell $(CC) --print-prog-name size) -else ifeq ($(BS_TOOLCHAIN),LLVM) - export LLVM_BIN_DIR := $(shell $(CC) --print-resource-dir)/../../../bin - export AR := $(LLVM_BIN_DIR)/llvm-ar - export OBJCOPY := $(LLVM_BIN_DIR)/llvm-objcopy - export SIZE := $(LLVM_BIN_DIR)/llvm-size - - # Clang currently does not use LLD for all the ARM targets, - # therefore we are enforcing the use of it manually. - export LD := $(LLVM_BIN_DIR)/ld.lld -else - export AR := $(shell $(CC) --print-prog-name ar) - export OBJCOPY := $(shell $(CC) --print-prog-name objcopy) - export SIZE := $(shell $(CC) --print-prog-name size) -endif - -# -# GCC-specific optimization levels for debug and release modes -# - -DEFAULT_OPT_GCC_DEBUG := g -DEFAULT_OPT_GCC_RELEASE := 2 - -# -# Compiler options used when building for the host -# -ifeq ($(BS_ARCH_ARCH),host) - CFLAGS += -mtune=native - ASFLAGS_GCC += -mtune=native - LDFLAGS_GCC += -mtune=native - - DEFINES += BUILD_HOST - -# -# Compiler options used when cross compiling -# -else - LDFLAGS_ARM += -Wl,--scatter=$(SCATTER_PP) - LDFLAGS_GCC += -Wl,--script=$(SCATTER_PP) - - ifeq ($(BS_TOOLCHAIN),LLVM) - # big.LITTLE tuning is not supported by LLVM - ifneq ($(findstring .,$(BS_ARCH_CPU)),) - CFLAGS += -march=$(BS_ARCH_ARCH) - ASFLAGS_GCC += -march=$(BS_ARCH_ARCH) - else - CFLAGS += -mcpu=$(BS_ARCH_CPU) - ASFLAGS_GCC += -mcpu=$(BS_ARCH_CPU) - endif - else - CFLAGS += -mcpu=$(BS_ARCH_CPU) - ASFLAGS_GCC += -mcpu=$(BS_ARCH_CPU) - LDFLAGS_GCC += -mcpu=$(BS_ARCH_CPU) - LDFLAGS_ARM += -mcpu=$(BS_ARCH_CPU) - endif - - # Optional architectural mode parameter - ifneq ($(BS_ARCH_MODE),) - CFLAGS += -m$(BS_ARCH_MODE) - ASFLAGS_GCC += -m$(BS_ARCH_MODE) - LDFLAGS_GNU += -m$(BS_ARCH_MODE) - LDFLAGS_ARM += -m$(BS_ARCH_MODE) - endif -endif - -# -# Warning flags -# - -# The following flags are enforced to minimise unwitting uses of undefined -# behaviour in the code base, which can open security holes. Each flag applies a -# set of warnings, and any warnings that do occur are upgraded to errors to -# prevent the firmware from building. -CFLAGS += -Werror -CFLAGS += -Wall -CFLAGS += -Wextra - -CFLAGS += -Wno-error=deprecated-declarations -CFLAGS += -Wno-unused-parameter - -# GCC is not currently consistent in how it applies this warning, but this flag -# should be removed should we move to a version that can build the firmware -# without it. -CFLAGS += -Wno-missing-field-initializers - -# Place functions and data into their own sections. This allows the linker to -# strip out functions with no references. -CFLAGS += -ffunction-sections -fdata-sections -LDFLAGS_GCC += -Wl,--gc-sections -LDFLAGS_ARM += -Wl,--remove - -# Arm Compiler 6 uses dollar symbols in its linker-defined symbol names -CFLAGS_CLANG += -Wno-dollar-in-identifier-extension - -CFLAGS += -g -CFLAGS += -std=gnu11 -CFLAGS_CLANG += -fshort-enums # Required by RTX - -CFLAGS += -fno-exceptions - -CPPFLAGS += -x c -E -P - -DEP_CFLAGS_GCC = -MD -MP - -ASFLAGS_GCC += -x -ASFLAGS_GCC += assembler-with-cpp -ASFLAGS_GCC += -g - -ARFLAGS_GCC = -rc - -LDFLAGS_GCC += -Wl,--cref - -LDFLAGS_GCC += -Wl,--undefined=arch_exceptions -LDFLAGS_ARM += -Wl,--undefined=arch_exceptions - -ifeq ($(BS_TOOLCHAIN),LLVM) - ifneq ($(BS_ARCH_ARCH),armv8-a) - ifeq ($(SYSROOT_CC),) - $(error "You must define SYSROOT_CC. Aborting...") - endif - - SYSROOT := $(shell $(SYSROOT_CC) -print-sysroot) - SYSROOT_CMD := $(SYSROOT_CC) -mcpu=$(BS_ARCH_CPU) - - LDFLAGS_GCC += -L$(SYSROOT)/lib/$(shell $(SYSROOT_CMD) -print-multi-directory) - - BUILTIN_LIBS_GCC := \ - $(shell $(SYSROOT_CMD) --print-file-name=crti.o) \ - $(shell $(SYSROOT_CMD) --print-file-name=crtbegin.o) \ - $(shell $(SYSROOT_CMD) --print-file-name=crt0.o) \ - $(shell $(SYSROOT_CMD) --print-file-name=crtend.o) \ - $(shell $(SYSROOT_CMD) --print-file-name=crtn.o) - else - ifeq ($(SYSROOT),) - $(error "You must define SYSROOT. Aborting...") - endif - - LDFLAGS_GCC += -L$(SYSROOT)/lib - endif - - CFLAGS += --sysroot=$(SYSROOT) -I$(SYSROOT)/include -endif - -ifneq ($(BS_ARCH_ARCH),armv8-a) - ifeq ($(BS_TOOLCHAIN),LLVM) - ifeq ($(BS_FIRMWARE_USE_NEWLIB_NANO_SPECS),yes) - LIBS_GROUP_END += -lc_nano - else - LIBS_GROUP_END += -lc -lnosys - endif - - LDFLAGS_GCC += -L$(shell $(CC) -print-resource-dir)/lib/baremetal - - BUILTIN_LIBS_GCC += -nostdlib -lclang_rt.builtins-$(CLANG_BUILTINS_ARCH) - else - BUILTIN_LIBS_GCC := -lc -lgcc - endif -else - BUILTIN_LIBS_GCC := -nostdlib -endif - -ifeq ($(MODE),release) - O ?= $(DEFAULT_OPT_GCC_RELEASE) - LOG_LEVEL ?= $(DEFAULT_LOG_LEVEL_RELEASE) - - # Disable assertions in release mode - DEFINES += NDEBUG -else - O ?= $(DEFAULT_OPT_GCC_DEBUG) - LOG_LEVEL ?= $(DEFAULT_LOG_LEVEL_DEBUG) - - DEFINES += BUILD_MODE_DEBUG -endif - -DEFINES += FWK_LOG_LEVEL=FWK_LOG_LEVEL_$(LOG_LEVEL) - -ifeq ($(BUILD_HAS_DEBUGGER),yes) - DEFINES += BUILD_HAS_DEBUGGER -endif - -# -# Always include the architecture librarie -# - -INCLUDES += $(ARCH_DIR)/include -INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/include -INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/include - -ifeq ($(BS_ARCH_ARCH),armv8-a) - INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/include/common - INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/include/lib - INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/include/lib/libc - INCLUDES += $(ARCH_DIR)/$(BS_ARCH_VENDOR)/$(BS_ARCH_ARCH)/include/lib/libc/aarch64 -endif - -# -# Always include the framework library -# -INCLUDES += $(FWK_DIR)/include - -# -# CMSIS library -# -ifneq ($(BS_ARCH_ARCH),armv8-a) - INCLUDES += $(CMSIS_DIR)/Include -endif - -# -# Toolchain-independent flags -# -CFLAGS += -O$(O) -CFLAGS += $(addprefix -I,$(INCLUDES)) $(addprefix -D,$(DEFINES)) -ASFLAGS += $(addprefix -I,$(INCLUDES)) $(addprefix -D,$(DEFINES)) - -# -# Assign toolchain-specific flags -# -ASFLAGS += $(ASFLAGS_GCC) -ARFLAGS = $(ARFLAGS_GCC) - -ifeq ($(BS_TOOLCHAIN),LLVM) - # Remove all pass to linker flags as we are using the linker directly - TO_REMOVE := -Wl, - LDFLAGS += $(subst $(TO_REMOVE),,$(LDFLAGS_$(BS_LINKER))) $(LDFLAGS_$(BS_TOOLCHAIN)) -else - LDFLAGS += $(LDFLAGS_$(BS_LINKER)) $(LDFLAGS_$(BS_TOOLCHAIN)) -endif - -DEP_CFLAGS = $(DEP_CFLAGS_GCC) -DEP_ASFLAGS = $(DEP_ASFLAGS_GCC) -BUILTIN_LIBS = $(BUILTIN_LIBS_$(BS_LINKER)) - -CFLAGS += $(CFLAGS_$(BS_COMPILER)) - -ifeq ($(BS_LINKER),ARM) - OCFLAGS += --bin --output -else - OCFLAGS += -O binary -endif - -# -# Variables for targets -# -OBJECTS := $(addprefix $(OBJ_DIR)/, \ - $(patsubst %.S,%.o, \ - $(patsubst %.s,%.o, \ - $(patsubst %.c,%.o, \ - $(patsubst $(BUILD_FIRMWARE_DIR)%,%, \ - $(SOURCES)))))) - -# -# Module code generation -# -.PHONY: gen_module -gen_module: $(TOOLS_DIR)/gen_module_code.py | $(BUILD_FIRMWARE_DIR)/ - $(TOOLS_DIR)/gen_module_code.py --path $(BUILD_FIRMWARE_DIR) \ - $(FIRMWARE_MODULES_LIST) - -# Include BUILD_FIRMWARE_DIR in the compilation -export INCLUDES += $(BUILD_FIRMWARE_DIR) - -# -# Targets -# - -.SECONDEXPANSION: - -.PHONY: $(LIB_TARGETS_y) -$(LIB_TARGETS_y): - $(MAKE) -C $@ - -$(LIB): $(OBJECTS) | $$(@D)/ - $(call show-action,AR,$@) - $(AR) $(ARFLAGS) $@ $(OBJECTS) - -$(OBJ_DIR)/%.o: %.c $(EXTRA_DEP) | $$(@D)/ - $(call show-action,CC,$<) - $(CC) -c $(CFLAGS) $(DEP_CFLAGS) $< -o $@ - -$(OBJ_DIR)/%.o: $(BUILD_FIRMWARE_DIR)%.c $(EXTRA_DEP) | $$(@D)/ - $(call show-action,CC,$<) - $(CC) -c $(CFLAGS) $(DEP_CFLAGS) $< -o $@ - -$(OBJ_DIR)/%.o: %.s | $$(@D)/ - $(call show-action,AS,$<) - $(AS) -c $(ASFLAGS) $(DEP_CFLAGS) $< -o $@ - -$(OBJ_DIR)/%.o: %.S | $$(@D)/ - $(call show-action,AS,$<) - $(AS) -c $(CFLAGS) $(DEP_CFLAGS) $(DEP_ASFLAGS) $< -o $@ - -$(BUILD_PATH)%/: - $(call show-action,MD,$@) - $(MD) $@ - -# Include dependency files --include $(OBJECTS:%.o=%.d) - -endif diff --git a/tools/build_system/test.mk b/tools/build_system/test.mk deleted file mode 100644 index ff305cd66..000000000 --- a/tools/build_system/test.mk +++ /dev/null @@ -1,71 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2015-2021, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_TEST_MK -BS_TEST_MK := 1 - -# Include folders -INCLUDES := $(FWK_DIR)/include -INCLUDES += $(FWK_DIR)/src -INCLUDES += $(FWK_DIR)/test -INCLUDES += $(OS_DIR)/Include -INCLUDES += $(OS_DIR)/RTX/Include - -# Default C flags -CFLAGS += -g3 -CFLAGS += -Wall -CFLAGS += -Wextra -CFLAGS += -Werror -CFLAGS += -Wno-missing-field-initializers -CFLAGS += -Wno-error=deprecated-declarations -CFLAGS += -Wno-unused-parameter -CFLAGS += -Wno-strict-aliasing -CFLAGS += -std=gnu11 -CFLAGS += $(addprefix -I,$(INCLUDES)) - -CFLAGS += -DBUILD_MODE_DEBUG -CFLAGS += -DBUILD_TESTS - -# Search path for C sources -VPATH := $(FWK_DIR)/test:$(FWK_DIR)/src - -# Define test directory -TEST_DIR := $(BUILD_DIR)/test - -# Create list of test targets -TEST_TARGETS = $(foreach test,$(TESTS),$(addprefix $(TEST_DIR)/$(test)/,$(test))) - -# Import utilities -include $(BS_DIR)/defs.mk - -# Template for the test rule -define TEST_template -$(1)_LDFLAGS := $(addprefix -Wl$(comma)-wrap=, $($(1)_WRAP)) -$(1)_OBJ := $(patsubst %.c, $(TEST_DIR)/$(1)/%.o, $(COMMON_SRC) $($(1)_SRC) $(1).c) - -$(TEST_DIR)/$(1)/%.o: %.c | $(TEST_DIR)/$(1)/ - $$(call show-action,CC,$$@) - $$(CC) $$(CFLAGS) $$($(1)_CFLAGS) $$^ -c -o $$@ - -.PRECIOUS: $(TEST_DIR)/$(1)/$(1) -$(TEST_DIR)/$(1)/$(1): $$($(1)_OBJ) | $(TEST_DIR)/$(1)/ - $$(call show-action,LD,$$@) - $$(CC) -o $$@ $$^ $$($(1)_LDFLAGS) - $$(call show-action,RUN,$$@) - $$@ -endef - -# Create rules for each test -$(foreach test,$(TESTS),$(eval $(call TEST_template,$(test)))) - -all: $(TEST_TARGETS) - -# Create output directory -$(TEST_DIR)/%/: - $(call show-action,MD,$@) - $(MD) $@ -endif diff --git a/tools/build_system/toolchain.mk b/tools/build_system/toolchain.mk deleted file mode 100644 index 3353dc161..000000000 --- a/tools/build_system/toolchain.mk +++ /dev/null @@ -1,28 +0,0 @@ -# -# Arm SCP/MCP Software -# Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause -# - -ifndef BS_TOOLCHAIN_MK -BS_TOOLCHAIN_MK := 1 - -_compiler_version ?= $(shell $(CC) --version) - -ifneq ($(findstring armclang,$(_compiler_version)),) - BS_COMPILER := CLANG - BS_LINKER := ARM -else ifneq ($(findstring clang,$(_compiler_version)),) - BS_COMPILER := CLANG - BS_TOOLCHAIN := LLVM - # LLVM GCC-compatible lld - BS_LINKER := GCC -else - BS_COMPILER := GCC - BS_TOOLCHAIN := GNU - # GNU GCC ld - BS_LINKER := GCC -endif - -endif