BOOTDIR=boot/
NETDIR=net/
TOPDIR=./
include Make.in
BINDIR=bin/
DEPSDIR=deps/

OBJECT=setup1.o apm1.o interrupt1.o lib_i386.o reboot1.o $(subst .c,.o,$(wildcard *.c))

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


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

all:compile_net deps $(BINDIR)$(SETUP) compile_boot


compile_net:
	cd net;make

compile_boot:
	cd boot;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)$(NETOBJ) $(LIBGCC)
	$(LD) -Ttext $(START_ADDRESS) -o $@ $^ -Map $(BINDIR)link.map

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

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


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

floppy:make_boot
	rawwritewin $(BINDIR)boot.img

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


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