summaryrefslogtreecommitdiff
path: root/winsup/cygwin/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/configure.in')
-rw-r--r--winsup/cygwin/configure.in249
1 files changed, 249 insertions, 0 deletions
diff --git a/winsup/cygwin/configure.in b/winsup/cygwin/configure.in
new file mode 100644
index 00000000000..864c04a273a
--- /dev/null
+++ b/winsup/cygwin/configure.in
@@ -0,0 +1,249 @@
+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)
+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
+
+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)