OBJCOPY	= arm-linux-objcopy
CC	= arm-linux-gcc
LD	= arm-linux-ld

CFLAGS	+= -I./include -fno-builtin -O2 -Wall 
CFLAGS  += -mpic-register=r10 -msingle-pic-base  -fPIC
LDFLAGS = -Map bootstrap.map -T bootstrap.lds

CSRC	 = src/font.c src/video.c src/mmu.c src/interrupts.c
CSRC	+= src/irq.c src/dma.c
CSRC	+= src/linux.c src/main.c
ASRC	 = src/lock.S src/entry.S src/head.S

OBJS    = $(CSRC:.c=.o) $(ASRC:.S=.o)
LIBS    = libutils/libutils.a drivers/libdrivers.a fs/libfs.a

all: bootstrap.bin

bootstrap.bin : bootstrap
	$(OBJCOPY)  -v -O binary bootstrap bootstrap.bin -R .note -R .comment

bootstrap: $(LIBS) $(OBJS) 
	$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o bootstrap

src/head.o :
	$(CC) $(CFLAGS) -c -o src/head.o -D__ASSEMBLY__  src/head.S

src/entry.o :
	$(CC) $(CFLAGS) -c -o src/entry.o -D__ASSEMBLY__  src/entry.S

$(CSRC):
	$(CC) -c $(CFLAGS) $@

$(LIBS):
	$(MAKE) -C `dirname $@`

clean:
	find . -type f \
		\( -name 'core' -o -name '*.o' \
		-o -name '*.a' \) -print \
		| xargs rm -f

	rm -fr $(OBJS) $(LIBS) bootstrap bootstrap.bin
install: bootstrap.bin
	cp bootstrap.bin /inbox
