2004/10/08 Rafael Teixeira <rafaelteixeirabr@hotmail.com>
[mono.git] / configure.in
index 329099a69ab4cfe91e0bcadb4676160bb21dd16d..d6b44840194d39a1369c8ad666d13014d38ad288 100644 (file)
@@ -42,7 +42,7 @@ case "$host" in
        *-*-mingw*|*-*-cygwin*)
                platform_win32=yes
                AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32])
-               CC="gcc -mno-cygwin"
+               CC="gcc -mno-cygwin -g"
                HOST_CC="gcc"
                # So libgc configure gets -mno-cygwin
                export CC
@@ -51,11 +51,10 @@ case "$host" in
                CPPFLAGS="$CPPFLAGS -DWIN32_THREADS"
                libdl=
                libgc_threads=win32
-               gc_default=boehm 
-               with_nptl=no
+               gc_default=included
+               with_nptl=default
                with_sigaltstack=no
                LN_S=cp
-
                ;;
        *-*-*netbsd*)
                platform_win32=no
@@ -231,6 +230,10 @@ AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes)
 
 AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h sys/un.h)
 
+AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no])
+
+AM_CONDITIONAL(HAVE_ZLIB, test x$have_zlib = xyes)
+
 # for mono/metadata/debug-symfile.c
 AC_CHECK_HEADERS(elf.h)
 
@@ -296,6 +299,27 @@ AC_SUBST(GLIB_LIBS)
 AC_SUBST(GMODULE_CFLAGS)
 AC_SUBST(GMODULE_LIBS)
 
+if test x$platform_win32 = xyes; then   
+   AC_MSG_CHECKING(for cygwin glib2-dev package)
+   if [ cygcheck --f /usr/lib/libglib-2.0.dll.a | grep -q glib2-devel ]; then
+      AC_MSG_RESULT(found)
+         AC_MSG_ERROR([Mono cannot be built with the cygwin glib2-devel package installed, because that package doesn't work with -mno-cygwin. Please uninstall it then re-run configure.])
+   else
+      AC_MSG_RESULT(not found, ok)
+   fi
+
+   AC_MSG_CHECKING(for broken gwin32.h)
+   glib_include=`$PKG_CONFIG --cflags-only-I glib-2.0 | sed -e 's/ -I.*//g' | sed -e 's/-I//g'`
+   if test -f $glib_include/glib/gwin32.h; then
+         if [ grep ftruncate $glib_include/glib/gwin32.h | grep -q define ]; then
+                AC_MSG_RESULT(failed)
+                hashmark='#'
+                AC_MSG_ERROR([Your version of gwin32.h is broken and will cause compilation errors when building mono. Please fix it by deleting the line: '$hashmark   define ftruncate...' from '$glib_include/glib/gwin32.h' then re-run configure.])
+         fi
+   fi
+   AC_MSG_RESULT(ok)
+fi
+
 AC_ARG_WITH(gc, [  --with-gc=boehm,included,none],[gc=$with_gc],[gc=$gc_default])
 
 # Enable support for fast thread-local storage
@@ -330,6 +354,7 @@ AM_CONDITIONAL(WITH_BUNDLE, test x$with_bundle != xno)
 
 LIBGC_CFLAGS=
 LIBGC_LIBS=
+LIBGC_STATIC_LIBS=
 libgc_dir=
 case "x$gc" in
        xboehm|xbohem|xyes)
@@ -346,6 +371,7 @@ case "x$gc" in
                AC_DEFINE(HAVE_BOEHM_GC)
                AC_SUBST(HAVE_BOEHM_GC)
                LIBGC_LIBS="-lgc $libdl"
+               LIBGC_STATIC_LIBS="$LIBGC_LIBS"
 
                # AC_CHECK_FUNCS does not work for some reason...
                AC_CHECK_LIB(gc, GC_gcj_malloc, found_gcj_malloc="yes",,$libdl)
@@ -368,6 +394,7 @@ case "x$gc" in
 
                LIBGC_CFLAGS='-I$(top_srcdir)/libgc/include'
                LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la'
+               LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la'
 
                AC_DEFINE(HAVE_BOEHM_GC)
                AC_SUBST(HAVE_BOEHM_GC)
@@ -395,6 +422,7 @@ ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads
 AM_CONDITIONAL(INCLUDED_LIBGC, test x$use_included_gc = xyes)
 AC_SUBST(LIBGC_CFLAGS)
 AC_SUBST(LIBGC_LIBS)
+AC_SUBST(LIBGC_STATIC_LIBS)
 AC_SUBST(libgc_dir)
 
 dnl
@@ -983,6 +1011,7 @@ else
        jdk_headers_found=no
        AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?))
        AC_CHECK_LIB(psapi, main, LIBS="$LIBS -lpsapi", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(ole32, main, LIBS="$LIBS -lole32", AC_ERROR(bad mingw install?))
 
        dnl *********************************
        dnl *** Check for struct ip_mreqn ***
@@ -1283,6 +1312,14 @@ case "$host" in
        LIBC="libc.so.12"
        INTL="libintl.so.0"
        ;;
+    *-*-*freebsd*)
+       LIBC="libc.so"
+       INTL="libintl.so"
+       ;;
+    *-*-*openbsd*)
+       LIBC="libc.so"
+       INTL="libintl.so"
+       ;;
 esac
 AC_SUBST(libsuffix)
 
@@ -1299,7 +1336,7 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
                # undefined reference to `__tls_get_addr'
                #
                rm -f conftest.c conftest.so conftest
-               echo "static __thread int foo; void bar () { foo = 5 };" > conftest.c
+               echo "static __thread int foo; void main () { foo = 5; }" > conftest.c
                gcc -fPIC --shared -o conftest.so conftest.c > /dev/null 2>&1
                gcc -o conftest conftest.so > /dev/null 2>&1
                if test ! -f conftest; then
@@ -1312,6 +1349,9 @@ fi
 
 if test "x$with_tls" = "x__thread"; then
        AC_DEFINE(HAVE_KW_THREAD)
+   # Pass the information to libgc
+       CPPFLAGS="$CPPFLAGS -DUSE_COMPILER_TLS"
+       export CPPFLAGS
 fi
 
 if test ${TARGET} = ARM; then