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