AC_INIT(README)
AC_CANONICAL_SYSTEM
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono, 0.16)
+AM_INIT_AUTOMAKE(mono, 0.18)
AM_MAINTAINER_MODE
+#
+# These are the flags that need to be stored in the mono.pc file for
+# compiling code that will embed Mono
+#
+libmono_cflags=""
+AC_SUBST(libmono_cflags)
+
# Thread configuration inspired by sleepycat's db
AC_MSG_CHECKING([host platform characteristics])
case "$host" in
*-*-*bsd*)
platform_win32=no
CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+ libmono_cflags="-D_THREAD_SAFE"
LDFLAGS="$LDFLAGS -pthread"
AC_DEFINE(NEED_LINK_UNLINK)
+ AC_DEFINE(PTHREAD_POINTER_ID)
libdl=
;;
*-*-linux*)
platform_win32=no
- CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT"
+ CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -DMONO_USE_EXC_TABLES -D_GNU_SOURCE -D_REENTRANT -fexceptions"
+ libmono_cflags="-DMONO_USE_EXC_TABLES -fexceptions -D_REENTRANT"
libdl="-ldl"
;;
*-*-solaris*)
platform_win32=no
CPPFLAGS="$CPPFLAGS -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT"
AC_DEFINE(NEED_LINK_UNLINK)
+ libmono_cflags="-D_REENTRANT"
+ ;;
+ *-*-darwin*)
+ platform_win32=no
+ CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE"
+ libmono_cflags="-D_THREAD_SAFE"
+ LDFLAGS="$LDFLAGS -pthread"
+ AC_DEFINE(NEED_LINK_UNLINK)
+ AC_DEFINE(PTHREAD_POINTER_ID)
+ libdl=
;;
*)
AC_MSG_WARN([*** Please add $host to configure.in checks!])
GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0`
GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0`
+GTHREAD_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
+GTHREAD_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
+AC_SUBST(GTHREAD_CFLAGS)
+AC_SUBST(GTHREAD_LIBS)
AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS)
-AC_CHECK_HEADERS(gc.h gc/gc.h)
+gc_headers=no
+AC_CHECK_HEADERS(gc.h gc/gc.h, gc_headers=yes)
AC_CHECK_LIB(gc, GC_malloc, found_boehm="yes",,$libdl)
gc=auto
AC_ARG_WITH(gc, [ --with-gc=boehm,none],[gc=$with_gc])
case "x$gc" in
- xboehm|xyes)
+ xboehm|xbohem|xyes)
if test "x$found_boehm" != "xyes"; then
AC_MSG_ERROR("GC requested but libgc not found!")
fi
+ if test "x$gc_headers" != "xyes"; then
+ AC_MSG_ERROR("GC requested but header files not found! You may need to install them by hand.")
+ fi
AC_DEFINE(HAVE_BOEHM_GC)
AC_SUBST(HAVE_BOEHM_GC)
if test "x$found_boehm" != "xyes"; then
AC_MSG_WARN("Compiling mono without GC.")
else
+ if test "x$gc_headers" != "xyes"; then
+ AC_MSG_ERROR("Found libgc but not its header files! You may need to install them by hand.")
+ fi
AC_DEFINE(HAVE_BOEHM_GC)
AC_SUBST(HAVE_BOEHM_GC)
LIBS="$LIBS -lgc $libdl"
dnl ********************************
dnl *** Checks for timezone stuff **
dnl ********************************
- AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone,
+ AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff,
AC_TRY_COMPILE([
#include <time.h>
- ], [
- timezone = 1;
- ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no))
- if test $ac_cv_var_timezone = yes; then
- AC_DEFINE(HAVE_TIMEZONE)
+ ], [
+ struct tm tm;
+ tm.tm_gmtoff = 1;
+ ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no))
+ if test $ac_cv_struct_tm_gmtoff = yes; then
+ AC_DEFINE(HAVE_TM_GMTOFF)
else
- AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff,
+ AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone,
AC_TRY_COMPILE([
#include <time.h>
- ], [
- struct tm tm;
- tm.tm_gmtoff = 1;
- ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no))
- if test $ac_cv_struct_tm_gmtoff = yes; then
- AC_DEFINE(HAVE_TM_GMTOFF)
+ ], [
+ timezone = 1;
+ ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no))
+ if test $ac_cv_var_timezone = yes; then
+ AC_DEFINE(HAVE_TIMEZONE)
else
AC_ERROR(unable to find a way to determine timezone)
fi
sparc*-*-*) TARGET=SPARC; arch_target=sparc; ACCESS_UNALIGNED="no";;
#alpha*-*-linux* | alpha*-*-osf*) TARGET=ALPHA; ACCESS_UNALIGNED="no";;
#m68k-*-linux*) TARGET=M68K;;
-macppc-*-openbsd* | powerpc-*-linux* | powerpc-*-openbsd* | powerpc-*-sysv*) TARGET=POWERPC; arch_target=ppc;;
+macppc-*-openbsd* | powerpc-*-linux* | powerpc-*-openbsd* | powerpc-*-sysv* | powerpc-*-darwin*) TARGET=POWERPC; arch_target=ppc;;
arm-*-linux-* | armv4l-*-linux-*) TARGET=ARM; arch_target=arm; ACCESS_UNALIGNED="no";;
+s390-*-linux*) TARGET=S390; arch_target=s390; ACCESS_UNALIGNED="no";;
esac
if test ${TARGET} = unknown; then
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
+AM_CONDITIONAL(S390, test x$TARGET = xS390)
LIBC="libc.so.6"
AC_SUBST(LIBC)
mono/arch/x86/Makefile
mono/arch/ppc/Makefile
mono/arch/sparc/Makefile
+mono/arch/s390/Makefile
mono/arch/arm/Makefile
mono/interpreter/Makefile
mono/tests/Makefile