# \file Makefile # \brief Description of the STM32G030F6P6 project build process SHELL=/bin/bash include $(DIR_MK)/settings.mk OBJS_C = $(addprefix $(MC_FIRMWARE_OUTPATH_OBJS),$(notdir $(MC_FIRMWARE_SOURCES_C:.c=.o) )) OBJS_S = $(addprefix $(MC_FIRMWARE_OUTPATH_OBJS),$(notdir $(MC_FIRMWARE_SOURCES_S:.s=.o) )) OBJS += $(OBJS_S) $(OBJS_C) vpath %.c $(sort $(dir $(MC_FIRMWARE_SOURCES_C))) vpath %.s $(sort $(dir $(MC_FIRMWARE_SOURCES_S))) .PHONY: all dirs clean help doc check all: dirs $(MC_FIRMWARE).elf $(MC_FIRMWARE).asm $(MC_FIRMWARE).bin $(ARM_SIZE) -G $(MC_FIRMWARE).elf ls -lh $(MC_FIRMWARE_OUTPATH)*.bin @echo -e "\n \e[32msuccess\e[0m\n" %.bin: %.elf $(ARM_OBJCOPY) -O binary $< $@ %.elf: $(OBJS) $(ARM_LD) $(OBJS) $(LDFLAGS) -o $@ #проерям только файлы входящие в $(CHECK_SOURCES_C) ${MC_FIRMWARE_OUTPATH_OBJS}%.o: %.c $(ARM_CC) $(CFLAGS) -c -o $@ $< @if [ ! -z "$(CHECKING_DURING_COMPILATION)" ]; then \ if echo "$(CHECK_SOURCES_C)" | grep -q "$<"; then \ $(STATIC_ANALYSIS) $(STATIC_ANALYSIS_FLAGS) $<; \ fi \ fi ${MC_FIRMWARE_OUTPATH_OBJS}%.o: %.s $(ARM_CC) $(CFLAGS) -c -o $@ $< %.asm: %.elf $(ARM_OBJDUMP) -dwh $< > $@ check: dirs $(SOURCES_C) $(STATIC_ANALYSIS) $(STATIC_ANALYSIS_FLAGS) $(CHECK_SOURCES_C) doc: dirs sed -i '45s#.*#PROJECT_NAME = "$(MC_FIRMWARE)"#' $(DOCUMENTATION_GENERATOR_CONF_FILE) sed -i '71s#.*#OUTPUT_DIRECTORY = ./$(OUTPATH_DOCUMENTATION)#' $(DOCUMENTATION_GENERATOR_CONF_FILE) sed -i '946s#.*#INPUT = $(DOCUMENTATION_FILE)#' $(DOCUMENTATION_GENERATOR_CONF_FILE) $(DOCUMENTATION_GENERATOR) $(DOCUMENTATION_GENERATOR_CONF_FILE) dirs: mkdir -p ${MC_FIRMWARE_OUTPATH_OBJS} mkdir -p $(STATIC_ANALYSIS_BUILD_DIR) mkdir -p ${OUTPATH_DOCUMENTATION}