INCDIR = ./inc
SRCDIR = ./src
OBJDIR = ./obj
HEXDIR = ./hex

LIBDIR  =  ./lib
# ------------------------------------------------------
# Target and Source
TARGET = $(HEXDIR)/main

#C_SRC = $(SRCDIR)/helloworld.c
C_SRC = $(wildcard  $(SRCDIR)/*.c)
ASM_SRC = 

C_SRC_FILE = $(notdir $(C_SRC))
C_OBJ_FILE = $(C_SRC_FILE:%.c=%.c.rel)

#OBJ = $(OBJDIR)/helloworld.c.rel      
OBJ = $(addprefix $(OBJDIR)/, $(C_OBJ_FILE)) 

DEFINES=STM8S103

# ------------------------------------------------------
# SDCC

CC = sdcc

MCU_MODEL = stm8

LIBS    = stm8.lib stm8s_STM8S103_SPL.lib
LIBPATH = -L $(LIBDIR)

#DEBUG = --debug
AFLAGS = -l -s
CFLAGS = -I$(INCDIR) -m$(MCU_MODEL) --std-sdcc99 $(DEBUG)
LFLAGS = $(LIBPATH) $(LIBS) -m$(MCU_MODEL) $(DEBUG)

# ------------------------------------------------------
# S = @

.PHONY: all clean compile

all: clean compile

compile: $(TARGET).hex

$(HEXDIR)/%.hex: $(OBJDIR)/%.ihx
	cp $^ $(TARGET).ihx
	packihx $^ > $@

$(OBJDIR)/%.ihx: $(OBJ)
	$(CC) -o $@ $(LFLAGS) $^

.SECONDARY:
$(OBJDIR)/%.c.rel: $(SRCDIR)/%.c
	$(CC) -o $@ $(CFLAGS) -c $^
	
clean:
	$(S) rm -rf $(OBJDIR)/*
	$(S) rm -rf $(TARGET).hex
	$(S) rm -rf $(TARGET).ihx
	
flash: compile
	stm8flash -c stlinkv2 -p stm8s003?3 -w $(TARGET).ihx
