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 diff, diff arith)

.PHONY: clean

clean:
	CamlCleanRecursive()
