77 lines
2.8 KiB
Makefile
77 lines
2.8 KiB
Makefile
PROJECT_XML := ../src/Project/Project.uvprojx
|
|
BUILD_DIR := build
|
|
TARGET := $(BUILD_DIR)/V2.1_260709_4CH
|
|
|
|
CC := arm-none-eabi-gcc
|
|
OBJCOPY := arm-none-eabi-objcopy
|
|
SIZE := arm-none-eabi-size
|
|
|
|
C_SOURCES := $(filter-out ../src/CMSIS/core_cm3.c,$(shell perl extract_sources.pl $(PROJECT_XML)))
|
|
S_SOURCES := startup_stm32f10x_hd_gcc.S
|
|
OBJECTS := $(patsubst ../src/%.c,$(BUILD_DIR)/%.o,$(C_SOURCES))
|
|
OBJECTS += $(BUILD_DIR)/gcc_syscalls.o
|
|
OBJECTS += $(BUILD_DIR)/startup_stm32f10x_hd_gcc.o
|
|
|
|
INCLUDES := \
|
|
-I../src/USER -I../src/CORE -I../src/CMSIS \
|
|
-I../src/SYSTEM/delay -I../src/SYSTEM/debug -I../src/SYSTEM/usart \
|
|
-I../src/STM32F10x_FWLib/inc \
|
|
-I../src/HARDWARE/LED -I../src/HARDWARE/KEY -I../src/HARDWARE/LCD \
|
|
-I../src/HARDWARE/24CXX -I../src/HARDWARE/FLASH -I../src/HARDWARE/IIC \
|
|
-I../src/HARDWARE/SPI -I../src/HARDWARE/BUZZER -I../src/HARDWARE/RFID \
|
|
-I../src/HARDWARE/EXTI -I../src/HARDWARE/TIMER \
|
|
-I../src/HARDWARE/UltrasonicWave -I../src/HARDWARE/USART \
|
|
-I../src/HARDWARE/GPS -I../src/HARDWARE/GSM -I../src/HARDWARE/QR_Code \
|
|
-I../src/HARDWARE/DEVICE -I../src/HARDWARE/NTC_ADC -I../src/HARDWARE/WDG \
|
|
-I../src/HARDWARE/SCALE -I../src/HARDWARE/ElectronicLock \
|
|
-I../src/HARDWARE/MOTOR -I../src/HARDWARE/AUDIO -I../src/HARDWARE/OPTO_SWITCH \
|
|
-I../src/HARDWARE/IR_Distancer -I../src/HARDWARE/RS485 \
|
|
-I../src/HARDWARE/STMFLASH -I../src/HARDWARE/Disinfection
|
|
|
|
ARCH_FLAGS := -mcpu=cortex-m3 -mthumb
|
|
DEFINES := -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -Dsignal=gsm_signal_strength
|
|
WARNINGS := -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable \
|
|
-Wno-unused-but-set-variable -Wno-sign-compare -Wno-implicit-int \
|
|
-Wno-unknown-pragmas -Wno-format
|
|
CFLAGS := $(ARCH_FLAGS) -std=gnu99 -Os -g3 -ffunction-sections -fdata-sections \
|
|
-fcommon -fno-strict-aliasing -fno-builtin -include gcc_compat.h $(DEFINES) $(INCLUDES) $(WARNINGS)
|
|
ASFLAGS := $(ARCH_FLAGS) -x assembler-with-cpp -g3
|
|
LDFLAGS := $(ARCH_FLAGS) -T stm32f103rc.ld -Wl,--gc-sections \
|
|
-Wl,-Map=$(TARGET).map,--cref -Wl,--print-memory-usage \
|
|
--specs=nano.specs --specs=nosys.specs -u _printf_float
|
|
LDLIBS := -Wl,--start-group -lc -lm -Wl,--end-group
|
|
|
|
.PHONY: all clean verify
|
|
|
|
all: $(TARGET).hex $(TARGET).bin
|
|
$(SIZE) $(TARGET).elf
|
|
|
|
$(TARGET).elf: $(OBJECTS) stm32f103rc.ld | $(BUILD_DIR)
|
|
$(CC) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $@
|
|
|
|
$(TARGET).hex: $(TARGET).elf
|
|
$(OBJCOPY) -O ihex $< $@
|
|
|
|
$(TARGET).bin: $(TARGET).elf
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
$(BUILD_DIR)/%.o: ../src/%.c gcc_compat.h
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(BUILD_DIR)/startup_stm32f10x_hd_gcc.o: startup_stm32f10x_hd_gcc.S
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(ASFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/gcc_syscalls.o: gcc_syscalls.c gcc_compat.h
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $@
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
-include $(OBJECTS:.o=.d)
|