
shell:
	ocamlc -o shell cbvm_instr.mli cbvm_print.ml \
		cbvm_read.ml cbvm_abstr.ml cbvm_step.ml cbvm_shell.ml

run:
	ocamlc -o run cbvm_instr.mli cbvm_eval.mli cbvm_print.ml \
		cbvm_read.ml cbvm_eval.ml cbvm_run.ml

optim:
	ocamlc -o optim cbvm_instr.mli cbvm_eval.mli cbvm_print.ml \
		cbvm_read.ml cbvm_eval.ml cbvm_normf.ml cbvm_compr.ml \
		cbvm_optim.ml

test:
	ocamlc -o test str.cma cbvm_instr.mli cbvm_eval.mli cbvm_print.ml \
		cbvm_read.ml cbvm_abstr.ml cbvm_eval.ml cbvm_normf.ml \
		cbvm_test.ml
	./test tests.cb.ts

clean: gc
	rm -f *.cm[ioa] run shell optim test

gc:
	rm -f *~ .#* core *.core
