AC_INIT(README)
AC_CANONICAL_SYSTEM
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono, 0.16)
+AM_INIT_AUTOMAKE(mono, 0.23)
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=""
+libmono_ldflags=""
+AC_SUBST(libmono_cflags)
+AC_SUBST(libmono_ldflags)
+
# Thread configuration inspired by sleepycat's db
AC_MSG_CHECKING([host platform characteristics])
case "$host" in
AC_DEFINE(PLATFORM_WIN32)
CC="gcc -mno-cygwin"
HOST_CC="gcc"
- CPPFLAGS="$CPPFLAGS -DGC_WIN32_THREADS"
+ CPPFLAGS="$CPPFLAGS -DGC_WIN32_THREADS -DWIN32_THREADS"
libdl=
;;
*-*-*bsd*)
platform_win32=no
CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+ libmono_cflags="-D_THREAD_SAFE"
LDFLAGS="$LDFLAGS -pthread"
+ libmono_ldflags="-pthread"
AC_DEFINE(NEED_LINK_UNLINK)
AC_DEFINE(PTHREAD_POINTER_ID)
libdl=
;;
*-*-linux*)
platform_win32=no
- AC_DEFINE(MONO_USE_EXC_TABLES)
- CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -fexceptions"
+ CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -DMONO_USE_EXC_TABLES -D_GNU_SOURCE -D_REENTRANT -fexceptions"
+ libmono_cflags="-DMONO_USE_EXC_TABLES -fexceptions -D_REENTRANT"
+ libmono_ldflags="-lpthread"
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"
+ libmono_ldflags="-pthread"
+ AC_DEFINE(NEED_LINK_UNLINK)
+ AC_DEFINE(PTHREAD_POINTER_ID)
+ libdl=
;;
*)
AC_MSG_WARN([*** Please add $host to configure.in checks!])
AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
-AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h)
+AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h sys/un.h)
# for mono/metadata/debug-symfile.c
AC_CHECK_HEADERS(elf.h)
GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0`
GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
+MINI_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0 gthread-2.0`
+MINI_LIBS=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0 gthread-2.0`
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS)
+AC_SUBST(MINI_CFLAGS)
+AC_SUBST(MINI_LIBS)
gc_headers=no
AC_CHECK_HEADERS(gc.h gc/gc.h, gc_headers=yes)
;;
esac
+if test "x$gc" = xboehm; then
+ AC_CHECK_FUNCS(GC_gcj_malloc)
+fi
+
if test x$platform_win32 = xno; then
dnl ******************************************************************
dnl *** Check for large file support ***
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
AC_SUBST(arch_target)
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
AC_OUTPUT([
Makefile
mono/arch/sparc/Makefile
mono/arch/s390/Makefile
mono/arch/arm/Makefile
+mono/arch/alpha/Makefile
mono/interpreter/Makefile
mono/tests/Makefile
mono/benchmark/Makefile
mono/jit/Makefile
mono/io-layer/Makefile
mono/handles/Makefile
+mono/mini/Makefile
+mono/mini/mini.pc
runtime/Makefile
scripts/Makefile
man/Makefile