CC = arm-none-eabi-gcc
LD = arm-none-eabi-gcc
CXX = arm-none-eabi-g++
OBJCOPY = arm-none-eabi-objcopy

linker_script = bootloader.ld

CFLAGS = -march=armv6-m -g -ffunction-sections -fdata-sections -O2
CXXFLAGS = $(CFLAGS) -std=c++20 -fno-exceptions
LDFLAGS = -march=armv6-m -g --specs=nano.specs --specs=nosys.specs -Wl,--gc-sections -Wl,-T$(linker_script) -O2

all: bootloader.bin

%.bin: %.elf
	$(OBJCOPY) -O binary $< $@

bootloader.elf: main.o vector_table.o

%.elf:
	$(LD) $(LDFLAGS) -o $@ $^

.PHONY: clean

clean:
	rm -rf *.elf *.bin *.o