#!/bin/sh

ZDEP=$0
ILIB=
FILES=

while test -n "$1"; do
  case $1 in
    -I) ILIB="$2 $ILIB"; shift;;
    *) FILES="$FILES $1";;
  esac
  shift
done

for f in $FILES; do
  file=`basename $f .ml`
  file=`basename $file .mli`
  file=`basename $file .zo`
  if test -f $file.ml; then
    mldeps=""
    if test -f $file.mli; then mldeps=" $file.zi"; fi
    for i in `$ZDEP-aux1 $file.ml | $ZDEP-aux2 | sort -u`; do
      for lib in $ILIB .; do
	if test $lib = .; then libf=$i; else libf=$lib/$i; fi
        if test -f $libf.mli -o -f $libf.ml; then
          mldeps="$mldeps $libf.zi"; break
        fi
      done
    done
    if test -n "$mldeps"; then echo $file.zo:$mldeps; fi
  fi
  if test -f $file.mli; then
    mldeps=""
    for i in `$ZDEP-aux1 $file.mli | $ZDEP-aux2 | sort -u`; do
      for lib in $ILIB .; do
	if test $lib = .; then libf=$i; else libf=$lib/$i; fi
        if test -f $libf.mli; then
          mldeps="$mldeps $libf.zi"; break
        elif test -f $libf.ml; then
          mldeps="$mldeps $libf.zo"; break
        fi
      done
    done
    if test -n "$mldeps"; then echo $file.zi:$mldeps; fi
  else
    if test -f $file.ml; then echo "$file.zi: $file.zo"; fi
  fi
done

exit 0
