temp_contoller_firmware/tools/makefiles/mc_firmware.mk
2025-04-07 03:34:21 +03:00

59 lines
1.8 KiB
Makefile

# \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}