dnl Process this file with autoconf to produce a configure script.

dnl This file is part of winsup/mingw
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

AC_PREREQ(2.12)
AC_INIT(dllmain.c)

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="-g -O2"
  else
    CFLAGS="-O2"
  fi
  if test "$ac_test_CXXFLAGS" != set; then
    CXXFLAGS='$(CFLAGS)'
  fi
else
  GCC=
  test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
])

LIB_AC_PROG_CC

case "$with_cross_host" in
  ""|*cygwin*) all_dlls_host='all_dlls_host'
	       install_dlls_host='install_dlls_host';;
esac
AC_SUBST(all_dlls_host)
AC_SUBST(install_dlls_host)

AC_CHECK_TOOL(AR, ar, ar)

AC_SUBST(AR)
AC_CHECK_TOOL(AS, as, as)
AC_SUBST(AS)
AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
AC_SUBST(RANLIB)
AC_CHECK_TOOL(LD, ld, ld)
AC_SUBST(LD)
AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
AC_SUBST(DLLTOOL)
AC_CHECK_TOOL(DLLWRAP, dlltool, dlltool)
AC_SUBST(DLLWRAP)
AC_CHECK_TOOL(WINDRES, windres, windres)
AC_SUBST(WINDRES)

AC_ALLOCA

AC_CANONICAL_SYSTEM
SUBDIRS="profile mingwex"
configdirs="profile mingwex"
HEADER_SUBDIR=""

LIBGMON_A=libgmon.a

W32API_INCLUDE='-I $(srcdir)/../w32api/include'

case "$target_os" in
*cygwin*)
  MNO_CYGWIN=-mno-cygwin
  LIBM_A=libm.a
  # Install mingw headers in mingw subdirectory.
  HEADER_SUBDIR="mingw"
  ;;
*)
  # Build it for MSVCRT by default.
  MNO_CYGWIN=
  LIBM_A=libm.a
  ;;
esac

# THREAD_DLL used to be set within the above case and was mingwc for CRTDLL.
# I can find no reason to do this.
#
# FIXME: In the future I would like to change the dll name to mingwthrd to
# to match the libmingwthrd.a name.
THREAD_DLL=mingwm

if test -n "$configdirs"; then
  AC_CONFIG_SUBDIRS($configdirs)
fi

MKINSTALLDIRS=$ac_aux_dir/mkinstalldirs
AC_SUBST(MKINSTALLDIRS)
AC_SUBST(MNO_CYGWIN)
AC_SUBST(THREAD_DLL)
AC_SUBST(LIBM_A)
AC_SUBST(LIBGMON_A)
AC_SUBST(SUBDIRS)
AC_SUBST(HEADER_SUBDIR)
AC_SUBST(W32API_INCLUDE)

AC_PROG_INSTALL
AC_OUTPUT(Makefile)

