BYTE_ENABLED = true
NATIVE_ENABLED = false

public.CamlTargets(mods) =
    private.r[] = $(addsuffixes .cmi .sig, $(mods))
    if $(NATIVE_ENABLED)
        r[] += $(addsuffixes .cmx .o, $(mods))
        export r
    if $(BYTE_ENABLED)
        r[] += $(addsuffixes .cmo, $(mods))
        export r
    return $(r)

public.CamlCleanRecursive() =
    rm -f $(filter-proper-targets $(ls R, .)) *.o

section
	.DEFAULT: $(OCamlProgram quadTree, quadTree arith calc diff)

section
	USE_OCAMLFIND = true
	OCAMLPACKS[] += oUnit
	OCamlProgram(test, test_ha9)
	$(CamlTargets test test_ha9):

.PHONY: clean

clean:
	CamlCleanRecursive()
