test: test_mono test_poly_c test_poly_ml test_poly_py
eext = .exe

test_mono:
	gcc mono.c -o test_c0$(eext)
	-./test_c0$(eext)
	ocaml mono.ml
	python mono.py
	guile -s mono.scm

test_poly_c:
	gcc poly_c_ml.c -o ./test_c1$(eext)
	-./test_c1$(eext)
	ocaml poly_c_ml.c
	gcc poly_c_py.c -o ./test_c2$(eext)
	-./test_c2$(eext)
	python poly_c_py.c
	gcc poly_c_scm.c -o ./test_c3$(eext)
	-./test_c3$(eext)
	guile -s poly_c_scm.c

test_poly_ml:
	ocaml poly_ml_py.ml
	python poly_ml_py.ml
	ocaml poly_ml_scm.ml
	guile -s poly_ml_scm.ml

test_poly_py:
	python poly_py_scm.py
	guile -s poly_py_scm.py


clean:
	-rm -f test_c0$(eext) test_c1$(eext) test_c2$(eext) test_c3$(eext)

backup:
	-rm -f backup.tar.gz
	tar cf backup.tar *.c *.ml *.py *.scm Makefile
	gzip -9 backup.tar
