dnl Autoconf configure script for Cygwin.
dnl Copyright 1996, 1997, 1998, 2000, 2001, 2002, 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.59)dnl
AC_INIT(init.cc)
AC_CONFIG_HEADER(config.h)
AC_CONFIG_AUX_DIR(../..)

AC_PROG_INSTALL
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"
    LIBSERVER='$(bupdir)/cygserver/libcygserver.a'
    ;;
  *)
    all_host=
    install_host=
    LIBSERVER=
    ;;
esac

test -n "$LIBSERVER" && AC_DEFINE(USE_SERVER)

AC_SUBST(all_host)
AC_SUBST(install_host)

AC_CHECK_TOOL(AR, ar, ar)
AC_CHECK_TOOL(AS, as, as)
AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
AC_CHECK_TOOL(LD, ld, ld)
AC_CHECK_TOOL(NM, nm, nm)
AC_CHECK_TOOL(OBJCOPY, objcopy, objcopy)
AC_CHECK_TOOL(OBJDUMP, objdump, objdump)
AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
AC_CHECK_TOOL(STRIP, strip, strip)
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_ARG_ENABLE(server,
[ --enable-server		Build a cygwin DLL which can communicate with cygserver],
[case "${enableval}" in
yes)	;;
no)	LIBSERVER=;;
esac
])

MALLOC_OFILES=malloc.o

dnl The only time we might want to transform the install names
dnl is for unix x cygwin.  Otherwise we don't.  For now we don't
dnl transform names.

dnl if test "x$cross_compiling" = "xno" -a ; then
dnl   if test "x$program_transform_name" = "xs,x,x,"; then
dnl     program_transform_name=""
dnl   fi
dnl   if test "x$program_transform_name" = "x"; then
dnl     program_transform_name="s,^,$target_alias-,"
dnl   else
dnl     program_transform_name="$program_transform_name -e s,^,$target_alias-,"
dnl   fi
dnl fi

case "$target_cpu" in
   i?86) DLL_ENTRY="_dll_entry@12"
		DEF_DLL_ENTRY="dll_entry@12"
		ALLOCA="_alloca"
		CONFIG_DIR="i386"  ;;
   *)		AC_MSG_ERROR(Invalid target processor \"$target_cpu\") ;;
esac

AC_SUBST(MALLOC_OFILES)
AC_SUBST(LIBSERVER)
AC_SUBST(DLL_ENTRY)
AC_SUBST(DEF_DLL_ENTRY)
AC_SUBST(ALLOCA)
AC_SUBST(CONFIG_DIR)
AC_OUTPUT(Makefile)