M_L_UDI_SRCDIR=$(M_L_SRCDIR)/udi
M_L_UDI_BUILDDIR=$(M_L_BUILDDIR)/udi
M_L_UDI_DIRFILE=$(M_L_UDI_BUILDDIR)/.directory

IDLUDIFLAGS := -I ./libudi/include/

UDI_GEN_SYMBOLS+= $(I_BUILDDIR)/fs_provider_gen.h
UDI_GEN_SYMBOLS+= $(I_BUILDDIR)/fs_client_gen.h

$(M_L_UDI_DIRFILE): $(BUILDROOT)/.directory $(M_L_UDI_SRCDIR)/Makefile $(M_L_DIRFILE)
	@echo [mkdir] $(M_L_UDI_BUILDDIR)
	@mkdir -p $(M_L_UDI_BUILDDIR)
	@touch $@


#Build rules
$(M_L_UDI_BUILDDIR)/%.o: $(M_L_UDI_SRCDIR)/%.asm $(M_L_UDI_DIRFILE)
	@echo [$(AS)] $@
	@$(AS) $(ASPARMS) $< -o $@

$(M_L_UDI_BUILDDIR)/%.o: $(M_L_UDI_SRCDIR)/%.c $(M_L_UDI_DIRFILE)
	@echo [$(CC)] $@
	@$(CC) $(CCPARMS) $(CFLAGS)  $< -o $@

$(M_L_UDI_BUILDDIR)/%.o: $(M_L_UDI_SRCDIR)/%.bas $(M_L_UDI_DIRFILE)
	@echo [$(FB)] $@
	@$(FB) $(FBPARMS) $< -o $@


#idl rules
$(M_L_UDI_BUILDDIR)/%_r.c: $(M_L_UDI_SRCDIR)/%.idl $(I_BUILDDIR)/%.h $(M_L_UDI_DIRFILE) $(BUILDROOT)/modules/libos/idlgen
	@echo [idlgen-udirx] $@
	@$(BUILDROOT)/modules/libos/idlgen udirx $< $@

$(M_L_UDI_BUILDDIR)/%_t.c: $(M_L_UDI_SRCDIR)/%.idl $(I_BUILDDIR)/%.h $(M_L_UDI_DIRFILE) $(BUILDROOT)/modules/libos/idlgen
	@echo [idlgen-uditx] $@
	@$(BUILDROOT)/modules/libos/idlgen uditx $< $@

$(I_BUILDDIR)/%.h: $(M_L_UDI_SRCDIR)/%.idl $(M_L_UDI_DIRFILE) $(BUILDROOT)/modules/libos/idlgen
	@echo [idlgen-udih] $@
	@$(BUILDROOT)/modules/libos/idlgen udih $< $@

$(M_L_UDI_BUILDDIR)/%_r.o: $(M_L_UDI_BUILDDIR)/%_r.c $(I_BUILDDIR)/%.h $(M_L_UDI_DIRFILE) $(UDI_GEN_SYMBOLS)
	@echo [$(CC)] $@
	@$(CC) $(CCPARMS) $(IDLUDIFLAGS) $(CFLAGS) $< -o $@

$(M_L_UDI_BUILDDIR)/%_t.o: $(M_L_UDI_BUILDDIR)/%_t.c $(I_BUILDDIR)/%.h $(M_L_UDI_DIRFILE) $(UDI_GEN_SYMBOLS)
	@echo [$(CC)] $@
	@$(CC) $(CCPARMS) $(IDLUDIFLAGS) $(CFLAGS) $< -o $@


# maintainer stuff
$(M_L_UDI_SRCDIR)/%.bin: $(M_L_UDI_SRCDIR)/%.v $(M_L_UDI_DIRFILE)
	@echo [$(AS)] $@
	@$(AS) $(ASKPARMS) $< -o $@

$(M_L_UDI_BUILDDIR)/veriteuc.o: $(M_L_UDI_SRCDIR)/swblit.bin
