#
# Makefile
#  ターゲット allは、SRAMで実行するためのコードを生成する
#  ターゲット romは、FLASH ROM上で実行するためのコードを生成する。
# ターゲット変更前に make cleanを実行すること。

rom : main.o start.o vector.o mmr.o pll.o lpc1768_rom.ld
	arm-none-eabi-gcc -nostartfiles -mcpu=cortex-m3 -mthumb -g main.o start.o vector.o mmr.o pll.o -T lpc1768_rom.ld
	arm-none-eabi-objcopy -O ihex a.out a.hex
	echo "Created a.hex for FLASH ROM"

sram : main.o start.o vector.o mmr.o pll.o lpc1768_sram.ld
	arm-none-eabi-gcc -nostartfiles -mcpu=cortex-m3 -mthumb -g main.o start.o vector.o mmr.o pll.o -T lpc1768_sram.ld
	echo "Created a.out for SRAM"

main.o : main.c Makefile  vector.h
	arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g2 -c main.c
vector.o : vector.c Makefile
	arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g2 -c vector.c vector.h
start.o : start.S Makefile
	arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g2 -c start.S
mmr.o : mmr.c Makefile 
	arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g2 -c mmr.c
pll.o : pll.c Makefile 
	arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g2 -c pll.c

all : sram

clean :
	rm *.o a.out

