Merge pull request #750 from jwerner-chromium/m0_build

RK3399 M0 build system improvements
This commit is contained in:
danh-arm 2016-11-08 11:29:43 +00:00 committed by GitHub
commit 375d845708
2 changed files with 14 additions and 36 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,22 +81,21 @@ 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
$(eval OBJ := $(1)/$(patsubst %.c,%.o,$(notdir $(2))))
-include $(patsubst %.o,%.d,$(OBJ))
$(OBJ) : $(2)
@echo " CC $$<"
$$(Q)$$(CC) $$(CFLAGS) $$(INCLUDES) -c $$< -o $$@
$$(Q)$$(CC) $$(CFLAGS) $$(INCLUDES) -MMD -MT $$@ -c $$< -o $$@
endef
define MAKE_S
@ -124,11 +118,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 +130,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

@ -90,8 +90,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
@ -99,7 +100,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)