blob: f501550762db58bf45e77a60453a24d818f75431 [file] [log] [blame]
Roman Okhrimenko4bc28102021-02-01 19:31:41 +02001################################################################################
2# \file common_libs.mk
3# \version 1.0
4#
5# \brief
6# Makefile to describe libraries needed for Cypress MCUBoot based applications.
7#
8################################################################################
9# \copyright
10# Copyright 2018-2021 Cypress Semiconductor Corporation
11# SPDX-License-Identifier: Apache-2.0
12#
13# Licensed under the Apache License, Version 2.0 (the "License");
14# you may not use this file except in compliance with the License.
15# You may obtain a copy of the License at
16#
17# http://www.apache.org/licenses/LICENSE-2.0
18#
19# Unless required by applicable law or agreed to in writing, software
20# distributed under the License is distributed on an "AS IS" BASIS,
21# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22# See the License for the specific language governing permissions and
23# limitations under the License.
24################################################################################
25
26include host.mk
27
28################################################################################
29# PDL library
30################################################################################
Roman Okhrimenko977b3752022-03-31 14:40:48 +030031CY_LIBS_PATH = $(PRJ_DIR)/libs
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020032
Roman Okhrimenko977b3752022-03-31 14:40:48 +030033# Collect common source files for PDL
34SOURCES_PDL := $(wildcard $(CY_LIBS_PATH)/mtb-pdl-cat1/drivers/source/*.c)
35SOURCES_PDL += $(wildcard $(CY_LIBS_PATH)/mtb-pdl-cat1/devices/COMPONENT_CAT$(PDL_CAT_SUFFIX)/source/*.c)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020036
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +000037COMPONENT_CORE_PATH := $(PRJ_DIR)/platforms/BSP/$(FAMILY)/system/COMPONENT_$(CORE)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020038
39# PDL startup related files
Roman Okhrimenko977b3752022-03-31 14:40:48 +030040SYSTEM_FILE_NAME := $(PLATFORM_SYSTEM_FILE_NAME)
41SOURCES_PDL_SYSTEM := $(COMPONENT_CORE_PATH)/$(SYSTEM_FILE_NAME)
42SOURCES_PDL_STARTUP := $(COMPONENT_CORE_PATH)/$(PLATFORM_SOURCES_PDL_STARTUP)
43
44# Collect source files for Retarget-io
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030045SOURCES_RETARGET_IO := $(wildcard $(PRJ_DIR)/libs/retarget-io/*.c)
Roman Okhrimenko977b3752022-03-31 14:40:48 +030046
47# HAL source files
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030048SOURCES_HAL := $(wildcard $(PRJ_DIR)/libs/mtb-hal-cat1/source/*.c)
49SOURCES_HAL += $(wildcard $(PRJ_DIR)/libs/mtb-hal-cat1/COMPONENT_CAT$(PDL_CAT_SUFFIX)/source/pin_packages/*.c)
50SOURCES_HAL += $(wildcard $(PRJ_DIR)/libs/mtb-hal-cat1/COMPONENT_CAT$(PDL_CAT_SUFFIX)/source/triggers/*.c)
Roman Okhrimenko977b3752022-03-31 14:40:48 +030051
52# Add platform folder to build
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +000053SOURCES_PLATFORM := $(wildcard $(PRJ_DIR)/platforms/BSP/$(FAMILY)/*.c)
54SOURCES_PLATFORM += $(wildcard $(PRJ_DIR)/platforms/security_counter/*.c)
55SOURCES_PLATFORM += $(wildcard $(PRJ_DIR)/platforms/security_counter/$(FAMILY)/*.c)
Roman Okhrimenko883cb5b2024-03-28 17:22:33 +020056ifneq ($(APP_NAME), BlinkyApp)
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030057SOURCES_PLATFORM += $(wildcard $(PRJ_DIR)/platforms/memory/*.c)
58SOURCES_PLATFORM += $(wildcard $(PRJ_DIR)/platforms/memory/$(FAMILY)/*.c)
Roman Okhrimenko883cb5b2024-03-28 17:22:33 +020059endif
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030060ifeq ($(USE_EXTERNAL_FLASH), 1)
61SOURCES_PLATFORM += $(wildcard $(PRJ_DIR)/platforms/memory/external_memory/*.c)
62SOURCES_PLATFORM += $(wildcard $(PRJ_DIR)/platforms/memory/$(FAMILY)/flash_qspi/*.c)
63endif
64SOURCES_PLATFORM += $(PLATFORM_SOURCES_FLASH)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020065
66# PDL related include directories
Roman Okhrimenko977b3752022-03-31 14:40:48 +030067INCLUDE_DIRS_PDL := $(CY_LIBS_PATH)/mtb-pdl-cat1/drivers/include
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030068INCLUDE_DIRS_PDL += $(CY_LIBS_PATH)/mtb-pdl-cat1/drivers/third_party/ethernet/include
Roman Okhrimenko977b3752022-03-31 14:40:48 +030069INCLUDE_DIRS_PDL += $(CY_LIBS_PATH)/mtb-pdl-cat1/devices/COMPONENT_CAT$(PDL_CAT_SUFFIX)/include/ip
70INCLUDE_DIRS_PDL += $(CY_LIBS_PATH)/mtb-pdl-cat1/devices/COMPONENT_CAT$(PDL_CAT_SUFFIX)/include
Roman Okhrimenko977b3752022-03-31 14:40:48 +030071INCLUDE_DIRS_PDL += $(CY_LIBS_PATH)/mtb-pdl-cat1/devices/COMPONENT_CAT$(PDL_CAT_SUFFIX)/templates/COMPONENT_MTB
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020072
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030073# HAL related include directories
74INCLUDE_DIRS_HAL := $(CY_LIBS_PATH)/mtb-hal-cat1/include
75INCLUDE_DIRS_HAL += $(CY_LIBS_PATH)/mtb-hal-cat1/include_pvt
76INCLUDE_DIRS_HAL += $(CY_LIBS_PATH)/mtb-hal-cat1/COMPONENT_CAT$(PDL_CAT_SUFFIX)/include/
77INCLUDE_DIRS_HAL += $(CY_LIBS_PATH)/mtb-hal-cat1/COMPONENT_CAT$(PDL_CAT_SUFFIX)/include/pin_packages
78INCLUDE_DIRS_HAL += $(CY_LIBS_PATH)/mtb-hal-cat1/COMPONENT_CAT$(PDL_CAT_SUFFIX)/include/triggers
79
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +000080INCLUDE_DIRS_CMSIS += $(CY_LIBS_PATH)/cmsis/Core/Include
81
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020082# core-libs related include directories
Roman Okhrimenko977b3752022-03-31 14:40:48 +030083INCLUDE_DIRS_CORE_LIB := $(CY_LIBS_PATH)/core-lib/include
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020084
Roman Okhrimenko977b3752022-03-31 14:40:48 +030085# PDL startup related files
86INCLUDE_DIRS_PDL_STARTUP += $(COMPONENT_CORE_PATH)/HEADER_FILES
Roman Okhrimenko4bc28102021-02-01 19:31:41 +020087
Roman Okhrimenko977b3752022-03-31 14:40:48 +030088# Retarget-io related include directories
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030089INCLUDE_DIRS_RETARGET_IO := $(THIS_APP_PATH)/retarget-io
Roman Okhrimenko977b3752022-03-31 14:40:48 +030090
91# Include platforms folder
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030092INCLUDE_DIRS_PLATFORM := $(PRJ_DIR)/platforms/BSP/$(FAMILY)
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +000093INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/security_counter/$(FAMILY)
94INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/security_counter
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030095INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/memory
96INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/memory/flash_map_backend
97INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/memory/$(FAMILY)
98INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/memory/$(FAMILY)/include
99ifeq ($(USE_EXTERNAL_FLASH), 1)
100INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/memory/external_memory
101INCLUDE_DIRS_PLATFORM += $(PRJ_DIR)/platforms/memory/$(FAMILY)/flash_qspi
102endif
103INCLUDE_DIRS_PLATFORM += $(PLATFORM_INCLUDE_DIRS_FLASH)
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +0000104INCLUDE_DIRS_PLATFORM += $(PLATFORM_INCLUDE_DIRS_PDL_STARTUP)
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300105
106# Assembler startup file for platform
107ASM_FILES_STARTUP := $(PLATFORM_STARTUP_FILE)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200108
109# Collected source files for libraries
110SOURCES_LIBS := $(SOURCES_PDL)
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +0300111SOURCES_LIBS += $(SOURCES_HAL)
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300112SOURCES_LIBS += $(SOURCES_PDL_SYSTEM)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200113SOURCES_LIBS += $(SOURCES_PDL_STARTUP)
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300114SOURCES_LIBS += $(SOURCES_PDL_RUNTIME)
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300115SOURCES_LIBS += $(SOURCES_RETARGET_IO)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200116
117# Collected include directories for libraries
118INCLUDE_DIRS_LIBS := $(addprefix -I,$(INCLUDE_DIRS_PDL))
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +0300119INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_HAL))
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +0000120INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_CMSIS))
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200121INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_PDL_STARTUP))
122INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_CORE_LIB))
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300123INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_HAL))
124INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_PLATFORM))
125INCLUDE_DIRS_LIBS += $(addprefix -I,$(INCLUDE_DIRS_RETARGET_IO))
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200126
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300127# Syslib files
Dovhal Artem (CSUKR CSS ICW SW FW 1)f7a3d1b2022-04-01 15:07:37 +0000128ASM_FILES_PDL += $(CY_LIBS_PATH)/mtb-pdl-cat1/drivers/source/TOOLCHAIN_GCC_ARM/cy_syslib_ext.S
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200129
130ASM_FILES_LIBS := $(ASM_FILES_PDL)
131
132# Add define for PDL version
133DEFINES_PDL += -DPDL_VERSION=$(PDL_VERSION)
134
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300135DEFINES_LIBS := $(PLATFORM_DEFINES)
136DEFINES_LIBS += $(PLATFORM_DEFINES_LIBS)
Roman Okhrimenko4bc28102021-02-01 19:31:41 +0200137DEFINES_LIBS += $(DEFINES_PDL)
Roman Okhrimenko977b3752022-03-31 14:40:48 +0300138DEFINES_LIBS += -DCOMPONENT_CAT1
139DEFINES_LIBS += -DCOMPONENT_CAT$(PDL_CAT_SUFFIX)
140
141###############################################################################
142# Print debug information about all settings used and/or set in this file
143ifeq ($(VERBOSE), 1)
144$(info #### common_libs.mk ####)
145$(info ASM_FILES_LIBS --> $(ASM_FILES_LIBS))
146$(info ASM_FILES_PDL <-> $(ASM_FILES_PDL))
147$(info ASM_FILES_STARTUP --> $(ASM_FILES_STARTUP))
148$(info COMPONENT_CORE_PATH <-> $(COMPONENT_CORE_PATH))
149$(info CORE <-- $(CORE))
150$(info CY_LIBS_PATH <-- $(CY_LIBS_PATH))
151$(info DEFINES_LIBS --> $(DEFINES_LIBS))
152$(info DEFINES_PDL <-> $(DEFINES_PDL))
153$(info FAMILY <-- $(FAMILY))
154$(info INCLUDE_DIRS_CORE_LIB <-> $(INCLUDE_DIRS_CORE_LIB))
155$(info INCLUDE_DIRS_HAL <-> $(INCLUDE_DIRS_HAL))
156$(info INCLUDE_DIRS_LIBS --> $(INCLUDE_DIRS_LIBS))
157$(info INCLUDE_DIRS_PDL <-> $(INCLUDE_DIRS_PDL))
158$(info INCLUDE_DIRS_PDL_STARTUP <-> $(INCLUDE_DIRS_PDL_STARTUP))
159$(info INCLUDE_DIRS_PLATFORM <-> $(INCLUDE_DIRS_PLATFORM))
160$(info INCLUDE_DIRS_RETARGET_IO <-> $(INCLUDE_DIRS_RETARGET_IO))
161$(info PDL_CAT_SUFFIX <-- $(PDL_CAT_SUFFIX))
162$(info PDL_VERSION <-- $(PDL_VERSION))
163$(info PLATFORM_DEFINES <-- $(PLATFORM_DEFINES))
164$(info PLATFORM_DEFINES_LIBS <-- $(PLATFORM_DEFINES_LIBS))
165$(info PLATFORM_INCLUDE_DIRS_HAL <-- $(PLATFORM_INCLUDE_DIRS_HAL))
166$(info PLATFORM_INCLUDE_DIRS_RETARGET_IO <-- $(PLATFORM_INCLUDE_DIRS_RETARGET_IO))
167$(info PLATFORM_SOURCES_HAL <-- $(PLATFORM_SOURCES_HAL))
168$(info PLATFORM_SOURCES_PDL_STARTUP <-- $(PLATFORM_SOURCES_PDL_STARTUP))
169$(info PLATFORM_SOURCES_RETARGET_IO <-- $(PLATFORM_SOURCES_RETARGET_IO))
170$(info PLATFORM_STARTUP_FILE <-- $(PLATFORM_STARTUP_FILE))
171$(info PLATFORM_SYSTEM_FILE_NAME <-- $(PLATFORM_SYSTEM_FILE_NAME))
172$(info PRJ_DIR <-- $(PRJ_DIR))
173$(info SOURCES_HAL <-> $(SOURCES_HAL))
174$(info SOURCES_LIBS --> $(SOURCES_LIBS))
175$(info SOURCES_PDL <-> $(SOURCES_PDL))
176$(info SOURCES_PDL_RUNTIME <-- $(SOURCES_PDL_RUNTIME))
177$(info SOURCES_PDL_STARTUP <-> $(SOURCES_PDL_STARTUP))
178$(info SOURCES_PDL_SYSTEM <-> $(SOURCES_PDL_SYSTEM))
179$(info SOURCES_PLATFORM --> $(SOURCES_PLATFORM))
180$(info SOURCES_RETARGET_IO <-> $(SOURCES_RETARGET_IO))
181$(info SYSTEM_FILE_NAME <-> $(SYSTEM_FILE_NAME))
182endif