# Gauntlet/kernel/Makefile
# Created by Adam Wiggins: 28/06/1999
# Last Modified by Adam Wiggins: 24/10/1999
# Makefile for Gauntlet

include ../Makefile.conf
include ./Makefile.conf

KERNEL=gauntlet_$(PLATFORM).img
SOURCES=startup.S exception.S ipc.S dispatch.S syscall.S panic.S init.c debug.c\
        sigma0_temp.S
OBJECTS=$(patsubst %.S, %.o, $(patsubst %.c, %.o, $(SOURCES)))
LIBS=libcpu.a libplatform.a
SUBDIRS=$(CPU_DIR) $(PLATFORM_DIR)

$(KERNEL): $(OBJECTS) $(LIBS) kernel.ld symbols.ld $(PLATFORM_DIR)/platform.ld \
	./Makefile ./Makefile.conf ../Makefile.conf
	$(LD) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) -lgcc
	mv $@ ..

striped: $(KERNEL)
	$(OBJCOPY) --remove-section .comment $(KERNEL) $(KERNEL)
	$(STRIP) $(KERNEL)

libcpu.a: $(CPU_DIR)/* ./Makefile ./Makefile.conf ../Makefile.conf
	(cd $(CPU_DIR); $(MAKE))

libplatform.a: $(PLATFORM_DIR)/* ./Makefile ./Makefile.conf ../Makefile.conf
	(cd $(PLATFORM_DIR); $(MAKE))

.depend: $(SOURCES) ./Makefile ./Makefile.conf ../Makefile.conf
	$(CC) -M $(CPPFLAGS) $(SOURCES) > .depend

clean:
	rm -f *.o *.a *~
	@for i in $(SUBDIRS);\
	do \
	(cd $$i; $(MAKE) clean);\
	done

include .depend
