Merge pull request #2921 from lewurm/lower-typechecks-later
[mono.git] / configure.ac
index cff61275963b3e8a01df250650ea8cd0d47666b5..0cd24ea88df8c4c419f2092bc028b6a33c6bb3a8 100644 (file)
@@ -1,7 +1,8 @@
 # Process this file with autoconf to produce a configure script.
 #AC_PREREQ([2.62])
 
-AC_INIT(mono, [4.5.1],
+# when bumping version number below, keep it in sync with man/mono.1 too
+AC_INIT(mono, [4.5.2],
         [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README.md])
@@ -967,71 +968,75 @@ AC_ARG_WITH(libgc,   [  --with-gc=included,none  Controls the Boehm GC config, d
 AC_ARG_ENABLE(boehm, [  --disable-boehm            Disable the Boehm GC.], support_boehm=$enableval,support_boehm=${support_boehm:-yes})
 AM_CONDITIONAL(SUPPORT_BOEHM, test x$support_boehm = xyes)
 
-AC_ARG_ENABLE(parallel-mark, [  --enable-parallel-mark     Enables Boehm GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark)
-if test x$enable_parallel_mark = xyes; then
-       libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
-fi
+if test "x$support_boehm" = "xyes"; then
 
-gc_msg=""
-LIBGC_CPPFLAGS=
-LIBGC_LIBS=
-LIBGC_STATIC_LIBS=
-libgc_dir=
-case "x$libgc" in
-       xincluded)
-               if test "x$support_boehm" = "xyes"; then
-                       libgc_dir=libgc
-               fi
+       AC_ARG_ENABLE(parallel-mark, [  --enable-parallel-mark     Enables Boehm GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark)
+       if test x$enable_parallel_mark = xyes; then
+               libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
+       fi
 
-               LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include'
-               LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la'
-               LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la'
+       gc_msg=""
+       LIBGC_CPPFLAGS=
+       LIBGC_LIBS=
+       LIBGC_STATIC_LIBS=
+       libgc_dir=
+       case "x$libgc" in
+               xincluded)
+                       if test "x$support_boehm" = "xyes"; then
+                               libgc_dir=libgc
+                       fi
 
-               BOEHM_DEFINES="-DHAVE_BOEHM_GC"
+                       LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include'
+                       LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la'
+                       LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la'
 
-               if test x$target_win32 = xyes; then
-                       BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL"
-                       CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL"
-               fi
+                       BOEHM_DEFINES="-DHAVE_BOEHM_GC"
 
-               gc_msg="Included Boehm GC with typed GC"
-               if test x$enable_parallel_mark = xyes; then
-                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description])
-                       gc_msg="$gc_msg and parallel mark"
-               else
-                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC)", [GC description])
-               fi
-               ;;
+                       if test x$target_win32 = xyes; then
+                               BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL"
+                               CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL"
+                       fi
 
-       xboehm|xbohem|xyes)
-               AC_MSG_WARN("External Boehm is no longer supported")
-               ;;
+                       gc_msg="Included Boehm GC with typed GC"
+                       if test x$enable_parallel_mark = xyes; then
+                               AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description])
+                               gc_msg="$gc_msg and parallel mark"
+                       else
+                               AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC)", [GC description])
+                       fi
+                       ;;
 
-       xsgen)
-               AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration")
-               ;;
+               xboehm|xbohem|xyes)
+                       AC_MSG_WARN("External Boehm is no longer supported")
+                       ;;
 
-       xnone)
-               AC_MSG_WARN("Compiling mono without GC.")
-               AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "none", [GC description])
-               AC_DEFINE(HAVE_NULL_GC,1,[No GC support.])
-               gc_msg="none"
-               ;;
-       *)
-               AC_MSG_ERROR([Invalid argument to --with-gc.])
-               ;;
-esac
+               xsgen)
+                       AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration")
+                       ;;
 
-AC_ARG_WITH(large-heap, [  --with-large-heap=yes,no       Enable support for GC heaps larger than 3GB (defaults to no)], [large_heap=$withval], [large_heap=no])
-if test "x$large_heap" = "xyes"; then
-   CPPFLAGS="$CPPFLAGS -DLARGE_CONFIG"
-fi
+               xnone)
+                       AC_MSG_WARN("Compiling mono without GC.")
+                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "none", [GC description])
+                       AC_DEFINE(HAVE_NULL_GC,1,[No GC support.])
+                       gc_msg="none"
+                       ;;
+               *)
+                       AC_MSG_ERROR([Invalid argument to --with-gc.])
+                       ;;
+       esac
 
-AC_SUBST(LIBGC_CPPFLAGS)
-AC_SUBST(LIBGC_LIBS)
-AC_SUBST(LIBGC_STATIC_LIBS)
-AC_SUBST(libgc_dir)
-AC_SUBST(BOEHM_DEFINES)
+       AC_ARG_WITH(large-heap, [  --with-large-heap=yes,no       Enable support for GC heaps larger than 3GB (defaults to no)], [large_heap=$withval], [large_heap=no])
+       if test "x$large_heap" = "xyes"; then
+          CPPFLAGS="$CPPFLAGS -DLARGE_CONFIG"
+       fi
+
+       AC_SUBST(LIBGC_CPPFLAGS)
+       AC_SUBST(LIBGC_LIBS)
+       AC_SUBST(LIBGC_STATIC_LIBS)
+       AC_SUBST(libgc_dir)
+       AC_SUBST(BOEHM_DEFINES)
+
+fi
 
 dnl
 dnl End of Boehm GC Configuration
@@ -3257,11 +3262,23 @@ dnl
 dnl Simple Generational checks (sgen)
 dnl
 SGEN_DEFINES=
-AC_ARG_WITH(sgen, [  --with-sgen=yes,no             Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes])
+AC_ARG_WITH(sgen,                    [  --with-sgen=yes,no             Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes])
+AC_ARG_WITH(sgen-default-concurrent, [  --with-sgen-default-concurrent=yes,no             Use Concurrent GC, default=no],[],[with_sgen_default_concurrent=no])
 if test x$buildsgen = xyes; then
    AC_DEFINE(HAVE_MOVING_COLLECTOR, 1, [Moving collector])
    SGEN_DEFINES="-DHAVE_SGEN_GC"
-   gc_msg="sgen and $gc_msg"
+
+       conc_gc_msg=""
+   if test x$with_sgen_default_concurrent != xno; then
+       AC_DEFINE(HAVE_CONC_GC_AS_DEFAULT, 1, [Defaults to concurrent GC])
+          conc_gc_msg=" (concurrent by default)"
+   fi
+
+   if test "x$gc_msg" = "x"; then
+      gc_msg="sgen$conc_gc_msg"
+   else
+      gc_msg="sgen$conc_gc_msg and $gc_msg"
+   fi
 fi
 AC_SUBST(SGEN_DEFINES)
 AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
@@ -3914,6 +3931,7 @@ AC_OUTPUT([
 Makefile
 mono-uninstalled.pc
 acceptance-tests/Makefile
+llvm/Makefile
 scripts/mono-find-provides
 scripts/mono-find-requires
 mono/Makefile