1# 2# Copyright (c) 2024-2025, Arm Limited. All rights reserved. 3# Copyright (c) 2019-2022, Linaro Limited. All rights reserved. 4# 5# SPDX-License-Identifier: BSD-3-Clause 6# 7 8BUILD_INFO ?= 1 9DEBUG := 0 10ENCTOOL ?= encrypt_fw$(.exe) 11BINARY := $(notdir ${ENCTOOL}) 12OPENSSL_DIR := /usr 13 14MAKE_HELPERS_DIRECTORY := ../../make_helpers/ 15include ${MAKE_HELPERS_DIRECTORY}build_macros.mk 16include ${MAKE_HELPERS_DIRECTORY}common.mk 17include ${MAKE_HELPERS_DIRECTORY}defaults.mk 18include ${MAKE_HELPERS_DIRECTORY}toolchain.mk 19 20OBJECTS := src/encrypt.o \ 21 src/cmd_opt.o \ 22 src/main.o 23 24HOSTCCFLAGS := -Wall -std=c99 25 26# Select OpenSSL version flag according to the OpenSSL build selected 27# from setting the OPENSSL_DIR path. 28$(eval $(call SELECT_OPENSSL_API_VERSION)) 29 30ifeq (${DEBUG},1) 31 HOSTCCFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40 32else 33ifeq (${BUILD_INFO},1) 34 HOSTCCFLAGS += -O2 -DLOG_LEVEL=20 35else 36 HOSTCCFLAGS += -O2 -DLOG_LEVEL=10 37endif 38endif 39 40HOSTCCFLAGS += ${DEFINES} 41# USING_OPENSSL3 flag will be added to the HOSTCCFLAGS variable with the proper 42# computed value. 43HOSTCCFLAGS += -DUSING_OPENSSL3=$(USING_OPENSSL3) 44 45 46# Make soft links and include from local directory otherwise wrong headers 47# could get pulled in from firmware tree. 48INC_DIR := -I ./include -I ../../include/tools_share -I ${OPENSSL_DIR}/include 49 50# Include library directories where OpenSSL library files are located. 51# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or 52# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/ 53# directory. However, for a local build of OpenSSL, the built binaries are 54# located under the main project directory (i.e.: ${OPENSSL_DIR}, not 55# ${OPENSSL_DIR}/lib/). 56LIB_DIR := -L ${OPENSSL_DIR}/lib -L ${OPENSSL_DIR} 57LIB := -lssl -lcrypto 58 59.PHONY: all clean realclean --openssl 60 61all: --openssl ${BINARY} 62 63${BINARY}: ${OBJECTS} Makefile 64 $(s)echo " HOSTLD $@" 65 $(q)$(host-cc) ${OBJECTS} ${LIB_DIR} ${LIB} -o $@ 66 67%.o: %.c 68 $(s)echo " HOSTCC $<" 69 $(q)$(host-cc) -c ${HOSTCCFLAGS} ${INC_DIR} $< -o $@ 70 71--openssl: 72ifeq ($(DEBUG),1) 73 $(s)echo "Selected OpenSSL version: ${OPENSSL_CURRENT_VER}" 74endif 75 76clean: 77 $(q)rm -rf $(OBJECTS) 78 79realclean: clean 80 $(q)rm -f $(BINARY) 81