# 28.11.2020 first try at a makefile
# Project: DnD Dice

# SDCC compiling flags, for more refer to SDCC Compiler User Guide
# http://sdcc.sourceforge.net/doc/sdccman.pdf

OPT_FLAG = --opt-code-size

DEBUG_FLAG = --debug --no-peep

ARCH_FLAG = --nogcse --all-callee-saves --stack-auto --float-reent

DEV_FAMILY = -mstm8

DEV_NAME = -D STM8S105

C_STANDARD = --std-sdcc99

COMMON_FLAG = --verbose --fverbose-asm -lstm8

SPL_OUT_PATH = SPL/rel/

OUT_PATH = _build/

SPL_INC_DIR = SPL/inc/

# SDCC linker flags: sdcc -c $(DEV_FAMILY) $(OPT_FLAG) $(C_STANDARD) $(DEBUG_FLAG) $(ARCH_FLAG) $(COMMON_FLAG) $<

# stm8flash settings



# Project settings

INC_DIR += \

SRC_FILES += \

OBJ_DIR		= _build/obj

BIN_DIR		= _build/bin

# Makefile internal stuff

SPL_SOURCES  := $(wildcard SPL/src/*.c)
SPL_INCLUDES := $(wildcard SPL/inc/*.h)
#SPL_OBJECTS  := $(patsubst %.c,%.rel,$(SPL_SOURCES))
SPL_OBJECTS  := \
 stm8s_gpio_Init.rel \
 stm8s_uart2_Init.rel \
 stm8s_uart2_GetFlagStatus.rel \
 stm8s_uart2_SendData8.rel

SOURCES  := $(wildcard *.c)
INCLUDES := $(wildcard *.h)
OBJECTS  := $(patsubst %.c,%.rel,$(SOURCES))

default: $(OBJECTS) $(SPL_OBJECTS)
	sdcc -o $(OUT_PATH) $(DEV_FAMILY) $(addprefix $(OUT_PATH), $(OBJECTS)) $(SPL_OBJECTS)
	@echo "Linked successfully!"

$(OBJECTS): %.rel : %.c
	sdcc -c -o $(OUT_PATH) -I $(SPL_INC_DIR) $(DEV_FAMILY) $(OPT_FLAG) $(C_STANDARD) $(DEBUG_FLAG) $(ARCH_FLAG) $(COMMON_FLAG) $<
	@echo "Compiled "$<" successfully!"

$(SPL_OBJECTS): %.rel : %.c
	sdcc -c -o $(SPL_OUT_PATH) -I $(SPL_INC_DIR) $(DEV_FAMILY) $(OPT_FLAG) $(C_STANDARD) $(DEBUG_FLAG) $(ARCH_FLAG) $(COMMON_FLAG) $<
	@echo "Compiled "$<" successfully!"

flash:
	stm8flash -c stlinkv2 -p stm8s105c4 -w $(OUT_PATH)main.ihx

