1 include makefile_common.mk
 
    3 # Include build-time make variables that depend on the selected configuration
 
    4 include $(BUILD_VARIABLES_MK)
 
   11 BOOTLOADER_SRC :=  $(BUILDPREFIX_BOOTLOADER)bootloader.a
 
   13 # Bootloader build variables
 
   14 BL_BUILDPREFIX := $(BUILDPREFIX_BOOTLOADER)
 
   16 # Linker for the bootloader
 
   18 LDSCRIPT = $(MCU_PATH)$(MCU_FAMILY)/$(MCU)/linker/gcc_bl_$(MCU)$(MCU_SUB)$(MCU_MEM_VAR).ld
 
   20 LDSCRIPT = $(MCU_PATH)$(MCU_FAMILY)/$(MCU)/linker/gcc_bl_$(MCU)$(MCU_SUB)$(MCU_MEM_VAR)_$(MCU_RAM_VAR).ld
 
   24 BOOTLOADER_ELF := $(BL_BUILDPREFIX)bootloader.elf
 
   26 # Include bootloader makefile
 
   27 -include bootloader/makefile
 
   29 # Include board part (for BOARD_HW_xx defines)
 
   30 -include board/makefile
 
   32 # Include HAL drivers code (needed to build power.c (DCDC))
 
   33 -include $(HAL_API_PATH)makefile
 
   34 INCLUDES += -iquote$(API_PATH) -I$(UTIL_PATH)
 
   37 OBJS = $(addprefix $(BL_BUILDPREFIX), $(OBJS_))
 
   40 CLEAN := $(OBJS) $(BOOTLOADER_ELF) $(BOOTLOADER_HEX)
 
   42 $(BOOTLOADER_SRC): FORCE
 
   43     @echo "$(COLOR_INFO)Select bootloader from the image folder$(COLOR_END)"
 
   45     $(eval key_type=$(shell $(BOOT_CONF) --in_file $(BOOTLOADER_CONFIG_INI) --get_key_type))
 
   46     $(DD)$(FMW_SEL) --firmware_path=$(FIRMWARE_PATH)\
 
   47                 --firmware_type="wp_bootloader"\
 
   48                 --archive_path=$(ARCHIVE_PATH)\
 
   49                 --extract_path=$(EXTRACT_PATH)\
 
   50                 --version=$(MIN_BOOTLOADER_VERSION)\
 
   52                 --output_name="bootloader"\
 
   53                 --key_type=$(key_type)\
 
   54                 --unlocked=$(unprotected)\
 
   57                 --mcu_mem_var=$(MCU_MEM_VAR)
 
   59 $(BL_BUILDPREFIX)%.o : %.c
 
   60     @echo "$(COLOR_CC)CC$(COLOR_END) $<"
 
   62     $(D)$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
 
   65 $(BOOTLOADER_ELF): $(OBJS) $(BOOTLOADER_SRC)
 
   67     @echo "$(COLOR_INFO)Linking with the provided lib:$(COLOR_END) $(BOOTLOADER_SRC)"
 
   68     $(D)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(BOOTLOADER_SRC) \
 
   69               -Wl,--defsym,__bl_length__=$(bootloader_area_length) \
 
   70               -Wl,-Map=$(BL_BUILDPREFIX)bootloader.map \
 
   71               -Wl,-T,$(LDSCRIPT) $(LIBS)
 
   73 $(BOOTLOADER_HEX): $(BOOTLOADER_ELF)
 
   75     @echo "$(COLOR_INFO)Generating:$(COLOR_END) $@"
 
   76     $(D)$(OBJCOPY) $(BOOTLOADER_ELF) -O ihex $@
 
   79 all: $(BOOTLOADER_HEX)
 
   82     $(D)$(RM) -rf $(CLEAN)
 
   84 # Special ruel to force other rule to run every time