TOOL ?= gcc #TOOL ?= clang TARGET = ch32v203 PRJ = example VPATH += ./ch32v203 BLD = ./build/ DFLAGS = -d LFLAGS = -g LDLIBS = BFLAGS = --strip-unneeded CFLAGS = -MMD -Wall -Wno-format -Wno-parentheses -ggdb -fno-exceptions -ffunction-sections -fdata-sections CFLAGS+= -I. -I./ch32v203 DEL = rm -f # zdrojaky OBJS = main.o hack.o print.o OBJS += startup.o system.o usb_desc.o OBJS += cdc_class.o include $(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 # preloz co je potreba $(BLD)%.o: %.S -@echo [AS $(TOOL),$(TARGET)] $@ $(AS) -$(CCPU) $< -o $@ $(BLD)%.o: %.c -@echo [CC $(TOOL),$(TARGET)] $@ @$(CC) -std=gnu99 -c $(CFLAGS) $< -o $@ $(BLD)%.o: %.cpp -@echo [CX $(TOOL),$(TARGET)] $@ @$(CXX) -std=c++17 -fno-rtti -c $(CFLAGS) $< -o $@ $(BLD): mkdir $(BLD) flash: $(PRJ).elf minichlink -w $(PRJ).bin flash -b # vycisti clean: $(DEL) $(BLD)* *.lst *.bin *.elf *.map *~ mystrings.inc .PHONY: all clean flash run