M_L_SRCDIR=$(M_SRCDIR)/libos
M_L_BUILDDIR=$(M_BUILDDIR)/libos
M_L_DIRFILE=$(M_L_BUILDDIR)/.directory

$(M_L_DIRFILE): $(BUILDROOT)/.directory $(M_L_SRCDIR)/Makefile $(M_DIRFILE)
	@echo [mkdir] $(M_L_BUILDDIR)
	@mkdir -p $(M_L_BUILDDIR)
	@touch $@

include $(M_L_SRCDIR)/udi/Makefile

M_LIBFILES += $(M_L_BUILDDIR)/comproxy.o
M_LIBFILES += $(M_L_BUILDDIR)/drivercom.o
M_LIBFILES += $(M_L_BUILDDIR)/event.o
M_LIBFILES += $(M_L_BUILDDIR)/event_add.o
M_LIBFILES += $(M_L_BUILDDIR)/finddev.o
M_LIBFILES += $(M_L_BUILDDIR)/query.o
M_LIBFILES += $(M_L_BUILDDIR)/queryutil.o

M_L_IDLFILES += $(M_L_SRCDIR)/idlmain.c 
M_L_IDLFILES += $(M_L_SRCDIR)/idlparse.c 
M_L_IDLFILES += $(M_L_SRCDIR)/idlemit_bi.c 
M_L_IDLFILES += $(M_L_SRCDIR)/idlemit_bas.c 
M_L_IDLFILES += $(M_L_SRCDIR)/idlemit_udih.c
M_L_IDLFILES += $(M_L_SRCDIR)/idlemit_udidef.c
M_L_IDLFILES += $(M_L_SRCDIR)/idlemit_udirx.c
M_L_IDLFILES += $(M_L_SRCDIR)/idlemit_uditx.c

#Build rules
$(M_L_BUILDDIR)/%.o: $(M_L_SRCDIR)/%.asm $(M_L_DIRFILE)
	@echo [$(AS)] $@
	@$(AS) $(ASPARMS) $< -o $@

$(M_L_BUILDDIR)/%.o: $(M_L_SRCDIR)/%.c $(M_L_DIRFILE)
	@echo [$(CC)] $@
	@$(CC) $(CCPARMS) $(CFLAGS)  $< -o $@

$(M_L_BUILDDIR)/%.o: $(M_L_SRCDIR)/%.bas $(M_L_DIRFILE)
	@echo [$(FB)] $@
	@$(FB) $(FBPARMS) $< -o $@

$(M_L_BUILDDIR)/%.ho: $(M_L_SRCDIR)/%.c $(M_F_VD_DIRFILE)
	@echo [$(HOSTCC)] $@
	@$(HOSTCC) $(HOSTCCCPARMS) $< -o $@

#idl compiler
$(M_L_BUILDDIR)/idlgen: $(M_L_IDLFILES) $(M_L_SRCDIR)/idltool.h $(M_L_DIRFILE)
	@echo [$(HOSTCC)] $@
	@$(HOSTCC) -g -Wall -Wextra -pedantic -std=c99 $(M_L_IDLFILES) -o $@

$(M_L_BUILDDIR)/idlgen: include/common/mos/channel.bi

#idl rules
$(M_L_BUILDDIR)/%.bas: $(M_L_SRCDIR)/%.idl $(I_BUILDDIR)/%.bi $(M_L_DIRFILE) $(BUILDROOT)/modules/libos/idlgen
	@echo [idlgen-bas] $@
	@$(BUILDROOT)/modules/libos/idlgen bas $< $@

$(I_BUILDDIR)/%.bi: $(M_L_SRCDIR)/%.idl $(M_L_DIRFILE) $(BUILDROOT)/modules/libos/idlgen
	@echo [idlgen-bi] $@
	@$(BUILDROOT)/modules/libos/idlgen bi $< $@

$(M_L_BUILDDIR)/%.o: $(M_L_BUILDDIR)/%.bas $(M_L_DIRFILE)
	@echo [$(FB)] $@
	@$(FB) $(FBPARMS) $< -o $@

#dependencies
$(M_L_BUILDDIR)/queryutil.o: $(I_BUILDDIR)/query.bi include/$(ARCH)-$(TYPE)/mos/driverutil.bi

