#!/bin/sh

fatal()
{
  echo "ada-bind: fatal: $1" 1>&2
  exit 1
}

if [ $# -lt 1 ]
then
  echo "ada-bind: usage: [@dir] source" 1>&2
  exit 1
fi

#
# Check if new base dir was specified.
#

BASE_DIR="."
if [ $# -eq 2 ]
then
  BASE_DIR=`echo "$1" | sed 's/^@//g'`
  shift
fi

#
# Extract base name of given source file.
#

out=`echo "$1" | awk -F. '{print $1}'`
src="$1"
shift

ADABIND=`head -n 1 conf-adabind`
if [ $? -ne 0 ]
then
  fatal "could not read conf-adabind"
fi
SYSTYPE=`head -n 1 conf-systype`
if [ $? -ne 0 ]
then
  fatal "could not read conf-systype"
fi
ADATYPE=`head -n 1 conf-adatype`
if [ $? -ne 0 ]
then
  fatal "could not read conf-adatype"
fi

ADAFLAGS="${ADAFLAGS} `head -n 1 conf-adabflags 2>/dev/null`"

#
# Read global flag file list, if present.
#

if [ -f "conf-adafflist" ]
then
  for f in `cat "conf-adafflist"`
  do
    FLAGS=`cat $f 2>/dev/null` || fatal "could not read $f"
    ADAFLAGS="${ADAFLAGS} ${FLAGS}"
  done
fi

#
# Read local flag file list, if present.
#

if [ -f "${out}.iff" ]
then
  for f in `cat "${out}.iff"`
  do
    targ="`dirname $out`/`dirname $f`/`basename $f`"
    FLAGS="`cat $targ 2>/dev/null`" || fatal "could not read $f"
    ADAFLAGS="${ADAFLAGS} ${FLAGS}"
  done
fi

exec ${ADABIND} ${src} ${ADAFLAGS}
