Add a new option to choose tree model at runtime.
[tatoo.git] / Remakefile.in
index 97234fb..c1f2b25 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,21 +13,17 @@ 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@
 OCAMLOPTFLAGS = @OCAMLOPTFLAGS@
 OCAMLCFLAGS = @OCAMLCFLAGS@
-MENHIR = @MENHIR@
-
-.PHONY: clean distclean
+OCAMLYACC = @OCAMLYACC@
 
 all: $(BIN)
 
-src/xpath/xpath_internal_parser.cmx: OCAMLFINDFLAGS = $(OCAMLFINDFLAGSNOSYNTAX)
-src/xpath/xpath_internal_parser.cmo: OCAMLFINDFLAGS = $(OCAMLFINDFLAGSNOSYNTAX)
-
 tools: tools/xml_diff.native$(EXE) tools/XPathEval.class tools/split_path.native$(EXE)
 
 Remakefile: Remakefile.in config.status
@@ -66,23 +61,23 @@ distclean: clean test_clean
 %.class: %.java
        javac $<
 
-%.native$(EXE):
-       $(REMAKE) OCAMLNATIVE="-native" $*.cmx $*.depx
-       objects=`cat $*.depx | xargs | sed 's/[.]depx/.cmx/g'` 
+%.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
-               $(MENHIR) $*.mly
+               $(OCAMLYACC) $*.mly
        elif test -f $*.mll; then
                $(REMAKE) $*.mll
                $(OCAMLLEX) $*.mll
@@ -98,32 +93,35 @@ 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) $(OCAMLFIND_EXTRAFLAGS) "
+       COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
        . tools/ocamldriver.sh
 
 %.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