dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.13)
AC_INIT(gprof.c)

AC_CANONICAL_SYSTEM
AC_ISC_POSIX

AM_INIT_AUTOMAKE(gprof, 2.11)

AM_PROG_LIBTOOL

dnl For simplicity, we use the BFD configuration file for most
dnl things.  However, we also need our own configuration file for
dnl the automake PACKAGE and VERSION macros.  We don't name it
dnl config.h, to avoid any possible confusion with the bfd config.h.
AM_CONFIG_HEADER(gconfig.h:gconfig.in)

AC_PROG_CC
AC_PROG_INSTALL

AC_CHECK_FUNCS(setmode)

ALL_LINGUAS=
CY_GNU_GETTEXT

AM_MAINTAINER_MODE
AC_EXEEXT

build_warnings="-W -Wall"
AC_ARG_ENABLE(build-warnings,
[  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
[case "${enableval}" in
  yes)	;;
  no)	build_warnings="-w";;
  ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
        build_warnings="${build_warnings} ${t}";;
  *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
        build_warnings="${t} ${build_warnings}";;
  *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
esac
if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
  echo "Setting warning flags = $build_warnings" 6>&1
fi])dnl
WARN_CFLAGS=""
if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
    WARN_CFLAGS="${build_warnings}"
fi
AC_SUBST(WARN_CFLAGS)

AC_OUTPUT(Makefile po/Makefile.in:po/Make-in,
[sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile])
