xref: /rk3399_ARM-atf/tools/encrypt_fw/Makefile (revision 07c2d18f4ef6cd1ce61326e0e85d93abe8f2f4ed)
1#
2# Copyright (c) 2024, Arm Limited. All rights reserved.
3# Copyright (c) 2019-2022, Linaro Limited. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8BUILD_INFO	?= 1
9DEBUG		:= 0
10ENCTOOL		?= encrypt_fw${BIN_EXT}
11BINARY		:= $(notdir ${ENCTOOL})
12OPENSSL_DIR	:= /usr
13
14MAKE_HELPERS_DIRECTORY := ../../make_helpers/
15include ${MAKE_HELPERS_DIRECTORY}build_macros.mk
16include ${MAKE_HELPERS_DIRECTORY}build_env.mk
17include ${MAKE_HELPERS_DIRECTORY}common.mk
18include ${MAKE_HELPERS_DIRECTORY}defaults.mk
19include ${MAKE_HELPERS_DIRECTORY}toolchain.mk
20
21OBJECTS := src/encrypt.o \
22           src/cmd_opt.o \
23           src/main.o
24
25HOSTCCFLAGS := -Wall -std=c99
26
27# Select OpenSSL version flag according to the OpenSSL build selected
28# from setting the OPENSSL_DIR path.
29$(eval $(call SELECT_OPENSSL_API_VERSION))
30
31ifeq (${DEBUG},1)
32  HOSTCCFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40
33else
34ifeq (${BUILD_INFO},1)
35  HOSTCCFLAGS += -O2 -DLOG_LEVEL=20
36else
37  HOSTCCFLAGS += -O2 -DLOG_LEVEL=10
38endif
39endif
40
41HOSTCCFLAGS += ${DEFINES}
42# USING_OPENSSL3 flag will be added to the HOSTCCFLAGS variable with the proper
43# computed value.
44HOSTCCFLAGS += -DUSING_OPENSSL3=$(USING_OPENSSL3)
45
46
47# Make soft links and include from local directory otherwise wrong headers
48# could get pulled in from firmware tree.
49INC_DIR := -I ./include -I ../../include/tools_share -I ${OPENSSL_DIR}/include
50
51# Include library directories where OpenSSL library files are located.
52# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or
53# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/
54# directory. However, for a local build of OpenSSL, the built binaries are
55# located under the main project directory (i.e.: ${OPENSSL_DIR}, not
56# ${OPENSSL_DIR}/lib/).
57LIB_DIR := -L ${OPENSSL_DIR}/lib -L ${OPENSSL_DIR}
58LIB := -lssl -lcrypto
59
60.PHONY: all clean realclean --openssl
61
62all: --openssl ${BINARY}
63
64${BINARY}: ${OBJECTS} Makefile
65	$(s)echo "  HOSTLD  $@"
66	$(q)$(host-cc) ${OBJECTS} ${LIB_DIR} ${LIB} -o $@
67
68%.o: %.c
69	$(s)echo "  HOSTCC  $<"
70	$(q)$(host-cc) -c ${HOSTCCFLAGS} ${INC_DIR} $< -o $@
71
72--openssl:
73ifeq ($(DEBUG),1)
74	$(s)echo "Selected OpenSSL version: ${OPENSSL_CURRENT_VER}"
75endif
76
77clean:
78	$(call SHELL_DELETE_ALL,${OBJECTS})
79
80realclean: clean
81	$(call SHELL_DELETE,${BINARY})
82