export OCAMLMAKEFILE = OCamlMakefile

CORE = ast.mli ast.ml \
	parseRuby.mly lexRuby.mll \
	type.mli type.ml \
	subst.mli subst.ml \
	cstrs.mli cstrs.ml \
	util.ml \
	typeEnv.mli typeEnv.ml \
	sig.mli sig.ml \
	parseDB.ml lexDB.mll \
	sigDB.mli sigDB.ml \
	subtype.ml \
	ti.ml

MAIN = truby.ml

TESTS = Test_cstr.ml Test_parseruby.ml Test_subst.ml Test_util.ml Test_typeenv.ml Test_ti.ml Test_solver.ml Test_subtype.ml

TEST_MAIN = Test_main.ml

export PACKS=oUnit,extlib
export TRASH=*~

define PROJ_test
  SOURCES := $(CORE) $(TESTS) $(TEST_MAIN)
  RESULT := test_truby
endef
export PROJ_test

define PROJ_release
  SOURCES := $(CORE) $(MAIN)
  RESULT := truby
endef
export PROJ_release

ifndef SUBPROJS
  export SUBPROJS = test release
endif

test: SUBPROJS = test
test: bc Makefile
	./test_truby

release: SUBPROJS=release
release: PACKS=extlib
release: bc
	

all: bc
	

%:
	$(MAKE) -f $(OCAMLMAKEFILE) subprojs SUBTARGET=$@

