258 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
dnl Autoconf configure script for Cygwin.
 | 
						|
dnl Copyright 1996, 1997, 1998, 2000, 2001 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(init.cc)
 | 
						|
AC_CONFIG_HEADER(config.h)
 | 
						|
 | 
						|
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)
 | 
						|
dnl AC_SUBST(AR)
 | 
						|
AC_CHECK_TOOL(AS, as, as)
 | 
						|
dnl C_SUBST(AS)
 | 
						|
AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
 | 
						|
dnl C_SUBST(RANLIB)
 | 
						|
AC_CHECK_TOOL(LD, ld, ld)
 | 
						|
dnl C_SUBST(LD)
 | 
						|
AC_CHECK_TOOL(NM, nm, nm)
 | 
						|
dnl C_SUBST(NM)
 | 
						|
AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
 | 
						|
dnl C_SUBST(DLLTOOL)
 | 
						|
AC_CHECK_TOOL(WINDRES, windres, windres)
 | 
						|
dnl C_SUBST(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
 | 
						|
 | 
						|
dnl set default mt safeness and then process the options.
 | 
						|
mt_safe_val=1
 | 
						|
MT_SAFE=yes
 | 
						|
 | 
						|
AC_ARG_ENABLE(threadsafe,
 | 
						|
[ --enable-threadsafe=[runtime]	Build a cygwin DLL which is thread safe],
 | 
						|
[case "${enableval}" in
 | 
						|
yes)
 | 
						|
  dnl default.
 | 
						|
  ;;
 | 
						|
runtime)
 | 
						|
  mt_safe_val=2
 | 
						|
  MT_SAFE=yes
 | 
						|
  ;;
 | 
						|
no)
 | 
						|
  mt_safe_val=0
 | 
						|
  MT_SAFE=no
 | 
						|
  ;;
 | 
						|
esac
 | 
						|
])
 | 
						|
 | 
						|
AC_ARG_ENABLE(extra-threadsafe-checking,
 | 
						|
[ --enable-extra-threadsafe-checking	Build a cygwin DLL which is thread safe with extra consistency checking],
 | 
						|
[case "${enableval}" in
 | 
						|
yes)
 | 
						|
  mt_safe_val=1
 | 
						|
  MT_SAFE=yes
 | 
						|
  AC_DEFINE(_CYG_THREAD_FAILSAFE)
 | 
						|
  ;;
 | 
						|
no)
 | 
						|
  dnl Don't do anything here to avoid overriding --enable-threadsafe.
 | 
						|
  ;;
 | 
						|
esac
 | 
						|
])
 | 
						|
 | 
						|
if test "$MT_SAFE" = "yes"; then
 | 
						|
  AC_DEFINE_UNQUOTED(_MT_SAFE,$mt_safe_val)
 | 
						|
fi
 | 
						|
 | 
						|
dnl Makefile uses MT_SAFE, so we subst as well as defining it.
 | 
						|
AC_SUBST(MT_SAFE)
 | 
						|
 | 
						|
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
 | 
						|
])
 | 
						|
 | 
						|
MALLOC_OFILES=
 | 
						|
AC_ARG_ENABLE(malloc-debugging,
 | 
						|
[ --enable-malloc-debugging		Build a cygwin DLL with heap sanity checking (this is very slow, use only if you have heap corruption problems)],
 | 
						|
[case "${enableval}" in
 | 
						|
yes)	 AC_DEFINE(MALLOC_DEBUG)
 | 
						|
	 MALLOC_OFILES=dlmalloc.o
 | 
						|
	 ;;
 | 
						|
no)	 ;;
 | 
						|
esac
 | 
						|
])
 | 
						|
 | 
						|
AC_ARG_ENABLE(vfork,
 | 
						|
[ --enable-vfork		Build a cygwin DLL which uses experimental vfork code],
 | 
						|
vfork="${enableval}"
 | 
						|
])
 | 
						|
 | 
						|
case "$vfork" in
 | 
						|
no)	 ;;
 | 
						|
yes|*)	 AC_DEFINE_UNQUOTED(NEWVFORK) ;;
 | 
						|
esac
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
dnl
 | 
						|
dnl If newlib is part of build tree, always set EXE_LDFLAGS to point to
 | 
						|
dnl it; this is important in cases where the installed newlib is perhaps
 | 
						|
dnl not compatible. Check and warn for installed newlib only if it's not
 | 
						|
dnl part of the build tree.
 | 
						|
dnl
 | 
						|
 | 
						|
AC_MSG_CHECKING([if newlib is part of the build tree])
 | 
						|
 | 
						|
EXE_LDFLAGS=
 | 
						|
if test -d ../newlib
 | 
						|
then
 | 
						|
  AC_MSG_RESULT(yes)
 | 
						|
  EXE_LDFLAGS="-B../../newlib/ -B../"
 | 
						|
else
 | 
						|
  AC_MSG_RESULT(no)
 | 
						|
fi
 | 
						|
 AC_SUBST(EXE_LDFLAGS)
 | 
						|
 | 
						|
if test x"$EXE_LDFLAGS" = x
 | 
						|
then
 | 
						|
  AC_MSG_CHECKING([if installed newlib needed])
 | 
						|
  AC_TRY_LINK(,
 | 
						|
    [/* main already defined */]
 | 
						|
    ,
 | 
						|
    AC_MSG_RESULT(no)
 | 
						|
    ,
 | 
						|
    AC_MSG_RESULT(yes)
 | 
						|
    AC_MSG_WARN(newlib not found - utility .exe's may not link))
 | 
						|
fi
 | 
						|
AC_SUBST(EXE_LDFLAGS)
 | 
						|
 | 
						|
case "$target_cpu" in
 | 
						|
   i386|i486|i586|i686) DLL_ENTRY="_dll_entry@12"
 | 
						|
		DEF_DLL_ENTRY="dll_entry@12"
 | 
						|
		ALLOCA="_alloca"
 | 
						|
		CONFIG_DIR="i386"  ;;
 | 
						|
   powerpc*)	DLL_ENTRY="dll_entry"
 | 
						|
		DEF_DLL_ENTRY="dll_entry"
 | 
						|
		ALLOCA=" __allocate_stack"
 | 
						|
		CONFIG_DIR="ppc"  ;;
 | 
						|
   *)		AC_MSG_ERROR(Invalid target processor \"$target_cpu\") ;;
 | 
						|
esac
 | 
						|
 | 
						|
AC_SUBST(MALLOC_OFILES)
 | 
						|
AC_SUBST(DLL_ENTRY)
 | 
						|
AC_SUBST(DEF_DLL_ENTRY)
 | 
						|
AC_SUBST(ALLOCA)
 | 
						|
AC_SUBST(CONFIG_DIR)
 | 
						|
AC_OUTPUT(Makefile cygwin.def:cygwin.din)
 | 
						|
 |