1# 2# Copyright (c) 2019-2022, Linaro Limited. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7V ?= 0 8BUILD_INFO ?= 1 9DEBUG := 0 10ENCTOOL ?= encrypt_fw${BIN_EXT} 11BINARY := $(notdir ${ENCTOOL}) 12OPENSSL_DIR := /usr 13 14OBJECTS := src/encrypt.o \ 15 src/cmd_opt.o \ 16 src/main.o 17 18HOSTCCFLAGS := -Wall -std=c99 19 20MAKE_HELPERS_DIRECTORY := ../../make_helpers/ 21include ${MAKE_HELPERS_DIRECTORY}build_macros.mk 22include ${MAKE_HELPERS_DIRECTORY}build_env.mk 23 24ifeq (${DEBUG},1) 25 HOSTCCFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40 26else 27ifeq (${BUILD_INFO},1) 28 HOSTCCFLAGS += -O2 -DLOG_LEVEL=20 29else 30 HOSTCCFLAGS += -O2 -DLOG_LEVEL=10 31endif 32endif 33ifeq (${V},0) 34 Q := @ 35else 36 Q := 37endif 38 39# Make soft links and include from local directory otherwise wrong headers 40# could get pulled in from firmware tree. 41INC_DIR := -I ./include -I ../../include/tools_share -I ${OPENSSL_DIR}/include 42 43# Include library directories where OpenSSL library files are located. 44# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or 45# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/ 46# directory. However, for a local build of OpenSSL, the built binaries are 47# located under the main project directory (i.e.: ${OPENSSL_DIR}, not 48# ${OPENSSL_DIR}/lib/). 49LIB_DIR := -L ${OPENSSL_DIR}/lib -L ${OPENSSL_DIR} 50LIB := -lssl -lcrypto 51 52HOSTCC ?= gcc 53 54.PHONY: all clean realclean 55 56all: ${BINARY} 57 58${BINARY}: ${OBJECTS} Makefile 59 @echo " HOSTLD $@" 60 @echo 'const char build_msg[] = "Built : "__TIME__", "__DATE__;' | \ 61 ${HOSTCC} -c ${HOSTCCFLAGS} -xc - -o src/build_msg.o 62 ${Q}${HOSTCC} src/build_msg.o ${OBJECTS} ${LIB_DIR} ${LIB} -o $@ 63 64%.o: %.c 65 @echo " HOSTCC $<" 66 ${Q}${HOSTCC} -c ${HOSTCCFLAGS} ${INC_DIR} $< -o $@ 67 68clean: 69 $(call SHELL_DELETE_ALL, src/build_msg.o ${OBJECTS}) 70 71realclean: clean 72 $(call SHELL_DELETE,${BINARY}) 73