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 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 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)