1# 2# Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7PLAT := none 8V ?= 0 9DEBUG := 0 10BINARY := $(notdir ${CRTTOOL}) 11OPENSSL_DIR := /usr 12COT := tbbr 13 14MAKE_HELPERS_DIRECTORY := ../../make_helpers/ 15include ${MAKE_HELPERS_DIRECTORY}build_macros.mk 16include ${MAKE_HELPERS_DIRECTORY}build_env.mk 17 18# Common source files. 19OBJECTS := src/cert.o \ 20 src/cmd_opt.o \ 21 src/ext.o \ 22 src/key.o \ 23 src/main.o \ 24 src/sha.o 25 26# Chain of trust. 27ifeq (${COT},tbbr) 28 include src/tbbr/tbbr.mk 29else ifeq (${COT},dualroot) 30 include src/dualroot/cot.mk 31else 32 $(error Unknown chain of trust ${COT}) 33endif 34 35HOSTCCFLAGS := -Wall -std=c99 36 37ifeq (${DEBUG},1) 38 HOSTCCFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40 39else 40 HOSTCCFLAGS += -O2 -DLOG_LEVEL=20 41endif 42 43ifeq (${V},0) 44 Q := @ 45else 46 Q := 47endif 48 49HOSTCCFLAGS += ${DEFINES} 50 51# Make soft links and include from local directory otherwise wrong headers 52# could get pulled in from firmware tree. 53INC_DIR := -I ./include -I ${PLAT_INCLUDE} -I ${OPENSSL_DIR}/include 54LIB_DIR := -L ${OPENSSL_DIR}/lib 55LIB := -lssl -lcrypto 56 57HOSTCC ?= gcc 58 59.PHONY: all clean realclean 60 61all: clean ${BINARY} 62 63${BINARY}: ${OBJECTS} Makefile 64 @echo " HOSTLD $@" 65 @echo 'const char build_msg[] = "Built : "__TIME__", "__DATE__; \ 66 const char platform_msg[] = "${PLAT_MSG}";' | \ 67 ${HOSTCC} -c ${HOSTCCFLAGS} -xc - -o src/build_msg.o 68 ${Q}${HOSTCC} src/build_msg.o ${OBJECTS} ${LIB_DIR} ${LIB} -o $@ 69 70%.o: %.c 71 @echo " HOSTCC $<" 72 ${Q}${HOSTCC} -c ${HOSTCCFLAGS} ${INC_DIR} $< -o $@ 73 74clean: 75 $(call SHELL_DELETE_ALL, src/build_msg.o ${OBJECTS}) 76 77realclean: clean 78 $(call SHELL_DELETE,${BINARY}) 79 80