BIN_PREFIX=/opt/teensy/bin/
CXX=${BIN_PREFIX}arm-none-eabi-g++
OBJCOPY=${BIN_PREFIX}arm-none-eabi-objcopy
CXX_FLAGS=-std=c++11 -mtune=cortex-m3 -march=armv7-m -mthumb -fno-exceptions -fno-rtti -nostartfiles
STM32FLASH=/opt/stm32flash/stm32flash
SERIAL=/dev/ttyUSB0

main.bin: main.elf
	$(OBJCOPY) -O binary main.elf main.bin

main.elf: main.o startup.o
	$(CXX) $(CXX_FLAGS) -Wl,-Tstm32f103c8t6.ld -o main.elf main.o startup.o

main.o: main.cc
	$(CXX) $(CXX_FLAGS) -c -o $@ $<

startup.o: startup.cc
	$(CXX) $(CXX_FLAGS) -c -o $@ $<

send: main.bin
	$(STM32FLASH) -g 0x8000000 -b 230400 -w main.bin $(SERIAL)

clean:
	rm -f *.elf *.o *.hex *.bin
