Revert 67496 as it makes running Paint.NET impossible
[mono.git] / configure.in
index 5b08a6b2db58e6aeb4be5835a7b1e79456a16132..90565171f6034b06de3b99c8094f68f575aa824b 100644 (file)
@@ -9,6 +9,9 @@ AM_CONFIG_HEADER(config.h)
 AM_INIT_AUTOMAKE(mono,1.2)
 AM_MAINTAINER_MODE
 
+API_VER=1.0
+AC_SUBST(API_VER)
+
 AC_PROG_LN_S
 
 # In case of cygwin, override LN_S, irrespective of what it determines.
@@ -190,6 +193,14 @@ case "$host" in
        *-*-hpux*)
         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
+               if test $GCC != "yes"; then
+                       CFLAGS="$CFLAGS +ESdbgasm"
+                       # Arrange for run-time dereferencing of null
+                       # pointers to produce a SIGSEGV signal.
+                       LDFLAGS="$LDFLAGS -z"
+               fi
                CFLAGS="$CFLAGS +ESdbgasm"
                LDFLAGS="$LDFLAGS -z"
                libmono_cflags="-D_REENTRANT"
@@ -208,7 +219,8 @@ case "$host" in
                ;;
        *-*-darwin*)
                platform_win32=no
-               CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX"
+               CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
+               CPPFLAGS="$CPPFLAGS -DGetCurrentProcess=MonoGetCurrentProcess"
                libmono_cflags="-D_THREAD_SAFE"
                LDFLAGS="$LDFLAGS -pthread"
                libmono_ldflags="-pthread"
@@ -368,7 +380,7 @@ mcs_topdir='$(top_srcdir)/'$mcsdir
 mcs_topdir_from_srcdir='$(top_builddir)/'$mcsdir
 
 ## Maybe should also disable if mcsdir is invalid.  Let's punt the issue for now.
-AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno])
+AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
 
 AC_SUBST([mcs_topdir])
 AC_SUBST([mcs_topdir_from_srcdir])
@@ -484,6 +496,7 @@ if test "x$platform_win32" = "xyes"; then
 fi
 
 AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno)
+AC_ARG_ENABLE(mcs-build, [  --disable-mcs-build disable the build of the mcs directory], try_mcs_build=$enableval, enable_mcs_build=yes)
 
 AC_ARG_WITH(xen_opt,   [  --with-xen_opt=yes,no      Enable Xen-specific behaviour],[],[with_xen_opt=yes])
 if test "x$with_xen_opt" = "xyes"; then
@@ -678,6 +691,41 @@ dnl
 
 if test x$platform_win32 = xno; then
 
+       dnl dynamic loader support
+       AC_CHECK_FUNC(dlopen, DL_LIB="",
+               AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", dl_support=no)
+       )
+       if test x$dl_support = xno; then
+               AC_MSG_WARN([No dynamic loading support available])
+       else
+               LIBS="$LIBS $DL_LIB"
+               AC_DEFINE(HAVE_DL_LOADER,1,[dlopen-based dynamic loader available])
+               dnl from glib's configure.in
+               AC_CACHE_CHECK([for preceeding underscore in symbols],
+                       mono_cv_uscore,[
+                       AC_TRY_RUN([#include <dlfcn.h>
+                       int mono_underscore_test (void) { return 42; }
+                       int main() {
+                         void *f1 = (void*)0, *f2 = (void*)0, *handle;
+                         handle = dlopen ((void*)0, 0);
+                         if (handle) {
+                           f1 = dlsym (handle, "mono_underscore_test");
+                           f2 = dlsym (handle, "_mono_underscore_test");
+                         } return (!f2 || f1);
+                       }],
+                               [mono_cv_uscore=yes],
+                               [mono_cv_uscore=no],
+                       [])
+               ])
+               if test "x$mono_cv_uscore" = "xyes"; then
+                       MONO_DL_NEED_USCORE=1
+               else
+                       MONO_DL_NEED_USCORE=0
+               fi
+               AC_SUBST(MONO_DL_NEED_USCORE)
+               AC_CHECK_FUNC(dlerror)
+       fi
+
        dnl ******************************************************************
        dnl *** Checks for the IKVM JNI interface library                  ***
        dnl ******************************************************************
@@ -702,6 +750,8 @@ if test x$platform_win32 = xno; then
        AC_CHECK_FUNCS(kqueue)
        AC_CHECK_FUNCS(backtrace_symbols)
        AC_CHECK_FUNCS(mkstemp)
+       AC_CHECK_FUNCS(mmap)
+       AC_CHECK_FUNCS(madvise)
 
        dnl ******************************************************************
        dnl *** Check for large file support                               ***
@@ -1494,6 +1544,13 @@ case "$host" in
 #              TARGET=MIPS;
 #              ACCESS_UNALIGNED="no"
 #              ;;
+       mips*)
+               TARGET=MIPS;
+               arch_target=mips;
+               ACCESS_UNALIGNED="no"
+               JIT_SUPPORTED=yes
+               jit_wanted=true
+               ;;
        i*86-*-*)
                TARGET=X86;
                arch_target=x86;
@@ -1567,7 +1624,7 @@ case "$host" in
                JIT_SUPPORTED=yes
                jit_wanted=true
                arch_target=alpha;
-               CFLAGS="$CFLAGS -mieee"
+               CFLAGS="$CFLAGS -mieee -O0"
                case $host_os in
                  linux*)
                        LIBC="libc.so.6.1"
@@ -1741,7 +1798,7 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
 fi
 
 mono_debugger_supported=no
-if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
+if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA"; then
        if test x$use_included_gc = xyes; then
                case "$host" in
                *-*-*linux*)
@@ -1787,7 +1844,7 @@ if test ${TARGET} = ARM; then
                ])
 
        AC_MSG_RESULT($fpu)
-       CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu"
+       CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
        unset fpu
 fi
 
@@ -1818,6 +1875,7 @@ AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64)
 AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
 AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
 AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
+AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
 AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
 AM_CONDITIONAL(ARM, test x$TARGET = xARM)
 AM_CONDITIONAL(S390, test x$TARGET = xS390)
@@ -1833,7 +1891,7 @@ AC_SUBST(INTL)
 AC_SUBST(SQLITE)
 AC_SUBST(SQLITE3)
 AC_SUBST(X11)
-
+AC_DEFINE_UNQUOTED(ARCHITECTURE,"$arch_target",[The architecture this is running on])
 AC_SUBST(arch_target)
 AC_SUBST(CFLAGS)
 AC_SUBST(CPPFLAGS)
@@ -1930,6 +1988,7 @@ mono/arch/s390x/Makefile
 mono/arch/arm/Makefile
 mono/arch/alpha/Makefile
 mono/arch/ia64/Makefile
+mono/arch/mips/Makefile
 mono/interpreter/Makefile
 mono/tests/Makefile
 mono/tests/tests-config
@@ -1985,7 +2044,7 @@ fi
   # any existing config.make.  This allows people to share the same source tree
   # with different build directories, one native and one cross
   #
-  if test x$cross_compiling = xno; then
+  if test x$cross_compiling = xno && test x$enable_mcs_build != xno; then
     echo "prefix=$prefix" > $srcdir/$mcsdir/build/config.make
     echo "exec_prefix=$exec_prefix" >> $srcdir/$mcsdir/build/config.make
     echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$mcsdir/build/config.make