Files
kunlun/sbl/Makefile

105 lines
2.4 KiB
Makefile

# 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)