aboutsummaryrefslogtreecommitdiffstats
path: root/make_helpers
diff options
context:
space:
mode:
authordanh-arm <dan.handley@arm.com>2017-01-11 14:54:29 +0000
committerGitHub <noreply@github.com>2017-01-11 14:54:29 +0000
commit9eb4d4dd938a1ad86a5a0311e00beb3b5c1d5840 (patch)
treee945acf3d28025563ac79e30890d0f1d9e440776 /make_helpers
parent236c27d21f52ad8f0a998e54774e3d8a4b59129d (diff)
parent1d274ab00fce999b9ce39849d1db984aa59ae015 (diff)
downloadplatform_external_arm-trusted-firmware-9eb4d4dd938a1ad86a5a0311e00beb3b5c1d5840.tar.gz
platform_external_arm-trusted-firmware-9eb4d4dd938a1ad86a5a0311e00beb3b5c1d5840.tar.bz2
platform_external_arm-trusted-firmware-9eb4d4dd938a1ad86a5a0311e00beb3b5c1d5840.zip
Merge pull request #796 from masahir0y/build
Improve dependency file generation
Diffstat (limited to 'make_helpers')
-rw-r--r--make_helpers/build_macros.mk63
-rw-r--r--make_helpers/windows.mk2
2 files changed, 15 insertions, 50 deletions
diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk
index 16bdd7883..bf9dc7949 100644
--- a/make_helpers/build_macros.mk
+++ b/make_helpers/build_macros.mk
@@ -184,24 +184,7 @@ endef
# Auxiliary macros to build TF images from sources
################################################################################
-# If no goal is specified in the command line, .DEFAULT_GOAL is used.
-# .DEFAULT_GOAL is defined in the main Makefile before including this file.
-ifeq ($(MAKECMDGOALS),)
-MAKECMDGOALS := $(.DEFAULT_GOAL)
-endif
-
-define match_goals
-$(strip $(foreach goal,$(1),$(filter $(goal),$(MAKECMDGOALS))))
-endef
-
-# List of rules that involve building things
-BUILD_TARGETS := all bl1 bl2 bl2u bl31 bl32 certificates fip
-
-# Does the list of goals specified on the command line include a build target?
-ifneq ($(call match_goals,${BUILD_TARGETS}),)
-IS_ANYTHING_TO_BUILD := 1
-endif
-
+MAKE_DEP = -Wp,-MD,$(DEP) -MT $$@ -MP
# MAKE_C builds a C source file and generates the dependency file
# $(1) = output directory
@@ -210,20 +193,14 @@ endif
define MAKE_C
$(eval OBJ := $(1)/$(patsubst %.c,%.o,$(notdir $(2))))
-$(eval PREREQUISITES := $(patsubst %.o,%.d,$(OBJ)))
+$(eval DEP := $(patsubst %.o,%.d,$(OBJ)))
$(eval IMAGE := IMAGE_BL$(call uppercase,$(3)))
-$(OBJ): $(2)
+$(OBJ): $(2) | bl$(3)_dirs
@echo " CC $$<"
- $$(Q)$$(CC) $$(TF_CFLAGS) $$(CFLAGS) -D$(IMAGE) -c $$< -o $$@
+ $$(Q)$$(CC) $$(TF_CFLAGS) $$(CFLAGS) -D$(IMAGE) $(MAKE_DEP) -c $$< -o $$@
-$(PREREQUISITES): $(2) | bl$(3)_dirs
- @echo " DEPS $$@"
- $$(Q)$$(CC) $$(TF_CFLAGS) $$(CFLAGS) -M -MT $(OBJ) -MF $$@ $$<
-
-ifdef IS_ANYTHING_TO_BUILD
--include $(PREREQUISITES)
-endif
+-include $(DEP)
endef
@@ -235,20 +212,14 @@ endef
define MAKE_S
$(eval OBJ := $(1)/$(patsubst %.S,%.o,$(notdir $(2))))
-$(eval PREREQUISITES := $(patsubst %.o,%.d,$(OBJ)))
+$(eval DEP := $(patsubst %.o,%.d,$(OBJ)))
$(eval IMAGE := IMAGE_BL$(call uppercase,$(3)))
-$(OBJ): $(2)
+$(OBJ): $(2) | bl$(3)_dirs
@echo " AS $$<"
- $$(Q)$$(AS) $$(ASFLAGS) -D$(IMAGE) -c $$< -o $$@
-
-$(PREREQUISITES): $(2) | bl$(3)_dirs
- @echo " DEPS $$@"
- $$(Q)$$(AS) $$(ASFLAGS) -M -MT $(OBJ) -MF $$@ $$<
+ $$(Q)$$(AS) $$(ASFLAGS) -D$(IMAGE) $(MAKE_DEP) -c $$< -o $$@
-ifdef IS_ANYTHING_TO_BUILD
--include $(PREREQUISITES)
-endif
+-include $(DEP)
endef
@@ -258,19 +229,13 @@ endef
# $(2) = input template
define MAKE_LD
-$(eval PREREQUISITES := $(1).d)
+$(eval DEP := $(1).d)
-$(1): $(2)
+$(1): $(2) | $(dir ${1})
@echo " PP $$<"
- $$(Q)$$(AS) $$(ASFLAGS) -P -E -D__LINKER__ -o $$@ $$<
-
-$(PREREQUISITES): $(2) | $(dir ${1})
- @echo " DEPS $$@"
- $$(Q)$$(AS) $$(ASFLAGS) -M -MT $(1) -MF $$@ $$<
+ $$(Q)$$(CPP) $$(CPPFLAGS) -P -D__ASSEMBLY__ -D__LINKER__ $(MAKE_DEP) -o $$@ $$<
-ifdef IS_ANYTHING_TO_BUILD
--include $(PREREQUISITES)
-endif
+-include $(DEP)
endef
@@ -358,7 +323,7 @@ ifdef MAKE_BUILD_STRINGS
else
@echo 'const char build_message[] = "Built : "$(BUILD_MESSAGE_TIMESTAMP); \
const char version_string[] = "${VERSION_STRING}";' | \
- $$(CC) $$(TF_CFLAGS) $$(CFLAGS) -xc - -o $(BUILD_DIR)/build_message.o
+ $$(CC) $$(TF_CFLAGS) $$(CFLAGS) -xc -c - -o $(BUILD_DIR)/build_message.o
endif
$$(Q)$$(LD) -o $$@ $$(LDFLAGS) -Map=$(MAPFILE) --script $(LINKERFILE) \
$(BUILD_DIR)/build_message.o $(OBJS)
diff --git a/make_helpers/windows.mk b/make_helpers/windows.mk
index fe5e8c1fe..c4317d53d 100644
--- a/make_helpers/windows.mk
+++ b/make_helpers/windows.mk
@@ -104,6 +104,6 @@ BUILT_TIME_DATE_STRING = const char build_message[] = "Built : "${BUILD_MESSAGE_
VERSION_STRING_MESSAGE = const char version_string[] = "${VERSION_STRING}";
define MAKE_BUILD_STRINGS
@echo $$(BUILT_TIME_DATE_STRING) $$(VERSION_STRING_MESSAGE) | \
- $$(CC) $$(TF_CFLAGS) $$(CFLAGS) -x c - -o $1
+ $$(CC) $$(TF_CFLAGS) $$(CFLAGS) -x c -c - -o $1
endef