#include Config.mk

LIB_TARGET=lib/liblib.a
LIBVMRT=libvmrt/libvmrt.a
LIBHAL=libhal/libhal.a

AWK = awk
AWKSCRIPT = vmlib/libentry.awk
LIBCALLS = libcalls.txt
INCLUDE = include/vmlibcalln.h

.PHONY: vmlib

all: $(LIB_TARGET) vmlang vmasm vmlink vmobjdump $(LIBVMRT) \
		vmachined vmlibcall vmlib lincond $(LIBHAL) hal-mgr

$(LIB_TARGET):
	$(MAKE) -C lib

$(LIBHAL): $(LIB_TARGET)
	$(MAKE) -C libhal

vmlang: $(LIB_TARGET)
	$(MAKE) -C vmlang

vmasm: $(LIB_TARGET)
	$(MAKE) -C vmasm

vmlink: $(LIB_TARGET)
	$(MAKE) -C vmlink

vmobjdump: $(LIB_TARGET)
	$(MAKE) -C vmobjdump

$(LIBVMRT): $(LIB_TARGET)
	$(MAKE) -C libvmrt

vmachined: $(LIBVMRT) $(LIBHAL)
	$(MAKE) -C vmachined

vmlibcall: $(LIB_TARGET) vmlib
	$(MAKE) -C vmlibcall

vmlib: $(LIB_TARGET) vmasm
	$(AWK) -f $(AWKSCRIPT) -v inc=$(INCLUDE) -v  dir=vmlib $(LIBCALLS)
	$(MAKE) -C vmlib

lincond: $(LIB_TARGET)
	$(MAKE) -C lincond

hal-mgr: $(LIBHAL)
	$(MAKE) -C hal-mgr

clean:
	$(MAKE) -C lib clean
	$(MAKE) -C libhal clean
	$(MAKE) -C vmlang clean
	$(MAKE) -C vmasm clean
	$(MAKE) -C vmlink clean
	$(MAKE) -C libvmrt clean
	$(MAKE) -C vmlibcall clean
	$(MAKE) -C vmobjdump clean
	$(MAKE) -C vmachined clean
	$(MAKE) -C vmlib clean
	$(MAKE) -C lincond clean
	$(MAKE) -C hal-mgr clean

