1819281eeSdp-arm# 2*cc277de8SChris Kay# Copyright (c) 2014-2024, Arm Limited and Contributors. All rights reserved. 3819281eeSdp-arm# 482cb2c1aSdp-arm# SPDX-License-Identifier: BSD-3-Clause 5819281eeSdp-arm# 6819281eeSdp-arm 7*cc277de8SChris Kaytoolchains := host 8*cc277de8SChris Kay 9819281eeSdp-armMAKE_HELPERS_DIRECTORY := ../../make_helpers/ 10819281eeSdp-arminclude ${MAKE_HELPERS_DIRECTORY}build_macros.mk 11819281eeSdp-arminclude ${MAKE_HELPERS_DIRECTORY}build_env.mk 12cf2dd17dSJuan Pablo Condeinclude ${MAKE_HELPERS_DIRECTORY}defaults.mk 13*cc277de8SChris Kayinclude ${MAKE_HELPERS_DIRECTORY}toolchain.mk 14819281eeSdp-arm 15b13e3f9fSManish V BadarkheFIPTOOL ?= fiptool${BIN_EXT} 16fafd3ec9SManish V BadarkhePROJECT := $(notdir ${FIPTOOL}) 17819281eeSdp-armOBJECTS := fiptool.o tbbr_config.o 18a9673900Sdp-armV ?= 0 194d4fec28SOlivier DeprezSTATIC ?= 0 20819281eeSdp-arm 21819281eeSdp-armoverride CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700 22750e8d80SAntonio Nino DiazHOSTCCFLAGS := -Wall -Werror -pedantic -std=c99 23819281eeSdp-armifeq (${DEBUG},1) 24750e8d80SAntonio Nino Diaz HOSTCCFLAGS += -g -O0 -DDEBUG 25819281eeSdp-armelse 26750e8d80SAntonio Nino Diaz HOSTCCFLAGS += -O2 27819281eeSdp-armendif 289bc52d33SJuan Pablo Conde 294d4fec28SOlivier DeprezINCLUDE_PATHS := -I../../include/tools_share 304d4fec28SOlivier Deprez 314d4fec28SOlivier DeprezDEFINES += -DSTATIC=$(STATIC) 324d4fec28SOlivier Deprez 334d4fec28SOlivier Deprezifeq (${STATIC},1) 344d4fec28SOlivier DeprezLDOPTS := -static 354d4fec28SOlivier Deprezelse 364d4fec28SOlivier DeprezOPENSSL_DIR := /usr 374d4fec28SOlivier Deprez 38cf2dd17dSJuan Pablo Conde# Select OpenSSL version flag according to the OpenSSL build selected 39cf2dd17dSJuan Pablo Conde# from setting the OPENSSL_DIR path. 40cf2dd17dSJuan Pablo Conde$(eval $(call SELECT_OPENSSL_API_VERSION)) 41cf2dd17dSJuan Pablo Conde 42cf2dd17dSJuan Pablo Conde# USING_OPENSSL3 flag will be added to the HOSTCCFLAGS variable with the proper 43cf2dd17dSJuan Pablo Conde# computed value. 444d4fec28SOlivier DeprezDEFINES += -DUSING_OPENSSL3=$(USING_OPENSSL3) 45cf2dd17dSJuan Pablo Conde 469bc52d33SJuan Pablo Conde# Include library directories where OpenSSL library files are located. 479bc52d33SJuan Pablo Conde# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or 489bc52d33SJuan Pablo Conde# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/ 499bc52d33SJuan Pablo Conde# directory. However, for a local build of OpenSSL, the built binaries are 509bc52d33SJuan Pablo Conde# located under the main project directory (i.e.: ${OPENSSL_DIR}, not 519bc52d33SJuan Pablo Conde# ${OPENSSL_DIR}/lib/). 524d4fec28SOlivier DeprezLDOPTS := -L${OPENSSL_DIR}/lib -L${OPENSSL_DIR} -lcrypto 534d4fec28SOlivier DeprezINCLUDE_PATHS += -I${OPENSSL_DIR}/include 544d4fec28SOlivier Deprezendif # STATIC 554d4fec28SOlivier Deprez 564d4fec28SOlivier DeprezHOSTCCFLAGS += ${DEFINES} 57819281eeSdp-arm 58819281eeSdp-armifeq (${V},0) 59819281eeSdp-arm Q := @ 60819281eeSdp-armelse 61819281eeSdp-arm Q := 62819281eeSdp-armendif 63819281eeSdp-arm 6472610c41Sdp-armHOSTCC ?= gcc 65819281eeSdp-arm 663527d6d2SPankaj Guptaifneq (${PLAT},) 673527d6d2SPankaj GuptaTF_PLATFORM_ROOT := ../../plat/ 683527d6d2SPankaj Guptainclude ${MAKE_HELPERS_DIRECTORY}plat_helpers.mk 69034a2e3eSRaef ColesCOMBINED_PATH_FRAG := plat_fiptool/ 70034a2e3eSRaef ColesPLAT_FIPTOOL_HELPER_MK := $(foreach path_frag,$(subst /, ,$(patsubst ../../plat/%/,%,${PLAT_DIR})),\ 71034a2e3eSRaef Coles $(eval COMBINED_PATH_FRAG := ${COMBINED_PATH_FRAG}/${path_frag})\ 72034a2e3eSRaef Coles $(wildcard ${COMBINED_PATH_FRAG}/plat_fiptool.mk)) 733527d6d2SPankaj Guptaendif 743527d6d2SPankaj Gupta 75034a2e3eSRaef Colesifneq (,$(wildcard $(lastword ${PLAT_FIPTOOL_HELPER_MK}))) 763527d6d2SPankaj Guptainclude ${PLAT_FIPTOOL_HELPER_MK} 773527d6d2SPankaj Guptaendif 783527d6d2SPankaj Gupta 790165ddd7SMikael OlssonDEPS := $(patsubst %.o,%.d,$(OBJECTS)) 800165ddd7SMikael Olsson 81cf2dd17dSJuan Pablo Conde.PHONY: all clean distclean --openssl 82819281eeSdp-arm 83aa57ce63SVincent Stehléall: --openssl ${PROJECT} 84819281eeSdp-arm 85aa57ce63SVincent Stehlé${PROJECT}: ${OBJECTS} Makefile 86750e8d80SAntonio Nino Diaz @echo " HOSTLD $@" 874d4fec28SOlivier Deprez ${Q}${HOSTCC} ${OBJECTS} -o $@ $(LDOPTS) 88819281eeSdp-arm @${ECHO_BLANK_LINE} 89819281eeSdp-arm @echo "Built $@ successfully" 90819281eeSdp-arm @${ECHO_BLANK_LINE} 91819281eeSdp-arm 923527d6d2SPankaj Gupta%.o: %.c Makefile 93750e8d80SAntonio Nino Diaz @echo " HOSTCC $<" 940165ddd7SMikael Olsson ${Q}${HOSTCC} -c ${CPPFLAGS} ${HOSTCCFLAGS} ${INCLUDE_PATHS} -MD -MP $< -o $@ 950165ddd7SMikael Olsson 960165ddd7SMikael Olsson-include $(DEPS) 97819281eeSdp-arm 98cf2dd17dSJuan Pablo Conde--openssl: 994d4fec28SOlivier Deprezifeq ($(STATIC),0) 100cf2dd17dSJuan Pablo Condeifeq ($(DEBUG),1) 101cf2dd17dSJuan Pablo Conde @echo "Selected OpenSSL version: ${OPENSSL_CURRENT_VER}" 102cf2dd17dSJuan Pablo Condeendif 1034d4fec28SOlivier Deprezendif # STATIC 104cf2dd17dSJuan Pablo Conde 105819281eeSdp-armclean: 1060165ddd7SMikael Olsson $(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS} $(DEPS)) 107