blob: 6deac9d0f1ce148a506f41e2405edcc21313ce83 [file] [log] [blame]
Harry Liebelf58ad362014-01-10 18:00:33 +00001#
Chris Kayc3273702025-01-13 15:57:32 +00002# Copyright (c) 2014-2025, Arm Limited and Contributors. All rights reserved.
Harry Liebelf58ad362014-01-10 18:00:33 +00003#
dp-arm82cb2c12017-05-03 09:38:09 +01004# SPDX-License-Identifier: BSD-3-Clause
Harry Liebelf58ad362014-01-10 18:00:33 +00005#
6
Evan Lloydf1477d42015-12-02 18:33:55 +00007MAKE_HELPERS_DIRECTORY := ../../make_helpers/
8include ${MAKE_HELPERS_DIRECTORY}build_macros.mk
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +01009include ${MAKE_HELPERS_DIRECTORY}build-rules.mk
Chris Kay7c4e1ee2024-05-02 17:52:37 +000010include ${MAKE_HELPERS_DIRECTORY}common.mk
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040011include ${MAKE_HELPERS_DIRECTORY}defaults.mk
Chris Kaycc277de2023-10-20 09:17:33 +000012include ${MAKE_HELPERS_DIRECTORY}toolchain.mk
Evan Lloydf1477d42015-12-02 18:33:55 +000013
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010014FIPTOOL_SOURCES := fiptool.c tbbr_config.c
Olivier Deprez4d4fec22023-08-31 11:46:54 +020015STATIC ?= 0
Harry Liebelf58ad362014-01-10 18:00:33 +000016
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010017FIPTOOL_DEFINES += _GNU_SOURCE _XOPEN_SOURCE=700
18FIPTOOL_CFLAGS := -Wall -Werror -pedantic -std=c99
Jeenu Viswambharan2f2cef42014-02-19 09:38:18 +000019ifeq (${DEBUG},1)
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010020 FIPTOOL_CFLAGS += -g -O0 -DDEBUG
Harry Liebelf58ad362014-01-10 18:00:33 +000021else
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010022 FIPTOOL_CFLAGS += -O2
Harry Liebelf58ad362014-01-10 18:00:33 +000023endif
Juan Pablo Conde9bc52d32022-03-02 18:10:08 -050024
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010025FIPTOOL_INCLUDE_DIRS := ../../include/tools_share
Olivier Deprez4d4fec22023-08-31 11:46:54 +020026
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010027FIPTOOL_DEFINES += STATIC=$(STATIC)
Olivier Deprez4d4fec22023-08-31 11:46:54 +020028
29ifeq (${STATIC},1)
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010030FIPTOOL_LDFLAGS := -static
Olivier Deprez4d4fec22023-08-31 11:46:54 +020031else
32OPENSSL_DIR := /usr
33
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040034# Select OpenSSL version flag according to the OpenSSL build selected
35# from setting the OPENSSL_DIR path.
36$(eval $(call SELECT_OPENSSL_API_VERSION))
37
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040038# USING_OPENSSL3 flag will be added to the HOSTCCFLAGS variable with the proper
39# computed value.
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010040FIPTOOL_DEFINES += USING_OPENSSL3=$(USING_OPENSSL3)
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040041
Juan Pablo Conde9bc52d32022-03-02 18:10:08 -050042# Include library directories where OpenSSL library files are located.
43# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or
44# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/
45# directory. However, for a local build of OpenSSL, the built binaries are
46# located under the main project directory (i.e.: ${OPENSSL_DIR}, not
47# ${OPENSSL_DIR}/lib/).
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010048FIPTOOL_LDFLAGS := -L${OPENSSL_DIR}/lib -L${OPENSSL_DIR} -lcrypto
49FIPTOOL_INCLUDE_DIRS += ${OPENSSL_DIR}/include
Olivier Deprez4d4fec22023-08-31 11:46:54 +020050endif # STATIC
51
Pankaj Gupta3527d6d2020-12-09 14:02:38 +053052ifneq (${PLAT},)
53TF_PLATFORM_ROOT := ../../plat/
54include ${MAKE_HELPERS_DIRECTORY}plat_helpers.mk
Raef Coles034a2e32023-02-01 15:55:08 +000055COMBINED_PATH_FRAG := plat_fiptool/
56PLAT_FIPTOOL_HELPER_MK := $(foreach path_frag,$(subst /, ,$(patsubst ../../plat/%/,%,${PLAT_DIR})),\
57 $(eval COMBINED_PATH_FRAG := ${COMBINED_PATH_FRAG}/${path_frag})\
58 $(wildcard ${COMBINED_PATH_FRAG}/plat_fiptool.mk))
Pankaj Gupta3527d6d2020-12-09 14:02:38 +053059endif
60
Raef Coles034a2e32023-02-01 15:55:08 +000061ifneq (,$(wildcard $(lastword ${PLAT_FIPTOOL_HELPER_MK})))
Pankaj Gupta3527d6d2020-12-09 14:02:38 +053062include ${PLAT_FIPTOOL_HELPER_MK}
63endif
64
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010065$(eval $(call MAKE_TOOL,$(BUILD_PLAT)/tools,fiptool,FIPTOOL))
Mikael Olsson0165ddd2022-12-08 17:07:06 +010066
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040067.PHONY: all clean distclean --openssl
Harry Liebelf58ad362014-01-10 18:00:33 +000068
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010069all: --openssl
Harry Liebelf58ad362014-01-10 18:00:33 +000070
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040071--openssl:
Olivier Deprez4d4fec22023-08-31 11:46:54 +020072ifeq ($(STATIC),0)
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040073ifeq ($(DEBUG),1)
Chris Kay7c4e1ee2024-05-02 17:52:37 +000074 $(s)echo "Selected OpenSSL version: ${OPENSSL_CURRENT_VER}"
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040075endif
Olivier Deprez4d4fec22023-08-31 11:46:54 +020076endif # STATIC
Juan Pablo Condecf2dd172022-10-25 19:41:02 -040077
Harry Liebelf58ad362014-01-10 18:00:33 +000078clean:
Boyan Karatotevcbd6cec2025-05-02 15:08:24 +010079 $(q)rm -rf $(BUILD_PLAT)/tools/fiptool