Commit e77ade28 authored by Julius Werner's avatar Julius Werner
Browse files

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: default avatarJulius Werner <jwerner@chromium.org>
parent 9c4c18fa
......@@ -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)))
......@@ -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)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment