2009-02-02 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / configure.in
index 5563b1b63b986aca2cc6e12c0a1e9f2c02fd5667..27b4b147c0f70408b86b9862dd1b1d8bc9cf7fbf 100644 (file)
@@ -6,7 +6,7 @@ AC_CANONICAL_SYSTEM
 m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
 
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono,2.3)
+AM_INIT_AUTOMAKE(mono,2.5)
 AM_MAINTAINER_MODE
 
 API_VER=1.0
@@ -97,6 +97,7 @@ case "$host" in
                libdl="-ldl"
                libgc_threads=pthreads
                with_sigaltstack=no
+               use_sigposix=yes
                ;;
        *-*-*freebsd*)
                platform_win32=no
@@ -125,6 +126,7 @@ case "$host" in
 # but NOT library support)
 #
                with_tls=pthread
+               use_sigposix=yes
                ;;
        *-*-*openbsd*)
                platform_win32=no
@@ -136,6 +138,7 @@ case "$host" in
                AC_DEFINE(PTHREAD_POINTER_ID)
                libdl=
                libgc_threads=pthreads
+               use_sigposix=yes
                ;;
        *-*-linux*)
                platform_win32=no
@@ -145,9 +148,10 @@ case "$host" in
                libdl="-ldl"
                libgc_threads=pthreads
                AOT_SUPPORTED="yes"
+               use_sigposix=yes
                ;;
        *-*-hpux*)
-        platform_win32=no
+               platform_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT"
                # +ESdbgasm only valid on bundled cc on RISC
                # silently ignored for ia64
@@ -163,6 +167,7 @@ case "$host" in
                libmono_ldflags="-lpthread"
                libgc_threads=pthreads
                need_link_unlink=yes
+               use_sigposix=yes
                ;;
        *-*-solaris*)
                platform_win32=no
@@ -173,6 +178,7 @@ case "$host" in
                # This doesn't seem to work on solaris/x86, but the configure test runs
                with_tls=pthread
                has_dtrace=yes
+               use_sigposix=yes
                ;;
        *-*-darwin*)
                platform_win32=no
@@ -207,6 +213,8 @@ fi
 
 AM_CONDITIONAL(PLATFORM_WIN32, test x$platform_win32 = xyes)
 AM_CONDITIONAL(PLATFORM_LINUX, echo x$target_os | grep -q linux)
+AM_CONDITIONAL(PLATFORM_DARWIN, test x$platform_darwin = xyes)
+AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes)
 
 AC_CHECK_TOOL(CC, gcc, gcc)
 AC_PROG_CC
@@ -322,7 +330,7 @@ AC_CHECK_SIZEOF(void *, 4)
 
 WARN=''
 if test x"$GCC" = xyes; then
-        WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes  -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings'
+        WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes  -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings'
                # The runtime code does not respect ANSI C strict aliasing rules
                CFLAGS="$CFLAGS -fno-strict-aliasing"
 
@@ -640,7 +648,7 @@ AC_TRY_COMPILE([], [
    AC_MSG_RESULT(no)
 ])
 
-AC_ARG_ENABLE(parallel-mark, [  --enable-parallel-mark     Enables GC Parallel Marking])
+AC_ARG_ENABLE(parallel-mark, [  --enable-parallel-mark     Enables GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=yes)
 if test x$enable_parallel_mark = xyes; then
        libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
 fi
@@ -1415,9 +1423,12 @@ if test x$platform_win32 = xno; then
        AC_CHECK_HEADERS(sys/extattr.h)
        AC_CHECK_HEADERS(sys/sendfile.h)
        AC_CHECK_HEADERS(sys/statvfs.h)
+       AC_CHECK_HEADERS(sys/statfs.h)
        AC_CHECK_HEADERS(sys/vfstab.h)
        AC_CHECK_HEADERS(sys/xattr.h)
        AC_CHECK_HEADERS(sys/mman.h)
+       AC_CHECK_HEADERS(sys/param.h)
+       AC_CHECK_HEADERS(sys/mount.h)
        AC_CHECK_FUNCS(getdomainname)
        AC_CHECK_FUNCS(setdomainname)
        AC_CHECK_FUNCS(fgetgrent)
@@ -2146,12 +2157,16 @@ AC_ARG_WITH(moonlight,[ --with-moonlight=yes,no   If you want to build the Moonl
 ])
 
 OPROFILE=no
-AC_ARG_WITH(oprofile,[ --with-oprofile=no,<path>   Enable oprofile support (defaults to NO)],[
+AC_ARG_WITH(oprofile,[ --with-oprofile=no,<oprofile install dir>   Enable oprofile support (defaults to NO)],[
        if test x$with_oprofile != xno; then
-             OPROFILE=yes
-             OPROFILE_CFLAGS="-I$with_oprofile/include"
-             OPROFILE_LIBS=
-             AC_DEFINE(HAVE_OPROFILE,1,[Have oprofile support])
+           oprofile_include=$with_oprofile/include
+           if test ! -f $oprofile_include/opagent.h; then
+                 AC_MSG_ERROR([oprofile include file not found at $oprofile_include/opagent.h])
+               fi
+           OPROFILE=yes
+               OPROFILE_CFLAGS="-I$oprofile_include"
+           OPROFILE_LIBS="-L$with_oprofile/lib/oprofile -lopagent"
+           AC_DEFINE(HAVE_OPROFILE,1,[Have oprofile support])
        fi
 ])
 
@@ -2163,6 +2178,14 @@ AC_ARG_WITH(malloc_mempools,[ --with-malloc-mempools=yes,no  Use malloc for each
        fi
 ])
 
+
+DISABLE_MCS_DOCS=no
+AC_ARG_WITH(mcs_docs,[ --with-mcs-docs=yes,no  If you want to build the documentation under mcs (defaults to YES)],[
+       if test x$with_mcs_docs != xyes; then
+               DISABLE_MCS_DOCS=yes
+       fi
+])
+
 AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes)
 AC_SUBST(OPROFILE_CFLAGS)
 AC_SUBST(OPROFILE_LIBS)
@@ -2302,7 +2325,7 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/Browsers/Compat.browser],
 ],[LN_S='$LN_S'])
 
 if test x$enable_quiet_build = xyes; then
-   AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do $srcdir/scripts/patch-quiet.sh $i; done], [shell=$SHELL])
+   AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do if test -f $i; then $srcdir/scripts/patch-quiet.sh $i; fi; done], [shell=$SHELL])
    AC_CONFIG_COMMANDS([quiet-libtool], [sed -e 's/$echo "copying selected/$show "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
 fi
 
@@ -2454,6 +2477,10 @@ fi
       fi
     fi
   fi
+
+  if test x$DISABLE_MCS_DOCS = xyes; then
+       echo "DISABLE_MCS_DOCS = yes" >> $srcdir/$mcsdir/build/config.make
+  fi
 )
 
 libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}
@@ -2462,18 +2489,19 @@ echo "
         mcs source:    $mcs_topdir
         olive source:  $olive_topdir
 
-       GC:          $gc
-       TLS:         $with_tls
-       SIGALTSTACK: $with_sigaltstack
-       Engine:      $jit_status
-       2.0 Beta:    $PREVIEW
-       2.1 Alpha:   $MOONLIGHT
-       JNI support: $jdk_headers_found
-       libgdiplus:  $libgdiplus_msg
-       zlib:        $zlib_msg
-       oprofile:    $OPROFILE
-       BigArrays:   $enable_big_arrays
-       DTrace:      $enable_dtrace
+       GC:            $gc
+       TLS:           $with_tls
+       SIGALTSTACK:   $with_sigaltstack
+       Engine:        $jit_status
+       2.0 Beta:      $PREVIEW
+       2.1 Alpha:     $MOONLIGHT
+       JNI support:   $jdk_headers_found
+       libgdiplus:    $libgdiplus_msg
+       zlib:          $zlib_msg
+       oprofile:      $OPROFILE
+       BigArrays:     $enable_big_arrays
+       DTrace:        $enable_dtrace
+       Parallel Mark: $enable_parallel_mark
        $disabled
 
 "