190aa901fSSumit Garg# 2*415049a2SChris Kay# Copyright (c) 2024, Arm Limited. All rights reserved. 39bc52d33SJuan Pablo Conde# Copyright (c) 2019-2022, Linaro Limited. All rights reserved. 490aa901fSSumit Garg# 590aa901fSSumit Garg# SPDX-License-Identifier: BSD-3-Clause 690aa901fSSumit Garg# 790aa901fSSumit Garg 890aa901fSSumit GargBUILD_INFO ?= 1 990aa901fSSumit GargDEBUG := 0 10b13e3f9fSManish V BadarkheENCTOOL ?= encrypt_fw${BIN_EXT} 11fafd3ec9SManish V BadarkheBINARY := $(notdir ${ENCTOOL}) 1290aa901fSSumit GargOPENSSL_DIR := /usr 1390aa901fSSumit Garg 14cc277de8SChris Kaytoolchains := host 15cf2dd17dSJuan Pablo Conde 16cf2dd17dSJuan Pablo CondeMAKE_HELPERS_DIRECTORY := ../../make_helpers/ 17cf2dd17dSJuan Pablo Condeinclude ${MAKE_HELPERS_DIRECTORY}build_macros.mk 18cf2dd17dSJuan Pablo Condeinclude ${MAKE_HELPERS_DIRECTORY}build_env.mk 197c4e1eeaSChris Kayinclude ${MAKE_HELPERS_DIRECTORY}common.mk 20cf2dd17dSJuan Pablo Condeinclude ${MAKE_HELPERS_DIRECTORY}defaults.mk 21cc277de8SChris Kayinclude ${MAKE_HELPERS_DIRECTORY}toolchain.mk 22cf2dd17dSJuan Pablo Conde 2390aa901fSSumit GargOBJECTS := src/encrypt.o \ 2490aa901fSSumit Garg src/cmd_opt.o \ 2590aa901fSSumit Garg src/main.o 2690aa901fSSumit Garg 2790aa901fSSumit GargHOSTCCFLAGS := -Wall -std=c99 2890aa901fSSumit Garg 29cf2dd17dSJuan Pablo Conde# Select OpenSSL version flag according to the OpenSSL build selected 30cf2dd17dSJuan Pablo Conde# from setting the OPENSSL_DIR path. 31cf2dd17dSJuan Pablo Conde$(eval $(call SELECT_OPENSSL_API_VERSION)) 3290aa901fSSumit Garg 3390aa901fSSumit Gargifeq (${DEBUG},1) 3490aa901fSSumit Garg HOSTCCFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40 3590aa901fSSumit Gargelse 3690aa901fSSumit Gargifeq (${BUILD_INFO},1) 3790aa901fSSumit Garg HOSTCCFLAGS += -O2 -DLOG_LEVEL=20 3890aa901fSSumit Gargelse 3990aa901fSSumit Garg HOSTCCFLAGS += -O2 -DLOG_LEVEL=10 4090aa901fSSumit Gargendif 4190aa901fSSumit Gargendif 4290aa901fSSumit Garg 43cf2dd17dSJuan Pablo CondeHOSTCCFLAGS += ${DEFINES} 44cf2dd17dSJuan Pablo Conde# USING_OPENSSL3 flag will be added to the HOSTCCFLAGS variable with the proper 45cf2dd17dSJuan Pablo Conde# computed value. 46cf2dd17dSJuan Pablo CondeHOSTCCFLAGS += -DUSING_OPENSSL3=$(USING_OPENSSL3) 47cf2dd17dSJuan Pablo Conde 48cf2dd17dSJuan Pablo Conde 4990aa901fSSumit Garg# Make soft links and include from local directory otherwise wrong headers 5090aa901fSSumit Garg# could get pulled in from firmware tree. 5190aa901fSSumit GargINC_DIR := -I ./include -I ../../include/tools_share -I ${OPENSSL_DIR}/include 529bc52d33SJuan Pablo Conde 539bc52d33SJuan Pablo Conde# Include library directories where OpenSSL library files are located. 549bc52d33SJuan Pablo Conde# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or 559bc52d33SJuan Pablo Conde# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/ 569bc52d33SJuan Pablo Conde# directory. However, for a local build of OpenSSL, the built binaries are 579bc52d33SJuan Pablo Conde# located under the main project directory (i.e.: ${OPENSSL_DIR}, not 589bc52d33SJuan Pablo Conde# ${OPENSSL_DIR}/lib/). 599bc52d33SJuan Pablo CondeLIB_DIR := -L ${OPENSSL_DIR}/lib -L ${OPENSSL_DIR} 6090aa901fSSumit GargLIB := -lssl -lcrypto 6190aa901fSSumit Garg 62cf2dd17dSJuan Pablo Conde.PHONY: all clean realclean --openssl 6390aa901fSSumit Garg 64aa57ce63SVincent Stehléall: --openssl ${BINARY} 6590aa901fSSumit Garg 66aa57ce63SVincent Stehlé${BINARY}: ${OBJECTS} Makefile 677c4e1eeaSChris Kay $(s)echo " HOSTLD $@" 68*415049a2SChris Kay $(q)$(host-cc) ${OBJECTS} ${LIB_DIR} ${LIB} -o $@ 6990aa901fSSumit Garg 7090aa901fSSumit Garg%.o: %.c 717c4e1eeaSChris Kay $(s)echo " HOSTCC $<" 727c4e1eeaSChris Kay $(q)$(host-cc) -c ${HOSTCCFLAGS} ${INC_DIR} $< -o $@ 7390aa901fSSumit Garg 74cf2dd17dSJuan Pablo Conde--openssl: 75cf2dd17dSJuan Pablo Condeifeq ($(DEBUG),1) 767c4e1eeaSChris Kay $(s)echo "Selected OpenSSL version: ${OPENSSL_CURRENT_VER}" 77cf2dd17dSJuan Pablo Condeendif 78cf2dd17dSJuan Pablo Conde 7990aa901fSSumit Gargclean: 80*415049a2SChris Kay $(call SHELL_DELETE_ALL,${OBJECTS}) 8190aa901fSSumit Garg 8290aa901fSSumit Gargrealclean: clean 8390aa901fSSumit Garg $(call SHELL_DELETE,${BINARY}) 84