mirror of
https://github.com/eddyem/IR-controller.git
synced 2025-12-06 10:45:15 +03:00
122 lines
2.9 KiB
Makefile
122 lines
2.9 KiB
Makefile
BIN=testproject
|
|
|
|
# Headers that don't have c-files with same name
|
|
# but project depends on them
|
|
INDEPENDENT_HEADERS=usb_conf.h includes.h
|
|
|
|
# Here are STDPeriphLib objects used in project
|
|
SPL=
|
|
SPL+=misc
|
|
SPL+=stm32f10x_adc
|
|
SPL+=stm32f10x_bkp
|
|
SPL+=stm32f10x_can
|
|
SPL+=stm32f10x_cec
|
|
SPL+=stm32f10x_crc
|
|
SPL+=stm32f10x_dac
|
|
SPL+=stm32f10x_dbgmcu
|
|
SPL+=stm32f10x_dma
|
|
SPL+=stm32f10x_exti
|
|
SPL+=stm32f10x_flash
|
|
SPL+=stm32f10x_fsmc
|
|
SPL+=stm32f10x_gpio
|
|
SPL+=stm32f10x_i2c
|
|
SPL+=stm32f10x_iwdg
|
|
SPL+=stm32f10x_pwr
|
|
SPL+=stm32f10x_rcc
|
|
SPL+=stm32f10x_rtc
|
|
SPL+=stm32f10x_sdio
|
|
SPL+=stm32f10x_spi
|
|
SPL+=stm32f10x_tim
|
|
SPL+=stm32f10x_usart
|
|
SPL+=stm32f10x_wwdg
|
|
|
|
STLIBDIR=stm32_lib
|
|
OBJDIR=mk
|
|
USB_LIBDIR=usb_lib
|
|
|
|
INDEPENDENT_HEADERS+=$(STLIBDIR)/stm32f10x_conf.h
|
|
|
|
TOOLS_PATH=/usr/arm-none-eabi
|
|
TOOLS_PREFIX=arm-none-eabi-
|
|
|
|
CPFLAGS=-Obinary
|
|
ODFLAGS=-S
|
|
|
|
CFLAGS=-c -mcpu=cortex-m3 -mthumb -Wall -Werror -mapcs-frame -D__thumb2__=1 -Os
|
|
CFLAGS+=-msoft-float -gdwarf-2 -mno-sched-prolog -fno-hosted -mtune=cortex-m3
|
|
CFLAGS+=-march=armv7-m -mfix-cortex-m3-ldrd -ffunction-sections -fdata-sections
|
|
CFLAGS+=-I./cmsis -I./stm32_lib -I./usb_lib -I.
|
|
CFLAGS+=-DSTM32F10X_MD
|
|
|
|
LDFLAGS=-static -mcpu=cortex-m3 -mthumb -mthumb-interwork -Wl,--start-group
|
|
LDFLAGS+=-L$(TOOLS_PATH)/lib/thumb2 -lc -lg -lstdc++ -lsupc++ -lgcc -lm
|
|
LDFLAGS+=-Wl,--end-group -Xlinker -Map -Xlinker $(BIN).map -Xlinker
|
|
LDFLAGS+=-T ./cmsis/stm32f100rb_flash.ld -o $(BIN)
|
|
LDFLAGS+=-Wl,--gc-sections -Wl,-s
|
|
|
|
ASFLAGS=-mcpu=cortex-m3 -I./cmsis -I./stm32_lib -gdwarf-2 -gdwarf-2
|
|
|
|
CC=$(TOOLS_PREFIX)gcc
|
|
AS=$(TOOLS_PREFIX)as
|
|
SIZE=$(TOOLS_PREFIX)size
|
|
CP=$(TOOLS_PREFIX)objcopy
|
|
OD=$(TOOLS_PREFIX)objdump
|
|
|
|
# These are main project sources
|
|
SRC=$(wildcard *.c)
|
|
MAIN_OBJ=$(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
|
|
|
STM32_LIBSRC=$(addprefix $(STLIBDIR)/, $(addsuffix .c, $(SPL)))
|
|
OBJ=$(addprefix $(OBJDIR)/, $(addsuffix .o, $(SPL)))
|
|
|
|
OBJ+=$(OBJDIR)/system_stm32f10x.o $(OBJDIR)/startup.o
|
|
STM32_LIBSRC+=cmsis/system_stm32f10x.c
|
|
|
|
# USB library sources
|
|
USB_SRC=$(wildcard $(USB_LIBDIR)/*.c)
|
|
USB_OBJ=$(addprefix $(OBJDIR)/, $(USB_SRC:$(USB_LIBDIR)/%.c=%.o))
|
|
|
|
ALL_OBJ=$(OBJ) $(MAIN_OBJ) $(USB_OBJ)
|
|
ALL_SRC=$(SRC) $(STM32_LIBSRC) $(USB_SRC)
|
|
|
|
all: $(BIN)
|
|
|
|
$(OBJDIR):
|
|
mkdir $(OBJDIR)
|
|
|
|
$(OBJDIR)/%.o: $(STLIBDIR)/%.c
|
|
$(CC) $(CFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/system_stm32f10x.o: ./cmsis/system_stm32f10x.c
|
|
$(CC) $(CFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/startup.o: ./cmsis/startup_stm32f10x_md.s
|
|
$(AS) $(ASFLAGS) ./cmsis/startup_stm32f10x_md.s -o $(OBJDIR)/startup.o
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
$(CC) $(CFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/%.o: $(USB_LIBDIR)/%.c
|
|
$(CC) $(CFLAGS) $< -o $@
|
|
|
|
$(SRC) : %.c : %.h $(INDEPENDENT_HEADERS)
|
|
@touch $@
|
|
|
|
%.h: ;
|
|
|
|
$(BIN): $(OBJDIR) $(ALL_OBJ)
|
|
$(CC) $(ALL_OBJ) $(LDFLAGS)
|
|
$(CP) $(CPFLAGS) $(BIN) $(BIN).bin
|
|
$(OD) $(ODFLAGS) $(BIN) > $(BIN).list
|
|
$(SIZE) -B $(BIN)
|
|
|
|
clean:
|
|
rm -f $(ALL_OBJ) $(BIN).map $(BIN) $(BIN).list
|
|
rmdir $(OBJDIR)
|
|
|
|
load: $(BIN)
|
|
st-flash write $(BIN).bin 0x08000000
|
|
|
|
|
|
.PHONY: clean load
|