# ch32v003
TARGET?= ch32v003
TOOL  ?= gcc

PRJ    = example

VPATH  = . ./$(TARGET)
BLD    = ./build/
DFLAGS = -d
LFLAGS = -g
LDLIBS =
BFLAGS = --strip-unneeded

CFLAGS = -MMD -Wall -ggdb -fno-exceptions -ffunction-sections -fdata-sections
CFLAGS+= -I. -I./$(TARGET) -I./common -I/usr/include/newlib
DEL    = rm -f

# zdrojaky
OBJS   = main.o morse.o generator.o pwmclass.o sin.o

include $(TARGET)/$(TOOL).mk
BOBJS = $(addprefix $(BLD),$(OBJS))

all: $(BLD) $(PRJ).elf
# ... atd.
-include $(BLD)*.d
# linker
$(PRJ).elf: $(BOBJS)
	-@echo [LD $(TOOL),$(TARGET)] $@
	@$(LD) $(LFLAGS) -o $(PRJ).elf $(BOBJS) $(LDLIBS)
	-@echo "size:"
	@$(SIZE) $(PRJ).elf
	-@echo "listing:"
	$(DUMP) $(DFLAGS) $(PRJ).elf > $(PRJ).lst
	-@echo "OK."
	$(COPY) $(BFLAGS) -O binary $(PRJ).elf $(PRJ).bin
	$(COPY) $(BFLAGS) -O ihex $(PRJ).elf $(PRJ).hex
# preloz co je potreba
$(BLD)%.o: %.c
	-@echo [CC $(TOOL),$(TARGET)] $@
	@$(CC) -c $(CFLAGS) $< -o $@
$(BLD)%.o: %.cpp
	-@echo [CX $(TOOL),$(TARGET)] $@
	@$(CXX) -std=c++17 -fno-rtti -c $(CFLAGS) $< -o $@
$(BLD):
	mkdir $(BLD)
sin.c: sin.py
	./sin.py
flash: $(PRJ).elf
	minichlink -w $(PRJ).bin flash -b
# vycisti
clean:
	$(DEL) $(BLD)* *.lst *.bin *.hex *.elf *.map sin.c *~
.PHONY: all clean