- javac ${1%.class}.java
-
-%.native@EXE@:
- base=${1%.native}
- src=${base}.ml
- obj=${base}.cmx
- dir=$(dirname $1)
- @REMAKE@ -v OCAMLDEPNATIVE=-native "$obj"
- SRCS=$(ls "$dir"/*.cmx | sed 's/\.cmx/.ml/g')
- OBJS=$(@OCAMLDEP@ $OCAMLDEPNATIVE $OCAMLFINDFLAGS -modules $SRCS | tools/osort.sh cmx)
- @OCAMLOPT@ -o "$1" @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFINDLINKFLAGS $OCAMLFINDFLAGS $OBJS
-
-%.byte@EXE@:
- base=${1%.byte}
- src=${base}.ml
- obj=${base}.cmo
- dir=$(dirname $1)
- @REMAKE@ "$obj"
- OBJS=""
- for i in "$dir"/*.cmi; do
- ibase=${i%.cmi}
- if test -f "${ibase}.ml" -o -d "${ibase}" -o -f "${ibase}.mly" -o -f "${ibase}.mll"; then
- OBJS="$OBJS ${ibase}.cmo"
- fi
- done
- @REMAKE@ $OBJS
- SRCS=$(ls "$dir"/*.cmo | sed 's/\.cmo/.ml/g')
- SORTED_OBJS=$(@OCAMLDEP@ $OCAMLFINDFLAGS -modules $SRCS | tools/osort.sh cmo)
- @OCAMLC@ -o "$1" @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDLINKFLAGS $OCAMLFINDFLAGS $SORTED_OBJS
-
-%.cmx:
- target="$1"
- base="${target%.cmx}"
- src="${base}.ml"
- if [ -f "$src" ]; then
- @REMAKE@ "$src"
- DEPS=$( $ODEP -native $OCAMLFINDFLAGS $PACKINCLUDE "$src" )
- echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target"
- @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFORPACK $OCAMLFINDFLAGS $PACKINCLUDE "$src"
- elif [ -d "$base" ]; then
- modname=$(basename "$base")
- packname=$(echo "$modname" | sed 's/\(.*\)/\u\1/')
- OBJS=$(ls "$base"/*.ml | sed 's/\.ml/.cmx/g')
- @REMAKE@ -v PACKINCLUDE="-I $base" -v OCAMLFORPACK="-for-pack $packname" $OBJS
- SORTED_OBJS=$(@OCAMLDEP@ -native $OCAMLFINDFLAGS -I $base -modules "$base"/*.ml | tools/osort.sh cmx)
- @OCAMLOPT@ -o "$target" -pack $SORTED_OBJS
- elif [ -f "$base".mly ]; then
- @REMAKE@ "$base".mly
- @OCAMLYACC@ "$base".mly
- $ODEP $OCAMLDEPNATIVE $OCAMLFINDFLAGS "$src" | \
- @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target"
- @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFORPACK $OCAMLFINDFLAGS $PACKINCLUDE "$src"
- fi
-
-
-%.cmo:
- target="$1"
- base="${target%.cmo}"
- src="${base}.ml"
- if [ -f "$src" ]; then
- @REMAKE@ "$src"
- DEPS=$( $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" )
- echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -r "$target"
- @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src"
- elif [ -d "$base" ]; then
- modname=$(basename "$base")
- packname=$(echo "$modname" | sed 's/\(.*\)/\u\1/')
- OBJS=$(ls "$base"/*.ml | sed 's/\.ml/.cmo/g')
- @REMAKE@ -v PACKINCLUDE="-I $base" $OBJS
- SORTED_OBJS=$(@OCAMLDEP@ $OCAMLFINDFLAGS -I $base -modules "$base"/*.ml | tools/osort.sh cmo)
- @OCAMLC@ -o "$target" -pack $SORTED_OBJS
- elif [ -f "$base".mly ]; then
- @REMAKE@ "$base".mly
- @OCAMLYACC@ "$base".mly
- $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -r "$target"
- @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src"
+ javac $<
+
+%.native$(EXE): %.cmx %.dep
+ objects=`cat $*.dep | xargs | sed 's/[.]dep/.cmx/g'`
+ $(OCAMLOPT) -o $@ $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $<
+
+%.byte$(EXE): %.cmo %.dep
+ objects=`cat $*.dep | xargs | sed 's/[.]dep/.cmo/g'`
+ $(OCAMLC) -o $@ $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $<
+
+%.ml:
+ if test -f $*.mly; then
+ $(REMAKE) $*.mly
+ $(OCAMLYACC) $*.mly
+ elif test -f $*.mll; then
+ $(REMAKE) $*.mll
+ $(OCAMLLEX) $*.mll