xref: /rk3399_ARM-atf/tools/cert_create/Makefile (revision 522a22771f0e40866a7361b2f8e416b8cb716a1c)
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