LU_BUF_SRCDIR=$(LU_SRCDIR)/buf
LU_BUF_BUILDDIR=$(LU_BUILDDIR)/buf
LU_BUF_DIRFILE=$(LU_BUILDDIR)/buf/.directory

$(LU_BUF_DIRFILE): $(LU_DIRFILE) $(LU_BUF_SRCDIR)/Makefile
	@echo [mkdir] $(LU_BUF_BUILDDIR)
	@mkdir -p $(LU_BUF_BUILDDIR)
	@touch $(LU_BUF_DIRFILE)

LU_LIBFILES += $(LU_BUF_BUILDDIR)/buf_free.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/buf_inject.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/buf_read.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/buf_write.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/buf_alloc.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/gen_copy.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/gen_free.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/libc_free.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/libc_copy.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/libc_lock.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/libc_unlock.o
LU_LIBFILES += $(LU_BUF_BUILDDIR)/null_free.o

$(LU_BUF_BUILDDIR)/%.o: $(LU_BUF_SRCDIR)/%.c $(LU_BUF_DIRFILE)
	@echo [$(CC)] $@
	@$(CC) $(CCPARMS) $(CFLAGS) $(LU_INCLUDE) $< -o $@

$(LU_BUF_BUILDDIR)/%.ho: $(LU_BUF_SRCDIR)/%.c $(LU_BUF_DIRFILE)
	@echo [$(HOSTCC)] $@
	@$(HOSTCC) $(HOSTCCCPARMS) $(LU_INCLUDE) $< -o $@

#Test builds
T_LUDI_BUF_SRCDIR=$(T_LUDI_SRCDIR)/buf
T_LUDI_BUF_BUILDDIR=$(T_LUDI_BUILDDIR)/buf
T_LUDI_BUF_DIRFILE=$(T_LUDI_BUF_BUILDDIR)/.directory

$(T_LUDI_BUF_DIRFILE): $(T_LUDI_DIRFILE) $(T_LUDI_BUF_SRCDIR)/Makefile $(T_LUDI_DIRFILE)
	@echo -e '.\c'
	@mkdir -p $(T_LUDI_BUF_BUILDDIR)
	@touch $@

$(T_LUDI_BUF_BUILDDIR)/%.o: $(T_LUDI_BUF_SRCDIR)/%.c $(T_LUDI_BUF_DIRFILE)
	@$(HOSTCC) $(HOSTCCPARMS) $(LIBUDITESTCC) -c $(LU_INCLUDE) $(CFLAGS) $< -o $@

$(T_LUDI_BUF_BUILDDIR)/%.o: $(T_LUDI_BUF_SRCDIR)/%.bas $(T_LUDI_BUF_DIRFILE)
	@$(HOSTFB) $(HOSTFBPARMS) $< -o $@
