TARGET?= ch32v203 #TOOL ?= gcc TOOL ?= clang PRJ = example VPATH = . ./common ./$(TARGET) BLD = ./build/ DFLAGS = -d LFLAGS = -g LDLIBS = BFLAGS = --strip-unneeded CFLAGS = -MMD -Wall -Wno-parentheses -ggdb -fno-exceptions -ffunction-sections -fdata-sections CFLAGS+= -I. -I./$(TARGET) -I./common DEL = rm -f # zdrojaky OBJS = main.o usart.o print.o adcdma.o #OBJS += 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 # preloz co je potreba $(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 *~ .PHONY: all clean flash run