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