mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2026-07-09 11:30:58 +00:00
Calling 'make clean' in 'all' target is causing recompilation of binary
at every 'make' call, which is wrong.
Also building a new target via 'make TARGET' can cause infinite loop as
it is not defined as explicit make dependency. Dependent targets must be
specified after colon when defining target, which also prevents infinite
loops as make is able to detect these circular dependencies.
Moreover calling 'make clean' is supposed to be done by user when
configuration is changing.
So remove calling 'make clean' in 'all' target and define dependency for
'${PROJECT}' at correct place.
Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: I70e7fd2b04b02f6a0650c82df91d58c9a4cb24d9
62 lines
1.3 KiB
Makefile
62 lines
1.3 KiB
Makefile
#
|
|
# Copyright (c) 2014-2021, ARM Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
MAKE_HELPERS_DIRECTORY := ../../make_helpers/
|
|
include ${MAKE_HELPERS_DIRECTORY}build_macros.mk
|
|
include ${MAKE_HELPERS_DIRECTORY}build_env.mk
|
|
|
|
FIPTOOL ?= fiptool${BIN_EXT}
|
|
PROJECT := $(notdir ${FIPTOOL})
|
|
OBJECTS := fiptool.o tbbr_config.o
|
|
V ?= 0
|
|
|
|
override CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700
|
|
HOSTCCFLAGS := -Wall -Werror -pedantic -std=c99
|
|
ifeq (${DEBUG},1)
|
|
HOSTCCFLAGS += -g -O0 -DDEBUG
|
|
else
|
|
HOSTCCFLAGS += -O2
|
|
endif
|
|
LDLIBS := -lcrypto
|
|
|
|
ifeq (${V},0)
|
|
Q := @
|
|
else
|
|
Q :=
|
|
endif
|
|
|
|
INCLUDE_PATHS := -I../../include/tools_share
|
|
|
|
HOSTCC ?= gcc
|
|
|
|
ifneq (${PLAT},)
|
|
TF_PLATFORM_ROOT := ../../plat/
|
|
include ${MAKE_HELPERS_DIRECTORY}plat_helpers.mk
|
|
PLAT_FIPTOOL_HELPER_MK := ${PLAT_DIR}/plat_fiptool.mk
|
|
endif
|
|
|
|
ifneq (,$(wildcard ${PLAT_FIPTOOL_HELPER_MK}))
|
|
include ${PLAT_FIPTOOL_HELPER_MK}
|
|
endif
|
|
|
|
.PHONY: all clean distclean
|
|
|
|
all: ${PROJECT}
|
|
|
|
${PROJECT}: ${OBJECTS} Makefile
|
|
@echo " HOSTLD $@"
|
|
${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS}
|
|
@${ECHO_BLANK_LINE}
|
|
@echo "Built $@ successfully"
|
|
@${ECHO_BLANK_LINE}
|
|
|
|
%.o: %.c Makefile
|
|
@echo " HOSTCC $<"
|
|
${Q}${HOSTCC} -c ${CPPFLAGS} ${HOSTCCFLAGS} ${INCLUDE_PATHS} $< -o $@
|
|
|
|
clean:
|
|
$(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS})
|