dnl Process this file file with autoconf to produce a configure script.
dnl This file is a shell script fragment that supplies the information
dnl necessary to tailor a template configure script into the configure
dnl script appropriate for this directory.  For more information, check
dnl any existing configure script.

AC_PREREQ(2.5)
AC_INIT(common/bits-tst.c)

CC=${CC-cc}
AC_SUBST(CC)
AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..)
AC_CANONICAL_SYSTEM

# Directories to use in all configurations.
configdirs=""

# add test sub-directory for appropriate targets
testdir=`echo ${target} | sed -e 's/-.*-/-/'`
if test -r ${srcdir}/${testdir}/configure ; then
  configdirs="${configdirs} $testdir"
fi

# add any extra subdirectories
case $target in
  *) ;;
esac

# Compute the target architecture.
# FIXME: Will need to canonicalize some values.
# FIXME: Should be in generally accessable place.
case $target in
  *) arch=${target_cpu} ;;
esac
AC_SUBST(arch)

# configure the subdirectories too
AC_CONFIG_SUBDIRS($configdirs)

AC_OUTPUT(Makefile)
