b4e59f5f14
* config.h.in: Ditto. * configure.in: Add --enable-vfork option. * configure: Regenerate. * dcrt0.cc (quoted): Detect and fix up quoted backslashes. * sigproc.cc (proc_subproc): Correctly name handle of newly added child process to avoid erroneous debugging messages about closing the wrong handle.
238 lines
5.4 KiB
Plaintext
238 lines
5.4 KiB
Plaintext
dnl Autoconf configure script for Cygwin.
|
|
dnl Copyright 1996, 1997, 1998, 2000 Cygnus Solutions.
|
|
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
|
|
if test "$ac_test_CXXFLAGS" != set; then
|
|
CXXFLAGS='$(CFLAGS)'
|
|
fi
|
|
else
|
|
GCC=
|
|
test "${CFLAGS+set}" = set || CFLAGS="-g"
|
|
fi
|
|
])
|
|
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
LIB_AC_PROG_CC
|
|
|
|
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(DLLTOOL, dlltool, dlltool)
|
|
dnl C_SUBST(DLLTOOL)
|
|
AC_CHECK_TOOL(WINDRES, windres, windres)
|
|
dnl C_SUBST(WINDRES)
|
|
|
|
AC_ALLOCA
|
|
AC_CONFIG_SUBDIRS(utils doc)
|
|
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
|
|
PTH_ALLOW=''
|
|
|
|
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
|
|
PTH_ALLOW=';'
|
|
;;
|
|
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_SUBST(PTH_ALLOW)
|
|
|
|
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(vfork,
|
|
[ --enable-vfork Build a cygwin DLL which uses experimental vfork code],
|
|
[case "${enableval}" in
|
|
yes) AC_DEFINE(NEWVFORK) ;;
|
|
no) ;;
|
|
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(DLL_ENTRY)
|
|
AC_SUBST(DEF_DLL_ENTRY)
|
|
AC_SUBST(ALLOCA)
|
|
AC_SUBST(CONFIG_DIR)
|
|
AC_OUTPUT(Makefile cygwin.def:cygwin.din)
|
|
|