xref: /rk3399_ARM-atf/tools/encrypt_fw/Makefile (revision 69520877af7b3f6560d3781e2408a86c13434e8b)
1#
2# Copyright (c) 2024-2025, 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
10OPENSSL_DIR	:= /usr
11
12MAKE_HELPERS_DIRECTORY := ../../make_helpers/
13include ${MAKE_HELPERS_DIRECTORY}build_macros.mk
14include ${MAKE_HELPERS_DIRECTORY}build-rules.mk
15include ${MAKE_HELPERS_DIRECTORY}common.mk
16include ${MAKE_HELPERS_DIRECTORY}defaults.mk
17include ${MAKE_HELPERS_DIRECTORY}toolchain.mk
18
19ENCTOOL_SOURCES :=	src/encrypt.c \
20			src/cmd_opt.c \
21			src/main.c
22
23ENCTOOL_CFLAGS := -Wall -std=c99
24
25# Select OpenSSL version flag according to the OpenSSL build selected
26# from setting the OPENSSL_DIR path.
27$(eval $(call SELECT_OPENSSL_API_VERSION))
28
29ifeq (${DEBUG},1)
30  ENCTOOL_CFLAGS += -g -O0
31  ENCTOOL_DEFINES += DEBUG LOG_LEVEL=40
32else
33  ENCTOOL_CFLAGS += -O2
34ifeq (${BUILD_INFO},1)
35  ENCTOOL_DEFINES += LOG_LEVEL=20
36else
37  ENCTOOL_DEFINES += LOG_LEVEL=10
38endif
39endif
40
41# USING_OPENSSL3 flag will be added to the proper computed value.
42ENCTOOL_DEFINES += USING_OPENSSL3=$(USING_OPENSSL3)
43
44
45# Make soft links and include from local directory otherwise wrong headers
46# could get pulled in from firmware tree.
47ENCTOOL_INCLUDE_DIRS := ./include ../../include/tools_share ${OPENSSL_DIR}/include
48
49# Include library directories where OpenSSL library files are located.
50# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or
51# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/
52# directory. However, for a local build of OpenSSL, the built binaries are
53# located under the main project directory (i.e.: ${OPENSSL_DIR}, not
54# ${OPENSSL_DIR}/lib/).
55ENCTOOL_LDFLAGS := -L${OPENSSL_DIR}/lib -L${OPENSSL_DIR}
56ENCTOOL_LDFLAGS += -lssl -lcrypto
57
58.PHONY: all clean realclean --openssl
59
60all: --openssl
61
62$(eval $(call MAKE_TOOL,$(BUILD_PLAT)/tools,encrypt_fw,ENCTOOL))
63
64--openssl:
65ifeq ($(DEBUG),1)
66	$(s)echo "Selected OpenSSL version: ${OPENSSL_CURRENT_VER}"
67endif
68
69clean:
70	$(q)rm -rf $(BUILD_PLAT)/tools/encrypt_fw
71
72realclean: clean
73