xref: /rk3399_ARM-atf/tools/fiptool/Makefile (revision a72b9e7754a27e6ebccf79f0cc4fb7cc5a0a8a5e)
1#
2# Copyright (c) 2014-2022, ARM Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
7MAKE_HELPERS_DIRECTORY := ../../make_helpers/
8include ${MAKE_HELPERS_DIRECTORY}build_macros.mk
9include ${MAKE_HELPERS_DIRECTORY}build_env.mk
10
11FIPTOOL ?= fiptool${BIN_EXT}
12PROJECT := $(notdir ${FIPTOOL})
13OBJECTS := fiptool.o tbbr_config.o
14V ?= 0
15OPENSSL_DIR := /usr
16
17
18override CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700
19HOSTCCFLAGS := -Wall -Werror -pedantic -std=c99
20ifeq (${DEBUG},1)
21  HOSTCCFLAGS += -g -O0 -DDEBUG
22else
23  HOSTCCFLAGS += -O2
24endif
25
26# Include library directories where OpenSSL library files are located.
27# For a normal installation (i.e.: when ${OPENSSL_DIR} = /usr or
28# /usr/local), binaries are located under the ${OPENSSL_DIR}/lib/
29# directory. However, for a local build of OpenSSL, the built binaries are
30# located under the main project directory (i.e.: ${OPENSSL_DIR}, not
31# ${OPENSSL_DIR}/lib/).
32LDLIBS := -L${OPENSSL_DIR}/lib -L${OPENSSL_DIR} -lcrypto
33
34ifeq (${V},0)
35  Q := @
36else
37  Q :=
38endif
39
40INCLUDE_PATHS := -I../../include/tools_share  -I${OPENSSL_DIR}/include
41
42HOSTCC ?= gcc
43
44ifneq (${PLAT},)
45TF_PLATFORM_ROOT	:=	../../plat/
46include ${MAKE_HELPERS_DIRECTORY}plat_helpers.mk
47PLAT_FIPTOOL_HELPER_MK := ${PLAT_DIR}/plat_fiptool.mk
48endif
49
50ifneq (,$(wildcard ${PLAT_FIPTOOL_HELPER_MK}))
51include ${PLAT_FIPTOOL_HELPER_MK}
52endif
53
54.PHONY: all clean distclean
55
56all: ${PROJECT}
57
58${PROJECT}: ${OBJECTS} Makefile
59	@echo "  HOSTLD  $@"
60	${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS}
61	@${ECHO_BLANK_LINE}
62	@echo "Built $@ successfully"
63	@${ECHO_BLANK_LINE}
64
65%.o: %.c Makefile
66	@echo "  HOSTCC  $<"
67	${Q}${HOSTCC} -c ${CPPFLAGS} ${HOSTCCFLAGS} ${INCLUDE_PATHS} $< -o $@
68
69clean:
70	$(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS})
71