sdk-hwV1.3/lichee/xr806/appos/project/example/blink/gcc/Makefile

95 lines
3.0 KiB
Makefile
Executable File

#
# Rules for building application
#
# ----------------------------------------------------------------------------
# common rules
# ----------------------------------------------------------------------------
ROOT_PATH := ../../../..
include $(ROOT_PATH)/gcc.mk
# ----------------------------------------------------------------------------
# project and objects
# ----------------------------------------------------------------------------
# PROJECT := blink
PROJECT := $(notdir $(shell cd .. && pwd))
PRJ_ROOT_PATH := $(ROOT_PATH)/project/example/$(PROJECT)
USE_BLE_HOST := y
HCIOPTION := VIRTUAL_HCI
HOST_INCLUDES := \
-I$(ROOT_PATH)/src/ble/hci \
-I$(ROOT_PATH)/include/ble \
INCLUDE_PATHS += \
-I$(PRJ_ROOT_PATH) \
$(HOST_INCLUDES)
DIRS_IGNORE := $(PRJ_ROOT_PATH)/gcc%
DIRS_IGNORE += $(PRJ_ROOT_PATH)/image%
DIRS_IGNORE += $(ROOT_PATH)/project/common/board/%
DIRS_IGNORE += $(ROOT_PATH)/project/common/board/$(shell echo $(CONFIG_BOARD))
DIRS_ALL := $(shell find $(PRJ_ROOT_PATH) $(ROOT_PATH)/project/common -type d)
DIRS := $(filter-out $(DIRS_IGNORE),$(DIRS_ALL))
DIRS += $(ROOT_PATH)/project/common/board/$(shell echo $(CONFIG_BOARD))
#DIRS += $(ROOT_PATH)/project/$(PROJECT)/ports/src
ifeq (,$(wildcard ../my_trace.c))
DIRS += $(ROOT_PATH)/project/bluetooth/trace
endif
SRCS := $(basename $(foreach dir,$(DIRS),$(wildcard $(dir)/*.[csS])))
OBJS := $(addsuffix .o,$(SRCS))
# to avoid path name coincidence, dont use $(subst .c,,$(INSTRUMENTATION_LIST))
C_FNAMES := $(addsuffix .c,$(SRCS))
C_FILE_INSTRU := $(foreach i,$(C_FNAMES),$(foreach j,$(INSTRUMENTATION_LIST),$(if $(findstring $j,$i),$i)))
C_NAME_INSTRU := $(basename $(C_FILE_INSTRU))
define one_instrument
$(1).o : $(1).c
$(Q)echo 'Override General Default Rule : Instrument file: $$<'
$(Q)$(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -finstrument-functions -o $$@ $$<
endef
# extra libs
# PRJ_EXTRA_LIBS :=
# ----------------------------------------------------------------------------
# override project variables
# ----------------------------------------------------------------------------
# linker script path/file
# - relative to "./"
# - define your own "LINKER_SCRIPT_PATH" and/or "LINKER_SCRIPT" to override
# the default one
# LINKER_SCRIPT_PATH := .
# image config path/file
# - relative to "../image/xxxxx/", eg. "../image/xr709/"
# - define your own "IMAGE_CFG_PATH" and/or "IMAGE_CFG" to override the
# default one
# IMAGE_CFG_PATH := ../image/xr806/
# IMAGE_CFG := image.cfg
# image name, default to xr_system
# IMAGE_NAME :=
# project make rules
include $(PRJ_MAKE_RULES)
CONFIG_SYMBOLS += -D$(HCIOPTION)
CONFIG_SYMBOLS += -DCONFIG_ARM
$(foreach i, $(C_NAME_INSTRU),$(eval $(call one_instrument,$(i))))
stat :
$(OBJDUMP) -S $(PROJECT).elf > $(PROJECT).lst
$(OBJDUMP) --sym $(PROJECT).elf > $(PROJECT).sym
$(OBJDUMP) --dwarf=info $(PROJECT).elf > $(PROJECT).info
$(OBJDUMP) --dwarf=loc $(PROJECT).elf > $(PROJECT).loc
$(OBJDUMP) --dwarf=frames $(PROJECT).elf > $(PROJECT).frames
$(OBJCOPY) -S $(PROJECT).elf -O verilog $(PROJECT).hex
$(SIZE) $(PROJECT).elf