#!/bin/sh
-EXT=${target%?}
+EXT=${target#*.cm}
dirname=${base%/*}
if test -f "$dirname".pack; then
fi
fi
+if test "$EXT" = i; then
+ if test -f ${base}.mli; then
+ $REMAKE ${base}.mli;
+ fi
+
+ modules=`$OCAMLDEP -modules ${base}.mli | cut -f 2- -d ':'`
+ objects=`tools/ocamlmoduledep.sh -inter $NATIVE $PACKINCLUDE -I $SRC $modules`
+ $REMAKE $objects
+ $COMPILE -o ${target} -c $PACKINCLUDE ${base}.mli
+ exit 0
+fi
+
if test "$DOPACK"; then
modules=`cat ${base}.pack`
objects=`echo $modules | xargs tools/ocamlmoduledep.sh $NATIVE $PACKINCLUDE -I $SRC `
else
$REMAKE ${base}.ml
modules=`$OCAMLDEP -modules ${base}.ml | cut -f 2- -d ':'`
- objects=`tools/ocamlmoduledep.sh $NATIVE $PACKINCLUDE -I $SRC $modules`
+ if test "$EXT" = "o"; then
+ INTER=-inter
+ fi
+ objects=`tools/ocamlmoduledep.sh $INTER $NATIVE $PACKINCLUDE -I $SRC $modules`
fi
$REMAKE $objects
-deps=`echo $objects | sed "s/[.]cm[i${EXT}]/.dep/g"`
-rm -f ${base}.dep; touch ${base}.dep
+deps=`echo $objects | sed "s/[.]cm[i${EXT}]/.$DEPEXT/g"`
+rm -f ${base}.$DEPEXT; touch ${base}.$DEPEXT
$REMAKE $deps
for f in $deps; do
for g in `cat $f`; do
- if grep -q $g ${base}.dep; then continue; fi
- echo $g >> ${base}.dep
+ if grep -q $g ${base}.$DEPEXT; then continue; fi
+ echo $g >> ${base}.$DEPEXT
done
- if grep -q $f ${base}.dep; then continue; fi
- echo $f >> ${base}.dep
+ if grep -q $f ${base}.$DEPEXT; then continue; fi
+ echo $f >> ${base}.$DEPEXT
done
-if test -f ${base}.mli; then $REMAKE -v PACKINCLUDE="$PACKINCLUDE" ${base}.cmi; fi
+if test -f ${base}.mli; then $REMAKE PACKINCLUDE="$PACKINCLUDE" ${base}.cmi; fi
if test "$DOPACK"; then
- sorted_objects=`cat ${base}.dep | grep "$PACKDIR" | sed "s/[.]dep/.cm${EXT}/" | xargs`
- cat ${base}.dep | grep -v "$PACKDIR" > ${base}.tmp
- mv ${base}.tmp ${base}.dep
+ sorted_objects=`cat ${base}.$DEPEXT | grep "$PACKDIR" | sed "s/[.]$DEPEXT/.cm${EXT}/" | xargs`
+ cat ${base}.$DEPEXT | grep -v "$PACKDIR" > ${base}.tmp
+ mv ${base}.tmp ${base}.$DEPEXT
$COMPILE -o ${target} -pack $sorted_objects
else
$COMPILE -o ${target} $FORPACK -c $PACKINCLUDE ${base}.ml