#!/bin/sh

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

ADA=`head -n 1 conf-adacomp`
if [ $? -ne 0 ]
then
  echo "fatal: could not read conf-adacomp" 1>&2
  exit 1
fi
SYSTYPE=`head -n 1 conf-systype`
if [ $? -ne 0 ]
then
  echo "fatal: could not read conf-systype" 1>&2
  exit 1
fi
ADATYPE=`head -n 1 conf-adatype`
if [ $? -ne 0 ]
then
  echo "fatal: could not read conf-adatype" 1>&2
  exit 1
fi

ADAFLAGS="${ADAFLAGS} `head -n 1 conf-adacflags 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`
    ADAFLAGS="${ADAFLAGS} ${FLAGS}"
  done
fi

#
# Extract base name of given source file.
#

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

#
# 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`"
    ADAFLAGS="${ADAFLAGS} ${FLAGS}"
  done
fi

rm -f "${out}.ali"
${ADA} -o "${out}.o" -c ${src} ${1+"$@"} ${ADAFLAGS}
ret=$?
if [ ${ret} -eq 0 ]; then exec touch "${out}.ali"; fi
exit $ret
