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

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


all: link_machine compile $(addprefix $(BINDIR),$(EXEFILE))

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

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

$(addprefix $(BINDIR),$(EXEFILE)) : $(addprefix $(BINDIR),$(OBJECT))
	$(LD) -o $@ $(addsuffix .o,$@) $(CRT0) $(LIBMACHINE) $(LIBMODULE) $(LIB) $(LIBGCC)
	cp $@ $(TESTDIR)

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

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


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