diff options
author | danh-arm <dan.handley@arm.com> | 2017-01-11 14:54:29 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-11 14:54:29 +0000 |
commit | 9eb4d4dd938a1ad86a5a0311e00beb3b5c1d5840 (patch) | |
tree | e945acf3d28025563ac79e30890d0f1d9e440776 /make_helpers | |
parent | 236c27d21f52ad8f0a998e54774e3d8a4b59129d (diff) | |
parent | 1d274ab00fce999b9ce39849d1db984aa59ae015 (diff) | |
download | platform_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.mk | 63 | ||||
-rw-r--r-- | make_helpers/windows.mk | 2 |
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 |