Files
blozi-etag/Firmware/makefile
2022-06-11 22:07:29 +08:00

128 lines
3.0 KiB
Makefile

TEL_CHIP := -DCHIP_TYPE=CHIP_TYPE_8258
ifeq ($(OS), Windows_NT)
TC32_COMPILER_PATH := "tc32_windows\\bin\\"
WINDOWS_PREFIX :=$(TC32_COMPILER_PATH)
LINUX_CHMOD :=
else
TC32_COMPILER_PATH := ./tc32_linux/bin/
WINDOWS_PREFIX :=
LINUX_CHMOD := chmod 777 -R ./tc32_linux/
endif
LIBS := -llt_8258
TEL_PATH := ./
PROJECT_NAME := ATC_Paper
PROJECT_PATH := ./src
PROJECT_PATH_STATIC := ./static_src
OUT_PATH :=./out
ifneq ($(TEL_PATH)/make/makefile, $(wildcard $(TEL_PATH)/make/makefile))
$(error "Please check SDK_Path")
endif
OBJ_SRCS :=
S_SRCS :=
ASM_SRCS :=
C_SRCS :=
S_UPPER_SRCS :=
O_SRCS :=
FLASH_IMAGE :=
ELFS :=
OBJS :=
LST :=
SIZEDUMMY :=
OUT_DIR :=
GCC_FLAGS := \
-ffunction-sections \
-fdata-sections \
-Wall \
-O2 \
-fpack-struct \
-fshort-enums \
-finline-small-functions \
-std=gnu99 \
-funsigned-char \
-fshort-wchar \
-fms-extensions \
-Wno-unused
INCLUDE_PATHS := -I$(TEL_PATH)/components -I$(PROJECT_PATH)
GCC_FLAGS += $(TEL_CHIP)
LS_FLAGS := $(PROJECT_PATH_STATIC)/boot.link
#include SDK makefile
-include $(TEL_PATH)/make/application.mk
-include $(TEL_PATH)/make/common.mk
-include $(TEL_PATH)/make/vendor_common.mk
-include $(TEL_PATH)/make/tinyFlash.mk
-include $(TEL_PATH)/make/drivers_8258.mk
-include $(PROJECT_PATH_STATIC)/div_mod.mk
ifeq ($(USE_FREE_RTOS), 1)
-include $(TEL_PATH)/make/freertos.mk
GCC_FLAGS += -DUSE_FREE_RTOS
endif
#include Project makefile
-include $(PROJECT_PATH)/project.mk
-include $(PROJECT_PATH_STATIC)/boot.mk
# Add inputs and outputs from these tool invocations to the build variables
LST_FILE := $(OUT_PATH)/$(PROJECT_NAME).lst
BIN_FILE := $(OUT_PATH)/../$(PROJECT_NAME).bin
ELF_FILE := $(OUT_PATH)/$(PROJECT_NAME).elf
# All Target
all: chmod_all pre-build main-build
# Main-build Target
main-build: $(ELF_FILE) secondary-outputs
# Tool invocations
$(ELF_FILE): $(OBJS) $(USER_OBJS)
@echo 'Building Standard target: $@'
@$(TC32_COMPILER_PATH)tc32-elf-ld --gc-sections -L $(TEL_PATH)/components/proj_lib -T $(LS_FLAGS) -o $(ELF_FILE) $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
$(LST_FILE): $(ELF_FILE)
@echo 'Invoking: TC32 Create Extended Listing'
@$(TC32_COMPILER_PATH)tc32-elf-objdump -x -D -l -S $(ELF_FILE) > $(LST_FILE)
@echo 'Finished building: $@'
@echo ' '
$(BIN_FILE): $(ELF_FILE)
@echo 'Create Flash image (binary format)'
@$(TC32_COMPILER_PATH)tc32-elf-objcopy -v -O binary $(ELF_FILE) $(BIN_FILE)
@python $(TEL_PATH)/make/tl_firmware_tools.py add_crc $(BIN_FILE)
@echo 'Finished building: $@'
@echo ' '
sizedummy: $(ELF_FILE)
@echo 'Invoking: Print Size'
$(TC32_COMPILER_PATH)tc32-elf-size -t $(ELF_FILE)
@echo 'Finished building: $@'
@echo ' '
clean:
-$(WINDOWS_PREFIX)rm $(FLASH_IMAGE) $(ELFS) $(OBJS) $(LST) $(ELF_FILE) $(BIN_FILE) $(LST_FILE)
-@echo ' '
pre-build:
$(WINDOWS_PREFIX)mkdir -p $(foreach s,$(OUT_DIR),$(OUT_PATH)$(s))
-@echo ' '
chmod_all:
-@$(LINUX_CHMOD)
-@echo 'chmod_all'
secondary-outputs: $(BIN_FILE) $(LST_FILE) sizedummy
.PHONY: all clean
.SECONDARY: main-build