Factorise common bits of Remakefile in tools/ocamldriver.sh
[tatoo.git] / Remakefile.in
index cb9fc4a..3fa1d73 100644 (file)
@@ -72,102 +72,24 @@ distclean: clean test_clean
        fi
 
 %.cmx %.dep:
        fi
 
 %.cmx %.dep:
-       REMAKE="$(REMAKE) -v OCAMLNATIVE=-native"
        base=$*
        base=$*
-       dirname=${base%/*}
-       if test -f "$dirname".pack; then
-               #we are below a pack directory
-               PACKDIR=`basename $dirname`
-               PACKINCLUDE="-I $dirname"
-       elif test -f $*.pack -a -d $*; then
-               $(REMAKE) $*.pack
-               PACKINCLUDE="-I $*"
-               PACKDIR=`basename $*`
-               DOPACK=1
-       fi
-       if test "$PACKDIR"; then
-               PACKNAME=`echo $PACKDIR | cut -b1 | tr a-z A-Z`${PACKDIR#?}
-               FORPACK="-for-pack $PACKNAME"
-       fi
-
-       if test "$DOPACK"; then
-               modules=`cat $*.pack`
-               objects=`echo $modules | xargs tools/ocamlmoduledep.sh -native $PACKINCLUDE -I $(SRC) `
-       else
-               $REMAKE $*.ml
-               modules=`$(OCAMLDEP) $(OCAMLFINDFLAGS) -modules $*.ml | cut -f 2- -d ':'`
-               objects=`tools/ocamlmoduledep.sh -native $PACKINCLUDE -I $(SRC) $modules`
-       fi
-
-       $REMAKE $objects
-
-       deps=`echo $objects | sed 's/[.]cm[ix]/.dep/g'`
-       rm -f $*.dep; touch $*.dep
-       $(REMAKE) $deps
-       for f in $deps; do
-         for g in `cat $f`; do
-             if grep -q $g $*.dep; then continue; fi
-             echo $g >> $*.dep
-          done
-          if grep -q $f $*.dep; then continue; fi
-          echo $f >> $*.dep
-       done
-       if test -f $*.mli; then $REMAKE -v PACKINCLUDE="$PACKINCLUDE" $*.cmi; fi
-       if test "$DOPACK"; then
-               sorted_objects=`cat $*.dep | grep "$PACKDIR" | sed 's/[.]dep/.cmx/' | xargs`
-               cat $*.dep | grep -v "$PACKDIR" > $*.tmp
-               mv $*.tmp $*.dep
-               $(OCAMLOPT) -o $@ -pack $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $sorted_objects
-       else
-               $(OCAMLOPT) -o $@ $FORPACK -c $PACKINCLUDE $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $*.ml
-       fi
+       target=$@
+       NATIVE=-native
+       REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE"
+       OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
+       SRC=$(SRC)
+       COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
+       . tools/ocamldriver.sh
 
 %.cmo %.dep:
 
 %.cmo %.dep:
-       REMAKE="$(REMAKE)"
        base=$*
        base=$*
-       dirname=${base%/*}
-       if test -f "$dirname".pack; then
-               #we are below a pack directory
-               PACKDIR=`basename $dirname`
-               PACKINCLUDE="-I $dirname"
-       elif test -f $*.pack -a -d $*; then
-               PACKINCLUDE="-I $*"
-               PACKDIR=`basename $*`
-               DOPACK=1
-       fi
-
-       if test "$DOPACK"; then
-               modules=`cat $*.pack`
-               objects=`echo $modules | xargs tools/ocamlmoduledep.sh $PACKINCLUDE -I $(SRC) `
-               $REMAKE $objects
-       else
-               $REMAKE $*.ml
-               modules=`$(OCAMLDEP) $(OCAMLFINDFLAGS) -modules $*.ml | cut -f 2- -d ':'`
-               objects=`tools/ocamlmoduledep.sh $PACKINCLUDE -I $(SRC) $modules`
-               $REMAKE $objects
-       fi
-
-       deps=`echo $objects | sed 's/[.]cm[io]/.dep/g'`
-       rm -f $*.dep; touch $*.dep
-       $(REMAKE) $deps
-       for f in $deps; do
-          for g in `cat $f`; do
-             if grep -q $g $*.dep; then continue; fi
-             echo $g >> $*.dep
-          done
-          if grep -q $f $*.dep; then continue; fi
-          echo $f >> $*.dep
-       done
-
-       if test -f $*.mli; then $REMAKE -v PACKINCLUDE="$PACKINCLUDE" $*.cmi; fi
-       if test "$DOPACK"; then
-               sorted_objects=`cat $*.dep | grep "$PACKDIR" | sed 's/[.]dep/.cmo/' | xargs`
-               cat $*.dep | grep -v "$PACKDIR" > $*.tmp
-               mv $*.tmp $*.dep
-               $(OCAMLC) -o $@ -pack $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS) $sorted_objects
-       else
-               $(OCAMLC) -o $@ -c $PACKINCLUDE $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)  $*.ml
-       fi
+       target=$@
+       NATIVE=
+       REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE"
+       OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
+       SRC=$(SRC)
+       COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
+       . tools/ocamldriver.sh
 
 %.cmi:
        $(REMAKE) $*.mli
 
 %.cmi:
        $(REMAKE) $*.mli