59 lines
1.8 KiB
Makefile
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}
|
|
|
|
|