CC = /usr/local/arm-tools/bin/arm-elf-gcc
AS = /usr/local/arm-tools/bin/arm-elf-as
LD = /usr/local/arm-tools/bin/arm-elf-ld
OBJCPY = /usr/local/arm-tools/bin/arm-elf-objcopy

NEWLIB_BASE=/usr/local/arm-tools/newlibexport/arm-elf
NEWLIB_INC = $(NEWLIB_BASE)/include
NEWLIB_LIB = $(NEWLIB_BASE)/lib

GCC_LIB = /usr/local/arm-tools/lib/gcc/arm-elf/4.3.1

TARGET_SYSCALL_LIB = lp2833

all: memory.def startup.o  gcc_sample.o gcc_sample_thumb.o startup_thumb.o
	$(LD) startup.o gcc_sample.o target_syscalls.o syscalls.o -L$(NEWLIB_LIB) -L$(GCC_LIB) -lc -lgcc -T memory.def -o gcc_sample -Map gcc_sample.map
	$(OBJCPY) -O ihex gcc_sample gcc_sample.hex
#	$(LD) startup_thumb.o gcc_sample_thumb.o -T memory_thumb.def -o gcc_sample_thumb -Map gcc_sample_thumb.map
#	$(OBJCPY) -O ihex gcc_sample_thumb gcc_sample_thumb.hex

startup.o : startup.s
	$(AS) startup.s -o startup.o
startup_thumb.o : startup.s
	$(AS) --defsym THUMB=1 startup.s -o startup_thumb.o
gcc_sample.o: gcc_sample.c
	$(CC) -c $< -I$(NEWLIB_INC) -o gcc_sample.o
../newlib_sample/syscalls.o: ../../common/syscalls.c
	$(CC) -c $< -I$(NEWLIB_INC) -o ../newlib_sample/syscalls.o
target_syscalls.o: target_syscalls.c
	$(CC) -c $< -I$(NEWLIB_INC) -o target_syscalls.o
gcc_sample_thumb.o: gcc_sample.c
	$(CC) -mthumb-interwork -mthumb -c $< -I$(NEWLIB_INC) -o gcc_sample_thumb.o
clean:
	rm -f *.o gcc_sample gcc_sample_thumb *.map *.hex
