include ../../Make.in
include ../Make.in

EXE = keybord.mod
OBJECT = $(subst .S,.o,$(wildcard *.S)) $(subst .c,.o,$(wildcard *.c))
BINDIR = bin/


all: link_machine compile $(BINDIR)$(EXE)

link_machine:
	rm $(MODULEDIR)machine -f;
	ln -s $(MACHINEDIR) $(MODULEDIR)machine;

compile:
	cd $(LIBDIR); make;
	cd $(MACHINEDIR); make;
	cd $(ISADIR); make;
	cd $(KBDDIR); make;

$(BINDIR)$(EXE): $(addprefix $(BINDIR),$(OBJECT)) $(CRT0) $(LIBISA) $(LIBKBD) $(LIBMACHINE) $(LIBMODULE) $(LIB) $(LIBGCC)
	$(LD) -o $@ $^
	cp $@ $(COPY_MODULEDIR)

$(BINDIR)%.o:%.S
	$(CC) $(INCLUDE) $(CFLAGS) $(CFLAG_DEF) -c -o $@ $<

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


clean:
	cd $(MACHINEDIR); make clean;
	cd $(LIBDIR); make clean;
	cd $(ISADIR); make clean;
	cd $(KBDDIR); make clean;
	rm $(BINDIR)* -f
