# OUTPUT type # 1 - .out # 2 - .a # 3 - .so OUTPUT_TYPE = 1 OUTPUT_NAME = kunlun_sbl ifeq ($(target), kunlun2) hw_dep = hw2 riscv_dep = riscv2 else ifeq ($(target), kunlun3) hw_dep = hw3 riscv_dep = riscv3 else hw_dep = hw riscv_dep = riscv endif endif SUB_DIRS = src src/$(hw_dep) SUB_DIRS += $(TOPDIR)/driver $(TOPDIR)/common lzma ifeq ($(target), kunlun2) SUB_DIRS += $(TOPDIR)/sbl/io_lib endif # .h files dir ADD_INCLUDE += $(TOPDIR)/sbl/inc $(TOPDIR)/sbl/inc/${hw_dep} $(TOPDIR)/sbl/lzma ADD_INCLUDE += $(TOPDIR)/inc/pib $(TOPDIR)/driver/inc $(TOPDIR)/inc ADD_INCLUDE += $(TOPDIR)/inc/io_lib $(TOPDIR)/inc/os_shim ADD_INCLUDE += $(TOPDIR)/inc/compiler/gcc $(TOPDIR)/inc/utils ADD_INCLUDE += $(TOPDIR)/driver/src/$(hw_dep)/inc $(TOPDIR)/inc/driver ifeq ($(target), kunlun2) ADD_INCLUDE += $(TOPDIR)/sbl/io_lib/inc else ADD_INCLUDE += $(TOPDIR)/common/io_lib/inc endif # predefined macro PRE_MARCO += IOT_BUILD_TYPE=3 LD_SCRIPT = link_sbl.lds ifeq ($(gcc),arm) SUB_DIRS += src/cm3 ADD_LIB = cm3 ADD_LIBDIR = $(TOPDIR)/startup/cm3 else SUB_DIRS += src/riscv ADD_INCLUDE += $(TOPDIR)/startup/$(riscv_dep)/inc endif export ASSIGNED_DIR = sbl/ export COMMON_A_BUILD_TYPE=sbl ifeq ($(target), kunlun2) ADD_LIBDIR += $(TOPDIR)/sbl/io_lib ADD_LIB += io_lib endif # lib dir ADD_LIBDIR += $(TOPDIR)/driver $(TOPDIR)/common lzma # lib need to ld together ADD_LIB += lzma driver common # reduce object code size EXTRA_OPT_FLAG = -msave-restore DISABLE_BACKTRACE = 1 ##################################################### # kunlun3 的sbl目录不同 ifeq ($(target), kunlun3) sbl_bin_path=plc/ else sbl_bin_path= endif extra_work = echo handle sbl...;\ $(TOPDIR)/tools/rom_img/make_ld.sh --addrs $(TOPDIR)/sbl/.output/$(sbl_bin_path)lib/kunlun_sbl.out \ $(TOPDIR)/tools/rom_img/sbl_symbol > $(TOPDIR)/startup/ldscripts/$(riscv_dep)/sbl.addrs.ld; ifdef TOPDIR include $(TOPDIR)/build/makefile.cfg else include $(CURDIR)/build/makefile.cfg TOPDIR = $(CURDIR) export TOPDIR endif dump: $(OBJDUMP) -D -S -l $(OUTPUT_FULL_NAME) > $(OUTPUT_FULL_NAME).dump # display the obj files and output name debug: @echo TOPDIR=$(TOPDIR) @echo OUTPUT_LIB=$(OUTPUT_FULL_NAME) @echo DEPS=$(DEPS) @echo OBJECTS=$(OBJECTS) @echo SRCS=$(SRCS) @echo OBJECTS folder=$(foreach dirname, $(SUB_DIRS), $(addprefix $(BIN_DIR)/, $(dirname))) @echo output_name=$(OUTPUT_FULL_NAME)