dnl Autoconf configure script for Cygwin.
dnl Copyright 2003 Red Hat, Inc.
dnl
dnl This file is part of Cygwin.
dnl
dnl This software is a copyrighted work licensed under the terms of the
dnl Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
dnl details.
dnl
dnl Process this file with autoconf to produce a configure script.

AC_PREREQ(2.12)dnl
AC_INIT(cygserver.cc)

INSTALL=`cd $srcdir/../..; echo $(pwd)/install-sh -c`

AC_PROG_INSTALL

dnl FIXME: We temporarily define our own version of AC_PROG_CC.  This is
dnl copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
dnl are probably using a cross compiler, which will not be able to fully
dnl link an executable.  This should really be fixed in autoconf
dnl itself.

AC_DEFUN(LIB_AC_PROG_CC,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_CHECK_TOOL(CC, gcc, gcc)
if test -z "$CC"; then
  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi

AC_PROG_CC_GNU

if test $ac_cv_prog_gcc = yes; then
  GCC=yes
dnl Check whether -g works, even if CFLAGS is set, in case the package
dnl plays around with CFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
  ac_test_CFLAGS="${CFLAGS+set}"
  ac_save_CFLAGS="$CFLAGS"
  CFLAGS=
  AC_PROG_CC_G
  if test "$ac_test_CFLAGS" = set; then
    CFLAGS="$ac_save_CFLAGS"
  elif test $ac_cv_prog_cc_g = yes; then
    CFLAGS="-gstabs+ -O2"
  else
    CFLAGS="-O2"
  fi
else
  GCC=
  test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
])

AC_DEFUN(LIB_AC_PROG_CXX,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_CHECK_TOOL(CXX, g++, g++)
if test -z "$CXX"; then
  AC_CHECK_PROG(CXX, c++, c++, , , )
  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi

CXXFLAGS='$(CFLAGS)'
])

AC_CANONICAL_SYSTEM

LIB_AC_PROG_CC
LIB_AC_PROG_CXX

case "$with_cross_host" in
  ""|*cygwin*)
    all_host="all_host"
    install_host="install_host"
    ;;
  *)
    all_host=
    install_host=
    ;;
esac

AC_SUBST(all_host)
AC_SUBST(install_host)

AC_CHECK_TOOL(AR, ar, ar)
AC_CHECK_TOOL(AS, as, as)
AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
AC_CHECK_TOOL(LD, ld, ld)
AC_CHECK_TOOL(NM, nm, nm)
AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
AC_CHECK_TOOL(WINDRES, windres, windres)

AC_ALLOCA
AC_PROG_MAKE_SET

dnl check whether gcc supports __builtin_memset.
# Test for builtin mem* functions.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
#include <string.h>
void foo(char *s, int c, size_t n)
{
  __builtin_memset(s, c, n);
}
], [ ],
use_builtin_memset=yes, use_builtin_memset=no)
if test $use_builtin_memset = "yes"; then
  AC_DEFINE(HAVE_BUILTIN_MEMSET)
fi
AC_LANG_RESTORE

AC_ARG_ENABLE(debugging,
[ --enable-debugging		Build a cygwin DLL which has more consistency checking for debugging],
[case "${enableval}" in
yes)	 AC_DEFINE(DEBUGGING) ;;
no)	 ;;
esac
])

AC_OUTPUT(Makefile)
