rockchip: Clean up parent directory creation for M0
authorJulius Werner <jwerner@chromium.org>
Tue, 1 Nov 2016 02:18:47 +0000 (19:18 -0700)
committerJulius Werner <jwerner@chromium.org>
Thu, 3 Nov 2016 21:57:10 +0000 (14:57 -0700)
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>
plat/rockchip/rk3399/drivers/m0/Makefile
plat/rockchip/rk3399/platform.mk

index 8adc47e1f83d0272d880910ee81a38aefee6dfaa..a041929824498d5a43bf1eada17acf722108b843 100644 (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)))
index 604de9c8cd5401ba5e3313c75fe8bbef95f8d338..059ee7b49d1c2c7277f8cf9b777047050bb64004 100644 (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)