#compdef makeobj

local index olddir dir subdir

olddir=$PWD
index="$words[(I)-[fCI]]"
if ! ((index)); then
  if [ ! -f Makefile ]; then
    if [ -n "$OBJ_SUBDIR" ]; then
      dir=$PWD
      subdir=.
      while [ -n "$dir" -a $dir != '/' -a ! -f $dir/$OBJ_SUBDIR/$subdir/Makefile ]; do
        dir=$dir(:h)
        subdir=$dir(:t)/$subdir
      done
      if -f $dir/$OBJ_SUBDIR/$subdir/Makefile; then
        cd $dir/$OBJ_SUBDIR/$subdir
      fi
    elif [ -n "$OBJ_REPLACEMENT" ]; then
      dir=$(echo $PWD | sed -e "$OBJ_REPLACEMENT")
      if [ -f $dir/Makefile ]; then
        cd $dir
      fi
    fi
  fi
fi

_make

cd $olddir
