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.59)
AC_INIT(common/bits-tst.c)

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

# Configure sub-directory for appropriate targets
case ${target} in
    d10v-*-elf )
	AC_CONFIG_SUBDIRS(d10v-elf)
	;;
    frv-*-elf )
	AC_CONFIG_SUBDIRS(frv-elf)
	;;
    m32r-*-elf )
	AC_CONFIG_SUBDIRS(m32r-elf)
	;;
    mips64el-*-elf )
        AC_CONFIG_SUBDIRS(mips64el-elf)
	;;
esac

sinclude(../configure.tgt)

AC_OUTPUT(Makefile)
