diff --git a/generator/Makefile b/generator/Makefile index 1e1457a0d4bce584d77534aa4a0a48d325b9a362..3726e6637626520c048880628e32a11dbdfdab12 100644 --- a/generator/Makefile +++ b/generator/Makefile @@ -6,14 +6,16 @@ STD_DIR := stdlib_ml TEST_DIR := tests ML_TESTS := $(wildcard $(TEST_DIR)/*.ml) ML_LAMBDA := $(wildcard $(TEST_DIR)/lambda/*.ml) -ML_JSREF := $(wildcard $(TEST_DIR)/jsref/*.ml) $(wildcard $(TEST_DIR)/jsref/*.mli) +ML_JSREF := $(wildcard $(TEST_DIR)/jsref/*.ml) +MLI_JSREF := $(wildcard $(TEST_DIR)/jsref/*.mli) OCAMLBUILD := ocamlbuild -j 4 -classic-display -use-ocamlfind # Used for stdlib and generator dependency generation CC := ocamlc -c OCAMLDEP := ocamldep -one-line -DEPSED := sed -e "s/cmo/log.js/; s/cmo/cmi/g; s/cmx/cmi/g" +# DEPSED := sed -e "s/cmo/log.js/; s/cmo/cmi/g; s/cmx/cmi/g" +DEPSED := sed -e "s/cmx/cmi/; s/cmx/cmi/g" all: main.byte @@ -47,24 +49,47 @@ tests/%.ml: tests/%.v # ../../convert-ml-strings.pl tests/jsref/*.ml # cd $(@D) && $(CURDIR)/../../ml-add-cstr-annots.pl *.ml +# tests/%.cmi: tests/%.log.js +# tests/jsref/%.cmi: tests/jsref/%.log.js +# tests/jsref/BinNat.cmi : tests/jsref/BinNat.log.js + tests/%.mli.d: tests/%.mli $(OCAMLDEP) -I $(<D) $< | $(DEPSED) > $@ tests/%.ml.d: tests/%.ml $(OCAMLDEP) -I $(<D) $< | $(DEPSED) > $@ +tests/%.log.js: tests/%.ml main.byte stdlib tests/%.cmi + ./main.byte -mode log -I $(<D) $< + tests/%.unlog.js: tests/%.ml main.byte stdlib ./main.byte -mode unlog -I $(<D) $< -tests/%.cmi: tests/%.mli stdlib - ocamlc -I stdlib_ml -open Stdlib -I $(<D) $< +tests/%.token.js: tests/%.ml main.byte stdlib + ./main.byte -mode token -I $(<D) $< + +-include tests/jsref/BinNat.ml.d -tests/%.log.js: tests/%.ml tests/%.cmi main.byte stdlib +tests/%.cmi: tests/%.ml main.byte stdlib ./main.byte -mode log -I $(<D) $< -tests/%.token.js: tests/%.ml tests/%.cmi main.byte stdlib - ./main.byte -mode token -I $(<D) $< + + + +tests/%.cmi: tests/%.ml main.byte stdlib + ./main.byte -mode unlog -I $(<D) $< + + + +tests/jsref/Translate_syntax.cmi: tests/jsref/Translate_syntax.mli stdlib + ocamlc -I tests/jsref -I stdlib_ml -open Stdlib $< + + + +# tests/%.cmi: tests/%.mli stdlib +# ocamlc -I stdlib_ml -open Stdlib -I $(<D) $< + tests: $(ML_TESTS:.ml=.log.js) $(ML_TESTS:.ml=.token.js) @@ -76,9 +101,9 @@ clean_stdlib: DIRTY_EXTS := cmi,token.js,js,d clean_tests: - rm -f $(TEST_DIR)/*.{$(DIRTY_EXTS)} - rm -f $(TEST_DIR)/lambda/*.{$(DIRTY_EXTS)} - rm -f $(TEST_DIR)/jsref/*.{$(DIRTY_EXTS)} + bash -c "rm -f $(TEST_DIR)/*.{$(DIRTY_EXTS)}" + bash -c "rm -f $(TEST_DIR)/lambda/*.{$(DIRTY_EXTS)}" + bash -c "rm -f $(TEST_DIR)/jsref/*.{$(DIRTY_EXTS)}" clean: rm -rf _build @@ -91,17 +116,20 @@ ifeq ($(filter clean%,$(MAKECMDGOALS)),) -include $(ML_TESTS:.ml=.ml.d) endif -ifeq ($(MAKECMDGOALS),tests/lambda) +#ifeq ($(MAKECMDGOALS),tests/lambda) +ifneq ($(findstring tests/lambda,$(MAKECMDGOALS)),) -include $(ML_LAMBDA:.ml=.ml.d) endif -ifeq ($(MAKECMDGOALS),tests/jsref) +ifneq ($(findstring tests/jsref,$(MAKECMDGOALS)),) +#$(error $(ML_JSREF:.ml=.ml.d)) -include $(ML_JSREF:.ml=.ml.d) --include $(ML_JSREF:.mli=.mli.d) +-include $(MLI_JSREF:.mli=.mli.d) endif + arthur: lineof.byte ./lineof.byte -o tests/calc.lineof.js tests/calc.token.js