1# 2# Copyright (c) 2014-2022, ARM Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7MAKE_HELPERS_DIRECTORY := ../../make_helpers/ 8include ${MAKE_HELPERS_DIRECTORY}build_macros.mk 9include ${MAKE_HELPERS_DIRECTORY}build_env.mk 10 11FIPTOOL ?= fiptool${BIN_EXT} 12PROJECT := $(notdir ${FIPTOOL}) 13OBJECTS := fiptool.o tbbr_config.o 14V ?= 0 15OPENSSL_DIR := /usr 16 17 18override CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700 19HOSTCCFLAGS := -Wall -Werror -pedantic -std=c99 20ifeq (${DEBUG},1) 21 HOSTCCFLAGS += -g -O0 -DDEBUG 22else 23 HOSTCCFLAGS += -O2 24endif 25 26# Include library directories where OpenSSL library files are located. 27# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or 28# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/ 29# directory. However, for a local build of OpenSSL, the built binaries are 30# located under the main project directory (i.e.: ${OPENSSL_DIR}, not 31# ${OPENSSL_DIR}/lib/). 32LDLIBS := -L${OPENSSL_DIR}/lib -L${OPENSSL_DIR} -lcrypto 33 34ifeq (${V},0) 35 Q := @ 36else 37 Q := 38endif 39 40INCLUDE_PATHS := -I../../include/tools_share -I${OPENSSL_DIR}/include 41 42HOSTCC ?= gcc 43 44ifneq (${PLAT},) 45TF_PLATFORM_ROOT := ../../plat/ 46include ${MAKE_HELPERS_DIRECTORY}plat_helpers.mk 47PLAT_FIPTOOL_HELPER_MK := ${PLAT_DIR}/plat_fiptool.mk 48endif 49 50ifneq (,$(wildcard ${PLAT_FIPTOOL_HELPER_MK})) 51include ${PLAT_FIPTOOL_HELPER_MK} 52endif 53 54.PHONY: all clean distclean 55 56all: ${PROJECT} 57 58${PROJECT}: ${OBJECTS} Makefile 59 @echo " HOSTLD $@" 60 ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} 61 @${ECHO_BLANK_LINE} 62 @echo "Built $@ successfully" 63 @${ECHO_BLANK_LINE} 64 65%.o: %.c Makefile 66 @echo " HOSTCC $<" 67 ${Q}${HOSTCC} -c ${CPPFLAGS} ${HOSTCCFLAGS} ${INCLUDE_PATHS} $< -o $@ 68 69clean: 70 $(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS}) 71