- sysconf])
-
-AC_ARG_ENABLE(context,
- [ --enable-context=[ucontext/pthread] Use either (System V) swapcontext or pthread [[default=ucontext]].],,
- enable_context=pthread)
-AC_MSG_CHECKING(on top of what can we build the contexts)
-if test "x$enable_context" = "xucontext"; then
- ac_header=ucontext.h
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- AC_MSG_RESULT(found ucontext.h. Great!)
- else
+ sysconf\
+ readv\
+ popen\
+ signal\
+ getline])
+
+# check for a working snprintf (or use xbt/snprintf.c, which comes from http://www.ijs.si/software/snprintf/)
+AC_FUNC_SNPRINTF
+# check for asprintf function familly (or request the replacements from xbt/snprintf.c)
+AC_CHECK_FUNC( asprintf, :, AC_DEFINE(NEED_ASPRINTF, 1, enable the asprintf replacement))
+AC_CHECK_FUNC( vasprintf, :, AC_DEFINE(NEED_VASPRINTF, 1, enable the vasprintf replacement))
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_INLINE
+AC_TYPE_SIZE_T
+
+###################################
+## SimGrid and GRAS specific checks
+##
+
+SG_CONFIGURE_PART(Checking GRAS architecture signature...)
+# Check architecture signature begin
+GRAS_ARCH
+# Check architecture signature end
+GRAS_CHECK_STRUCT_COMPACTION
+
+
+dnl ##
+dnl ## CONTEXT IMPLEMENTATION
+dnl ##
+
+SG_CONFIGURE_PART([Checking for threads, contexts or assimilated...])
+
+dnl #
+dnl # 1. determine possibilities
+dnl #
+
+dnl # check for MCSC method
+AC_CHECK_MCSC(mcsc=yes, mcsc=no)
+
+dnl # check for pthread method
+AC_CHECK_HEADERS([pthread.h])
+AC_CHECK_LIB(pthread,pthread_create,pthread=yes, pthread=no)
+
+dnl #
+dnl # 2. make a general decision
+dnl #
+
+if test ".$mcsc" = .yes; then
+ mcsc=yes
+elif test ".$pthread" = .yes; then
+ pthread=yes
+else