-all-examples: examples/test examples/loadpage examples/google
-
-examples/test: examples/test.cmo
- $(OCAMLC) $(OCAMLCFLAGS) perl4caml.cma perl_init.cmo $^ -o $@
-
-#examples/test.opt: examples/test.cmx
-# $(OCAMLOPT) $(OCAMLOPTFLAGS) perl4caml.cmxa perl_init.cmx $^ -o $@
-
-examples/loadpage: examples/loadpage.cmo
- $(OCAMLC) $(OCAMLCFLAGS) perl4caml.cma perl_init.cmo $^ -o $@
-
-#examples/loadpage.opt: examples/loadpage.cmx
-# $(OCAMLOPT) $(OCAMLOPTFLAGS) perl4caml.cmxa perl_init.cmx $^ -o $@
-
-examples/google: examples/google.cmo
- $(OCAMLC) $(OCAMLCFLAGS) perl4caml.cma perl_init.cmo $^ -o $@
-
-#examples/google.opt: examples/google.cmx
-# $(OCAMLOPT) $(OCAMLOPTFLAGS) perl4caml.cmxa perl_init.cmx $^ -o $@
+all-examples: examples/test.bc examples/loadpage.bc examples/google.bc \
+ examples/test.opt examples/loadpage.opt examples/google.opt \
+ examples/parsedate.bc examples/parsedate.opt
+
+TEST_PROGRAMS := $(patsubst %.ml,%.bc,$(wildcard test/*.ml)) \
+ $(patsubst %.ml,%.opt,$(wildcard test/*.ml))
+
+test: $(TEST_PROGRAMS) run-tests
+
+check: test
+
+run-tests:
+ @fails=0; count=0; \
+ export LD_LIBRARY_PATH=`pwd`:$$LD_LIBRARY_PATH; \
+ for prog in $(TEST_PROGRAMS); do \
+ if ! $$prog; then \
+ echo Test $$prog failed; \
+ fails=$$(($$fails+1)); \
+ fi; \
+ count=$$(($$count+1)); \
+ done; \
+ if [ $$fails -eq 0 ]; then \
+ echo All tests succeeded.; \
+ exit 0; \
+ else \
+ echo $$fails/$$count tests failed.; \
+ exit 1; \
+ fi
+
+%.bc: %.cmo
+ $(OCAMLC) $(OCAMLCFLAGS) perl4caml.cma $^ -o $@
+
+%.opt: %.cmx
+ $(OCAMLOPT) $(OCAMLOPTFLAGS) -cclib -L. perl4caml.cmxa \
+ $(DYNALOADER_HACK) $^ -o $@