
GCCPREFIX=/usr/local/arm-elf/bin

CC=$(GCCPREFIX)/arm-elf-gcc
CXX=$(GCCPREFIX)/arm-elf-g++
AS=$(GCCPREFIX)/arm-elf-as
LD=$(GCCPREFIX)/arm-elf-ld
AR=$(GCCPREFIX)/arm-elf-ar
OBJCOPY=$(GCCPREFIX)/arm-elf-objcopy

CFLAGS=-Os -mthumb -msoft-float
CXXFLAGS=$(CFLAGS) -I liblpc17 -I libmbed
LDFLAGS=-T liblpc17/LPC17xx.ld -static -mthumb -nostdlib

LIBS=\
	liblpc17/liblpc17.a \
	libmbed/libmbed.a \
	libc/libc.a \
	/usr/local/arm-elf/lib/gcc/arm-elf/4.5.2/thumb/libgcc.a \
	/usr/local/arm-elf/arm-elf/lib/thumb/libstdc++.a


all:
	cd libc; make
	cd liblpc17; make
	cd libmbed; make
	make main.bin

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


main.elf: main.o $(LIBS)
	$(CC) $(LDFLAGS) $^ -o $@

clean:
	-rm main.bin
	-rm main.elf
	-rm *.o
	cd libc; make clean
	cd liblpc17; make clean
	cd libmbed; make clean

write: main.bin
	lpc21isp -bin main.bin /dev/ttyS0 115200 100000

