LD = ld 
AS = as 
CC = gcc
CFLAGS = -Wall -O2 -g
LFLAGS = 
ARM32CFLAGS = -march=armv5 -marm
THUMBCFLAGS = -march=armv5t -mthumb 
THUMB2CFLAGS = -mthumb -march=armv7-a
THUMBLFLAGS = --thumb-entry=_start

all:	hello_world.arm32 hello_world.thumb hello_world.thumb2 hello_world.static


hello_world.arm32:	hello_world.arm32.o
	$(CC) $(LFLAGS) -o hello_world.arm32 hello_world.arm32.o

hello_world.arm32.o:	hello_world.c
	$(CC) $(CFLAGS) $(ARM32CFLAGS) -o hello_world.arm32.o -c hello_world.c

###

hello_world.thumb:	hello_world.thumb.o
	$(CC) $(LFLAGS) -o hello_world.thumb hello_world.thumb.o

hello_world.thumb.o:	hello_world.c
	$(CC) $(CFLAGS) $(THUMBCFLAGS) -o hello_world.thumb.o -c hello_world.c


###

hello_world.thumb2:	hello_world.thumb2.o
	$(CC) $(LFLAGS) -o hello_world.thumb2 hello_world.thumb2.o

hello_world.thumb2.o:	hello_world.c
	$(CC) $(CFLAGS) $(THUMB2CFLAGS) -o hello_world.thumb2.o -c hello_world.c


###

hello_world.static:	hello_world.o
	$(CC) $(LFLAGS) -static -o hello_world.static hello_world.o

hello_world.o:	hello_world.c
	$(CC) $(CFLAGS) -c hello_world.c


###

clean:	
	rm -f *~ *.o \
	hello_world.arm32 hello_world.thumb hello_world.thumb2 \
	 hello_world.static
