rockchip: Clean up parent directory creation for M0

The dependencies in the M0 Makefile are not correctly laid out, which
may lead to errors with make -j if the binary target gets evaluated
before the target that creates the directory. In addition, the M0
Makefile just calls mkdir without using the platform-independent macros
from the main ARM TF build system. This patch fixes those issues,
removes some unused (and broken) M0 build targets and merges the two M0
output directories into one (since there's no real point splitting it up
and it creates more hassle).

Change-Id: Ia5002479cf9c57fea7aefa8ca88e373df3a51f61
Signed-off-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Julius Werner 2016-10-31 19:18:47 -07:00
parent 9c4c18fa88
commit e77ade2887
2 changed files with 12 additions and 35 deletions

View File

@ -39,16 +39,11 @@ PLAT_M0 ?= rk3399m0
ifeq (${V},0)
Q=@
CHECKCODE_ARGS += --no-summary --terse
else
Q=
endif
export Q
# All PHONY definition
.PHONY: all clean distclean ${ARCH}
all: ${ARCH}
.SUFFIXES:
INCLUDES += -Iinclude/
@ -86,14 +81,12 @@ define SOURCES_TO_OBJS
$(notdir $(patsubst %.S,%.o,$(filter %.S,$(1))))
endef
BUILD_DIR := ${BUILD_PLAT}/obj
BIN_DIR := ${BUILD_PLAT}/bin
SOURCES := $(C_SOURCES)
OBJS := $(addprefix $(BUILD_DIR)/,$(call SOURCES_TO_OBJS,$(SOURCES)))
OBJS := $(addprefix $(BUILD)/,$(call SOURCES_TO_OBJS,$(SOURCES)))
LINKERFILE := src/rk3399m0.ld
MAPFILE := $(BIN_DIR)/$(PLAT_M0).map
ELF := $(BIN_DIR)/$(PLAT_M0).elf
BIN := $(BIN_DIR)/$(PLAT_M0).bin
MAPFILE := $(BUILD)/$(PLAT_M0).map
ELF := $(BUILD)/$(PLAT_M0).elf
BIN := $(BUILD)/$(PLAT_M0).bin
# Function definition related compilation
define MAKE_C
@ -124,11 +117,8 @@ define MAKE_OBJS
$(and $(REMAIN),$(error Unexpected source files present: $(REMAIN)))
endef
$(BIN_DIR) :
$(Q)mkdir -p "$@"
$(BUILD_DIR) : $(BIN_DIR)
$(Q)mkdir -p "$@"
.PHONY: all
all: $(BIN)
$(ELF) : $(OBJS) $(LINKERFILE)
@echo " LD $@"
@ -139,18 +129,4 @@ $(BIN) : $(ELF)
@echo " BIN $@"
$(Q)$(OC) -O binary $< $@
.PHONY : ${ARCH}
${ARCH} : $(BUILD_DIR) $(BIN)
$(eval $(call MAKE_OBJS,$(BUILD_DIR),$(SOURCES),$(1)))
# Other common compilation entries
clean:
@echo " CLEAN"
${Q}rm -rf ${BUILD_BASE}/${PLAT_M0}
${Q}rm -rf ${VER_BIN_DIR}/$(PLAT_M0)*
distclean:
@echo " DISTCLEAN"
${Q}rm -rf ${BUILD_BASE}/${PLAT_M0}
${Q}rm -rf ${VER_BIN_DIR}/$(PLAT_M0)*
$(eval $(call MAKE_OBJS,$(BUILD),$(SOURCES),$(1)))

View File

@ -88,8 +88,9 @@ $(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT))
# M0 source build
PLAT_M0 := ${PLAT}m0
BUILD_M0 := ${BUILD_PLAT}/m0
RK3399M0FW=${BUILD_PLAT}/m0/bin/${PLAT_M0}.bin
RK3399M0FW=${BUILD_M0}/${PLAT_M0}.bin
$(eval $(call add_define,RK3399M0FW))
# CCACHE_EXTRAFILES is needed because ccache doesn't handle .incbin
@ -97,7 +98,7 @@ export CCACHE_EXTRAFILES
${BUILD_PLAT}/bl31/pmu_fw.o: CCACHE_EXTRAFILES=$(RK3399M0FW)
${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c: $(RK3399M0FW)
$(eval $(call MAKE_PREREQ_DIR,${BUILD_M0},))
.PHONY: $(RK3399M0FW)
$(RK3399M0FW):
$(MAKE) -C ${RK_PLAT_SOC}/drivers/m0 \
BUILD_PLAT=$(abspath ${BUILD_PLAT}/m0)
$(RK3399M0FW): | ${BUILD_M0}
$(MAKE) -C ${RK_PLAT_SOC}/drivers/m0 BUILD=$(abspath ${BUILD_PLAT}/m0)