Improve for internationalization
[mono.git] / configure.in
index b4264b2b612fc3d1e6e99a4bb9be73bd31442439..d54efe2e5325f39a96e002b9354bded1544bc3aa 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.0.99.1)
+AM_INIT_AUTOMAKE(mono,2.1)
 AM_MAINTAINER_MODE
 
 API_VER=1.0
@@ -49,8 +49,6 @@ libmono_cflags=""
 libmono_ldflags=""
 AC_SUBST(libmono_cflags)
 AC_SUBST(libmono_ldflags)
-export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-AC_SUBST(export_ldflags)
 
 # Variable to have relocatable .pc files (lib, or lib64)
 reloc_libdir=`basename ${libdir}`
@@ -65,6 +63,7 @@ need_link_unlink=no
 # Thread configuration inspired by sleepycat's db
 AC_MSG_CHECKING([host platform characteristics])
 libgc_threads=no
+has_dtrace=no
 case "$host" in
        *-*-mingw*|*-*-cygwin*)
                platform_win32=yes
@@ -77,8 +76,8 @@ case "$host" in
                HOST_CC="gcc"
                # Windows 2000 is required that includes Internet Explorer 5.01
                CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024"
-               libmono_cflags="-mno-cygwin"
-               libmono_ldflags="-mno-cygwin"
+               libmono_cflags="-mno-cygwin -mms-bitfields -mwindows"
+               libmono_ldflags="-mno-cygwin -mms-bitfields -mwindows"
                libdl=
                libgc_threads=win32
                gc_default=included
@@ -99,60 +98,7 @@ case "$host" in
                libgc_threads=pthreads
                with_sigaltstack=no
                ;;
-# these flags will work for all versions of -STABLE
-#
-       *-*-*freebsd4*)
-               platform_win32=no
-               if test "x$PTHREAD_CFLAGS" = "x"; then
-                       CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_FREEBSD_THREADS"
-                       libmono_cflags="-D_THREAD_SAFE"
-               else
-                       CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS"
-                       libmono_cflags="$PTHREAD_CFLAGS"
-               fi
-               if test "x$PTHREAD_LIBS" = "x"; then
-                       LDFLAGS="$LDFLAGS -pthread"
-                       libmono_ldflags="-pthread"
-               else
-                       LDFLAGS="$LDFLAGS $PTHREAD_LIBS"
-                       libmono_ldflags="$PTHREAD_LIBS"
-               fi
-               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD4"
-               need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread_t is a pointer])
-               libdl=
-               libgc_threads=pthreads
-# TLS isn't implemented at all on 4-STABLE
-               with_tls=pthread
-               ;;
-       *-*-*freebsd5*)
-               platform_win32=no
-               if test "x$PTHREAD_CFLAGS" = "x"; then
-                       CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS"
-                       libmono_cflags=
-               else
-                       CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS"
-                       libmono_cflags="$PTHREAD_CFLAGS"
-               fi
-               if test "x$PTHREAD_LIBS" = "x"; then
-                       LDFLAGS="$LDFLAGS -pthread"
-                       libmono_ldflags="-pthread"
-               else
-                       LDFLAGS="$LDFLAGS $PTHREAD_LIBS"
-                       libmono_ldflags="$PTHREAD_LIBS"
-               fi
-               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD5"
-               need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID)
-               libdl=
-               with_sigaltstack=yes
-               libgc_threads=pthreads
-# TLS is only partially implemented on 5-STABLE (compiler support
-# but NOT library support)
-#
-               with_tls=pthread
-               ;;
-       *-*-*freebsd6*)
+       *-*-*freebsd*)
                platform_win32=no
                if test "x$PTHREAD_CFLAGS" = "x"; then
                        CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS"
@@ -168,9 +114,9 @@ case "$host" in
                        LDFLAGS="$LDFLAGS $PTHREAD_LIBS"
                        libmono_ldflags="$PTHREAD_LIBS"
                fi
-               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD6"
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
                need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID)
+               AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread is a pointer])
                libdl=
                libgc_threads=pthreads
                with_sigaltstack=yes
@@ -224,6 +170,7 @@ case "$host" in
                libgc_threads=pthreads
                # This doesn't seem to work on solaris/x86, but the configure test runs
                with_tls=pthread
+               has_dtrace=yes
                ;;
        *-*-darwin*)
                platform_win32=no
@@ -238,6 +185,7 @@ case "$host" in
                no_version_script=yes
                libdl=
                libgc_threads=pthreads
+               has_dtrace=yes
                if test "x$cross_compiling" = "xyes"; then
                        has_broken_apple_cpp=yes
                fi
@@ -293,6 +241,7 @@ AC_SUBST(HOST_CC)
 AC_SUBST(BUILD_EXEEXT)
 
 AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes])
+AM_CONDITIONAL(USE_BATCH_FILES, [test x$platform_win32 = xyes -a x$cross_compiling = xyes])
 
 # Set STDC_HEADERS
 AC_HEADER_STDC
@@ -303,6 +252,9 @@ AM_PROG_LIBTOOL
 # Use dolt (http://dolt.freedesktop.org/) instead of libtool for building.
 DOLT
 
+export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+AC_SUBST(export_ldflags)
+
 # Test whenever ld supports -version-script
 AC_PROG_LD
 AC_PROG_LD_GNU
@@ -348,17 +300,7 @@ AC_CHECK_HEADERS(syslog.h)
 
 # for mono/dis
 AC_CHECK_HEADERS(wchar.h)
-case "$host" in
-       *-*-*freebsd6*)
-               AC_CHECK_HEADERS(ieeefp.h)
-       ;;
-       *-*-*freebsd*)
-               /* Only freebsd6 has a working ieeefp.h */
-       ;;
-       *)
-               AC_CHECK_HEADERS(ieeefp.h)
-       ;;
-esac
+AC_CHECK_HEADERS(ieeefp.h)
 AC_MSG_CHECKING(for isinf)
 AC_TRY_LINK([#include <math.h>], [
        int f = isinf (1);
@@ -443,6 +385,10 @@ if test -d $srcdir/$olivedir; then
 olive_topdir='$(top_srcdir)/'$olivedir
 fi
 
+# gettext: prepare the translation directories. 
+# we do not configure the full gettext, as we consume it dynamically from C#
+AM_PO_SUBDIRS
+
 AC_ARG_WITH([libgdiplus], 
        [  --with-libgdiplus=installed|sibling|<path>   Override the libgdiplus used for System.Drawing tests (defaults to NO)], 
        [], [with_libgdiplus=installed])
@@ -491,9 +437,17 @@ embedded)
   AC_CONFIG_SUBDIRS(eglib)
   ;;
 system)
+  if test "x$cross_compiling" = "xyes"; then
+    pkg_config_path="$PKG_CONFIG_PATH"
+    unset PKG_CONFIG_PATH
+  fi
   BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
   BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-
+  if test "x$cross_compiling" = "xyes"; then
+    PKG_CONFIG_PATH=$pkg_config_path
+    export PKG_CONFIG_PATH
+  fi
+  
   ## Versions of dependencies
   GLIB_REQUIRED_VERSION=1.3.11
   
@@ -586,7 +540,7 @@ DISABLED_FEATURES=none
 
 AC_ARG_ENABLE(minimal, [  --enable-minimal=LIST      drop support for LIST subsystems.
   LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug,
-  reflection_emit, large_code, logging, com, ssa, generics.],
+  reflection_emit, large_code, logging, com, ssa, generics, jit.],
 [
        for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
                eval "mono_feature_disable_$feature='yes'"
@@ -605,6 +559,7 @@ fi
 if test "x$mono_feature_disable_profiler" = "xyes"; then
        AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support])
 fi
+AM_CONDITIONAL(DISABLE_PROFILER, test x$mono_feature_disable_profiler = xyes)
 
 if test "x$mono_feature_disable_decimal" = "xyes"; then
        AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support])
@@ -642,6 +597,12 @@ if test "x$mono_feature_disable_generics" = "xyes"; then
        AC_DEFINE(DISABLE_GENERICS, 1, [Disable generics support])
 fi
 
+if test "x$mono_feature_disable_jit" = "xyes"; then
+       AC_DEFINE(DISABLE_JIT, 1, [Disable the JIT, only full-aot mode will be supported by the runtime.])
+fi
+
+AM_CONDITIONAL(DISABLE_JIT, test x$mono_feature_disable_jit = xyes)
+
 AC_MSG_CHECKING(for visibility __attribute__)
 AC_TRY_COMPILE([], [
    void __attribute__ ((visibility ("hidden"))) doit (void) {}
@@ -1115,13 +1076,7 @@ if test x$platform_win32 = xno; then
 # and libpthread does not exist
 #
        case "${host}" in
-               *-*-*freebsd4*)
-                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
-               ;;
-               *-*-*freebsd5*)
-                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
-               ;;
-               *-*-*freebsd6*)
+               *-*-*freebsd*)
                        AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
                ;;
                *)
@@ -1686,16 +1641,26 @@ if test "x$enable_big_arrays" = "xyes" ; then
        AC_DEFINE(MONO_BIG_ARRAYS,1,[Enable the allocation and indexing of arrays greater than Int32.MaxValue])
 fi
 
-AC_MSG_CHECKING([if DTrace support is requested])
-AC_ARG_ENABLE(dtrace,[  --enable-dtrace        Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=no)
-AC_MSG_RESULT($enable_dtrace)
+dnl **************
+dnl *** DTRACE ***
+dnl **************
+
+AC_ARG_ENABLE(dtrace,[  --enable-dtrace        Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=$has_dtrace)
+
+if test "x$enable_dtrace" = "xyes"; then
+   if test "x$has_dtrace" = "xno"; then
+         AC_MSG_ERROR([DTrace probes are not supported on this platform.])
+   fi
+   AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin])
+   if test "x$DTRACE" = "xno"; then
+         AC_MSG_RESULT([dtrace utility not found, dtrace support disabled.])
+         enable_dtrace=no
+   fi
+fi
+
 dtrace_g=no
 if test "x$enable_dtrace" = "xyes"; then
        AC_DEFINE(ENABLE_DTRACE, 1, [Enable DTrace probes])
-       AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin])
-       if test "x$DTRACE" = "xno"; then
-               AC_MSG_FAILURE([DTrace requested but not found])
-       fi
        DTRACEFLAGS=
        if test "x$ac_cv_sizeof_void_p" = "x8"; then
                case "$host" in
@@ -2175,13 +2140,17 @@ AC_SUBST(mono_runtime)
 
 mono_cfg_root=$mono_build_root/runtime
 if test x$platform_win32 = xyes; then
-  mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  if test "x$cross_compiling" = "xno"; then
+    mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  else
+    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\\'`\\etc
+  fi
 else
   mono_cfg_dir=$mono_cfg_root/etc
 fi
 AC_SUBST(mono_cfg_dir)
 
-AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper])
+AC_CONFIG_FILES([runtime/mono-wrapper po/mcs/Makefile.in],[chmod +x runtime/mono-wrapper])
 AC_CONFIG_FILES([runtime/monodis-wrapper],[chmod +x runtime/monodis-wrapper])
 
 AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config],
@@ -2313,6 +2282,7 @@ data/mono.pc
 data/mono-cairo.pc
 data/dotnet.pc
 data/dotnet35.pc
+data/wcf.pc
 data/cecil.pc
 data/smcs.pc
 samples/Makefile
@@ -2322,6 +2292,7 @@ tools/Makefile
 tools/locale-builder/Makefile
 runtime/Makefile
 msvc/Makefile
+po/mcs/Makefile
 ])
 
 if test x$platform_win32 = xyes; then
@@ -2412,6 +2383,7 @@ echo "
        zlib:        $zlib_msg
        oprofile:    $OPROFILE
        BigArrays:   $enable_big_arrays
+       DTrace:      $enable_dtrace
        $disabled
 
 "