NETDIR=net/
TOPDIR=./
TOOLSDIR=tools/
TOOLSBINDIR=tools/bin/
include Make.in
SIZE=

OBJECT=setup1.o setup2.o lib1.o lib2.o except.o interrupt1.o interrupt2.o mp.o sp.o\
	mm.o time.o proc.o segment.o console.o fs.o floppy.o ata.o pci.o device.o serial.o\
	error.o elf.o miscdev.o ext2_fs.o signal.o apm1.o apm2.o reboot1.o reboot2.o term.o\
	wait.o debug.o

DEPS=$(OBJECT:.o=.d)


#********************************************* Make *****************************************************

all:compnet deps $(BINDIR)setup $(BINDIR)bootload


compnet:
	cd $(NETDIR);make

deps:$(addprefix $(DEPSDIR),$(DEPS))

$(DEPSDIR)%.d:%.c
	(echo -n $(BINDIR);$(DEP) $<) > $@

$(DEPSDIR)%.d:%.S
	(echo -n $(BINDIR);$(DEP) $<) > $@

include $(addprefix $(DEPSDIR),$(DEPS))


$(BINDIR)setup:$(addprefix $(BINDIR),$(OBJECT)) $(NETDIR)$(BINDIR)obj.o $(LIBGCC)
	$(LD) -Ttext $(START_ADDRESS) -o $@ $^ -Map $(BINDIR)link.map

$(BINDIR)%.o:%.S
	$(CC) -o $@ $<

$(BINDIR)%.o:%.c
	$(CC) -o $@ $<


bin/bootload:bootload.S config.h bin/setup
	$(TOOLSBINDIR)size bin/setup | $(TOOLSBINDIR)inputstr bootload.S SETUP_SIZE=
	$(CC) -o bin/bootload.o bootload.S
	$(LD) --oformat binary -Ttext 0 -o bin/bootload bin/bootload.o



floppy:make_boot
	cp $(BINDIR)boot.img /dev/fd0

boot:make_boot
	rawwritewin $(BINDIR)boot.img

make_boot:
	$(TOOLSBINDIR)elfload $(BINDIR)setup $(BINDIR)setup.img
	$(TOOLSDIR)check_size
	dd if=$(BINDIR)bootload of=$(BINDIR)boot.img
	$(TOOLSBINDIR)boot_sign $(BINDIR)boot.img
	dd if=$(BINDIR)setup.img of=$(BINDIR)boot.img seek=1


clean:
	cd $(NETDIR);make clean
	rm -f $(BINDIR)*
	rm -f $(DEPSDIR)*
