mirror of
https://github.com/eddyem/IR-controller.git
synced 2026-03-20 16:51:02 +03:00
copy
This commit is contained in:
121
Makefile
Normal file
121
Makefile
Normal file
@@ -0,0 +1,121 @@
|
||||
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
|
||||
Reference in New Issue
Block a user