Revert the integration of menhir for the time being.
[tatoo.git] / Remakefile.in
index 2a32aa2..1ff0b30 100644 (file)
@@ -1,11 +1,10 @@
 .OPTIONS = variable-propagation
-
 OCAMLFINDPACKAGES = "ulex,unix,expat,camlp4.macro,bigarray"
 OCAMLFINDSYNTAX = camlp4o
 OCAMLFINDPPOPTS = $(addprefix "-ppopt ", @CAMLP4FLAGS@ -I include)
 OCAMLFINDINCLUDES = $(addprefix "-I ", src)
-OCAMLFINDFLAGSNOSYNTAX = -package $(OCAMLFINDPACKAGES) $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES)
-OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) $(OCAMLFINDFLAGSNOSYNTAX)
+OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) -package $(OCAMLFINDPACKAGES)  \
+       $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES)
 OCAMLFINDLINKFLAGS = -linkpkg
 PACKAGE = @PACKAGE_TARNAME@
 SRC = src
@@ -14,15 +13,14 @@ BYTE = src/@PACKAGE_TARNAME@.byte@EXE@
 EXE = @EXE@
 
 REMAKE = @REMAKE@
+OCAMLDEP = @OCAMLDEP@
+ODEPS = tools/odeps.sh $(OCAMLDEP)
 OCAMLC = @OCAMLC@
 OCAMLOPT = @OCAMLOPT@
-OCAMLDEP = @OCAMLDEP@
-OCAMLFLAGS = @OCAMLFLAGS@
+OCAMLFLAGS = @OCAMLFLAGS@ 
 OCAMLOPTFLAGS = @OCAMLOPTFLAGS@
 OCAMLCFLAGS = @OCAMLCFLAGS@
-MENHIR = @MENHIR@
-
-.PHONY:clean real_test test_native test
+OCAMLYACC = @OCAMLYACC@
 
 all: $(BIN)
 
@@ -63,27 +61,23 @@ distclean: clean test_clean
 %.class: %.java
        javac $<
 
-%.native$(EXE):
-       $(REMAKE) OCAMLNATIVE="-native" $*.cmx $*.depx
+%.native$(EXE): %.cmx %.depx
+       if test -f $@".flags"; then
+               FLAGS=`cat $@".flags"`
+       fi
        objects=`cat $*.depx | xargs | sed 's/[.]depx/.cmx/g'`
        $(REMAKE) OCAMLNATIVE="-native" $objects #ensure all objects have been built
-       $(OCAMLOPT) -o $@  $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmx
-
+       $(OCAMLOPT) -o $@  $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $FLAGS $objects $<
 
-%.byte$(EXE):
-       $(REMAKE) OCAMLNATIVE="" $*.cmo $*.depo
+%.byte$(EXE): %.cmo %.depo
        objects=`cat $*.depo | xargs | sed 's/[.]depo/.cmo/g'`
        $(REMAKE) OCAMLNATIVE="" $objects #ensure all objects have been built
-       $(OCAMLC) -o $@  $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmo
+       $(OCAMLC) -o $@  $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $<
 
 %.ml:
        if test -f $*.mly; then
                $(REMAKE) $*.mly
-               #Work around menhir warning
-               $(MENHIR) $*.mly 2>&1 | grep -v -- 'you are\|--infer'
-               #Work around crazy ulex chocking on identifier 'lexer', generated by menhir.
-               cat $*.ml | sed -e 's/\blexer\b/__lexer/g' > $*.tmp
-               mv $*.tmp $*.ml
+               $(OCAMLYACC) $*.mly
        elif test -f $*.mll; then
                $(REMAKE) $*.mll
                $(OCAMLLEX) $*.mll
@@ -99,21 +93,23 @@ distclean: clean test_clean
        base=$*
        target=$@
        DEPEXT=depx
-       REMAKE="$(REMAKE)"
+       NATIVE=-native
+       REMAKE="$(REMAKE) OCAMLNATIVE=$NATIVE"
        OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
-       OCAMLNATIVE=$(OCAMLNATIVE)
        SRC=$(SRC)
-       COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
+       if test -f "$base".flags; then
+               FLAGS=`cat "$base".flags`
+       fi
+       COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $FLAGS"
        . tools/ocamldriver.sh
 
-
 %.cmo %.depo:
        base=$*
        target=$@
        DEPEXT=depo
-       REMAKE="$(REMAKE)"
+       NATIVE=""
+       REMAKE="$(REMAKE) OCAMLNATIVE=$NATIVE"
        OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
-       OCAMLNATIVE=$(OCAMLNATIVE)
        SRC=$(SRC)
        COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
        . tools/ocamldriver.sh
@@ -121,11 +117,11 @@ distclean: clean test_clean
 %.cmi:
        base=$*
        target=$@
-       REMAKE="$(REMAKE)"
+       NATIVE=$(OCAMLNATIVE)
+       REMAKE="$(REMAKE) OCAMLNATIVE=$NATIVE"
        OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
        SRC=$(SRC)
-       OCAMLNATIVE=$(OCAMLNATIVE)
-       if test -z "$OCAMLNATIVE"; then
+       if test -z "$NATIVE"; then
                DEPEXT=.depo
                COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
        else
@@ -136,9 +132,15 @@ distclean: clean test_clean
 
 ## Tests
 
+test_byte: tools $(BYTE)
+       $(REMAKE) TEST=$(BYTE) real_test
+
+test_native: tools $(BIN)
+       $(REMAKE) TEST=$(BIN) real_test
+
+test: test_native
 
 real_test:
-       echo $(TEST)
        for i in tests/*.xml
        do
          for j in 1 2 3
@@ -147,18 +149,10 @@ real_test:
          done
        done
 
-test_byte:
-        $(REMAKE) TEST=$(BYTE) real_test
-test_native:
-       $(REMAKE) TEST=$(BIN) real_test
-
-test: test_native
-
 test_clean:
        rm -rf tests/*.summary tests/*.results/*_"$(PACKAGE)"_*.*
 
 %.summary:
-       $(REMAKE) tools $(TEST)
        target=$@
        base=$*
        test=${base#*.xml.}