$(eval $(call import.MODULE.rules,LIBHB))

libhb.build: $(LIBHB.a)

$(LIBHB.a): | $(dir $(LIBHB.a))
$(LIBHB.a): $(LIBHB.c.o) $(LIBHB.yasm.o)
	$(AR.exe) rsu $@ $^

$(LIBHB.c.o): $(LIBHB.d)
$(LIBHB.c.o): | $(dir $(LIBHB.c.o))
$(LIBHB.c.o): $(BUILD/)%.o: $(SRC/)%.c
	$(call LIBHB.GCC.C_O,$@,$<)

$(LIBHB.m4.out): $(BUILD/)project/handbrake.m4
$(LIBHB.m4.out): | $(dir $(LIBHB.m4.out))
$(LIBHB.m4.out): $(LIBHB.build/)%: $(LIBHB.src/)%.m4
	$(M4.exe) -Iproject $< > $@

$(LIBHB.h.out): | $(dir $(LIBHB.h.out))
$(LIBHB.h.out): $(BUILD/)%: $(SRC/)%
	$(CP.exe) $< $@

libhb.clean:
	$(RM.exe) -f $(LIBHB.out)

###############################################################################

ifneq (disabled,$(FEATURE.asm))

$(LIBHB.yasm.o): $(LIBHB.yasm.d)
$(LIBHB.yasm.o): | $(dir $(LIBHB.yasm.o))
$(LIBHB.yasm.o): $(LIBHB.yasm.build/)%.o: $(LIBHB.yasm.src/)%.asm
	$(call LIBHB.YASM.ASM_O,$@,$<)

endif

###############################################################################

ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))

libhb.build: $(LIBHB.dll)

$(LIBHB.dll): | $(dirname $(LIBHB.dll) $(LIBHB.lib))
$(LIBHB.dll): $(LIBHB.c.o) $(LIBHB.yasm.o)
	$(call LIBHB.GCC.DYLIB++,$@,$^ $(LIBHB.dll.libs))

endif

###############################################################################

clean: libhb.clean
build: libhb.build
