41 lines
963 B
Makefile
41 lines
963 B
Makefile
DEVICE = stm8s103f3
|
|
F_CPU ?= 16000000
|
|
OLED ?= SSD1306_128_64
|
|
FONTSET_MINI ?= FONTSET_MINI
|
|
|
|
SRCDIR = ./src
|
|
INCDIR = ./inc
|
|
|
|
## Get program name from enclosing directory name
|
|
PROGRAM = $(lastword $(subst /, ,$(CURDIR)))
|
|
|
|
SOURCES=$(wildcard *.c $(SRCDIR)/*.c)
|
|
OBJECTS=$(SOURCES:.c=.rel)
|
|
HEADERS=$(wildcard *.h $(INCDIR)/*.h)
|
|
|
|
CC = sdcc
|
|
PROGRAMMER = stlinkv2
|
|
|
|
DEFINES=
|
|
DEFINES += -DSTM8S103
|
|
|
|
CPPFLAGS = -I$(INCDIR)
|
|
CFLAGS = --Werror --std-sdcc99 -mstm8 --opt-code-size $(DEFINES) -DF_CPU=$(F_CPU)UL -D$(OLED) -D$(FONTSET_MINI)
|
|
AR = sdar
|
|
ARFLAGS = -rc
|
|
|
|
.PHONY: all clean flash
|
|
|
|
all: $(PROGRAM).lib
|
|
|
|
$(PROGRAM).lib: $(OBJECTS)
|
|
$(AR) $(ARFLAGS) $(PROGRAM).lib $^
|
|
|
|
%.rel : %.c $(HEADERS)
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
|
|
|
CCOMPILEDFILES=$(SOURCES:.c=.asm) $(SOURCES:.c=.lst) $(SOURCES:.c=.rel) \
|
|
$(SOURCES:.c=.rst) $(SOURCES:.c=.sym)
|
|
clean:
|
|
@rm -f $(PROGRAM).lib $(PROGRAM).cdb $(PROGRAM).lk $(PROGRAM).map $(CCOMPILEDFILES)
|