newlib-cygwin/winsup/cygwin/configure.in

225 lines
5.2 KiB
Plaintext
Raw Normal View History

2000-02-18 03:38:33 +08:00
dnl Autoconf configure script for Cygwin.
2001-09-12 04:01:02 +08:00
dnl Copyright 1996, 1997, 1998, 2000, 2001 Red Hat, Inc.
2000-02-18 03:38:33 +08:00
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"
2000-02-18 03:38:33 +08:00
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)'
])
2000-02-18 03:38:33 +08:00
AC_CANONICAL_SYSTEM
LIB_AC_PROG_CC
LIB_AC_PROG_CXX
2000-02-18 03:38:33 +08:00
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)
2000-02-18 03:38:33 +08:00
AC_CHECK_TOOL(AR, ar, ar)
dnl AC_SUBST(AR)
2000-02-18 03:38:33 +08:00
AC_CHECK_TOOL(AS, as, as)
dnl C_SUBST(AS)
2000-02-18 03:38:33 +08:00
AC_CHECK_TOOL(RANLIB, ranlib, ranlib)
dnl C_SUBST(RANLIB)
2000-02-18 03:38:33 +08:00
AC_CHECK_TOOL(LD, ld, ld)
dnl C_SUBST(LD)
AC_CHECK_TOOL(NM, nm, nm)
dnl C_SUBST(NM)
2000-02-18 03:38:33 +08:00
AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool)
dnl C_SUBST(DLLTOOL)
2000-02-18 03:38:33 +08:00
AC_CHECK_TOOL(WINDRES, windres, windres)
dnl C_SUBST(WINDRES)
2000-02-18 03:38:33 +08:00
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);
2000-02-18 03:38:33 +08:00
}
], [ ],
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)
2000-02-18 03:38:33 +08:00
dnl default.
;;
runtime)
2000-02-18 03:38:33 +08:00
mt_safe_val=2
MT_SAFE=yes
;;
no)
2000-02-18 03:38:33 +08:00
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)
2000-02-18 03:38:33 +08:00
mt_safe_val=1
MT_SAFE=yes
AC_DEFINE(_CYG_THREAD_FAILSAFE)
;;
no)
2000-02-18 03:38:33 +08:00
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
2000-02-18 03:38:33 +08:00
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
i386|i486|i586|i686) DLL_ENTRY="_dll_entry@12"
DEF_DLL_ENTRY="dll_entry@12"
ALLOCA="_alloca"
2000-02-18 03:38:33 +08:00
CONFIG_DIR="i386" ;;
powerpc*) DLL_ENTRY="dll_entry"
DEF_DLL_ENTRY="dll_entry"
2000-02-18 03:38:33 +08:00
ALLOCA=" __allocate_stack"
CONFIG_DIR="ppc" ;;
*) AC_MSG_ERROR(Invalid target processor \"$target_cpu\") ;;
esac
AC_SUBST(MALLOC_OFILES)
2000-02-18 03:38:33 +08:00
AC_SUBST(DLL_ENTRY)
AC_SUBST(DEF_DLL_ENTRY)
AC_SUBST(ALLOCA)
AC_SUBST(CONFIG_DIR)
AC_OUTPUT(Makefile cygwin.def:cygwin.din)