#! /dev/null
# Don't call it directly. This shell script fragment is called to
# determine:
#
#	1. libstcxx_incdir: the interface name for libstdc++.
#

# Get the top level src dir.
if [ -z "${topsrcdir}" -a -z "${top_srcdir}" ]
then
  echo "Undefined top level src dir: topsrcdir and top_srcdir are empty" >&2
  exit 1
fi

if [ -n "${topsrcdir}" ]
then
  if_topsrcdir=${topsrcdir}
else
  if_topsrcdir=${top_srcdir}
fi

# Set libstdcxx_incdir.
# This is the same as gcc/configure.in and libstdc++-v3/acinclude.m4. 
if test -z "$gcc_version"; then
  if test -z "${gcc_version_trigger}" \
     && test -f ${if_topsrcdir}/gcc/version.c; then
    gcc_version_trigger=${if_topsrcdir}/gcc/version.c
  fi    
  if test -f "${gcc_version_trigger}"; then
    gcc_version_full=`grep version_string "${gcc_version_trigger}" | sed -e 's/.*"\([^"]*\)".*/\1/'`
  else
    gcc_version_full=`$CC -v 2>&1 | sed -n 's/^gcc version //p'`
  fi
  gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
fi
libstdcxx_incdir=c++/${gcc_version}

