X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8a0163896b60ee56d779f07afb6fa42a87c78940..1703451f01d269c5b1cc49286b406ad2f28a56b7:/configure.ac diff --git a/configure.ac b/configure.ac index 03bc2c710e..2ce6ae2b38 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ ## AC_PREREQ(2.59) -AC_INIT([simgrid],[2.94],[simgrid2-users@listes.ens-lyon.fr]) +AC_INIT([simgrid],[2.95-cvs],[simgrid-devel@lists.gforge.inria.fr]) AC_CONFIG_SRCDIR([include/gras.h]) AC_CONFIG_HEADERS([src/gras_config.h]) # A CI_PREREQ(2003.01.16) # We need a recent ACI when having sub-modules @@ -55,13 +55,46 @@ GRAS_ARCH GRAS_CHECK_STRUCT_COMPACTION +dnl ## +dnl ## CONTEXT IMPLEMENTATION +dnl ## + SG_CONFIGURE_PART([Checking for threads, contexts or assimilated...]) -AC_CHECK_UCONTEXT + +dnl # +dnl # 1. determine possibilities +dnl # + +dnl # check for MCSC method AC_MSG_CHECKING(on top of what can we build the contexts) +AC_CHECK_HEADER(ucontext.h,,, [#include ]) +AC_CHECK_FUNCS(makecontext swapcontext getcontext setcontext) +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 + AC_ERROR([no appropriate backend found]) +fi + +dnl # +dnl # 3. allow decision to be overridden by user +dnl # + +AC_MSG_CHECKING(what kind of backend should we use) AC_ARG_WITH(context, [ --with-context=[ucontext/pthread] Use either (System V) swapcontext or pthread [[default=auto]].],, with_context=auto) - case $with_context in ucontext) ;; pthread) ;; @@ -70,8 +103,8 @@ case $with_context in esac if test "x$with_context" = "xucontext" ; then - if test "x$ac_check_ucontext" = "xyes"; then - AC_MSG_RESULT(found ucontext.h. Great!) + if test ".$mcsc" = .yes; then + AC_MSG_RESULT(found working ucontext. Great!) AC_DEFINE([USE_UCONTEXT],1,[Define if we use ucontext or not]) else ac_header=windows.h @@ -87,13 +120,29 @@ fi if test "x$with_context" = "xpthread"; then AC_CHECK_HEADERS([pthread.h]) -dnl A C_CHECK_LIB(pthread, pthread_mutex_lock, LIBS="$LIBS -lpthread") AC_CHECK_LIB(pthread,pthread_create,, [AC_MSG_ERROR([[Cannot find pthreads, no way (try --with-context=ucontext if you haven't already tried).]])]) AC_DEFINE([USE_PTHREADS],1,[Define if we use pthreads or not]) AC_MSG_RESULT(You have pthreads. Let's use them.) fi +dnl # +dnl # 4. determine a few additional details +dnl # + +if test "x$with_context" = "xucontext" ; then +dnl # direction of stack grow + AC_CHECK_STACKGROWTH(PTH_STACKGROWTH) + if test ".$ac_cv_check_stackgrowth" = ".down"; then + PTH_STACK_GROWTH="down" + else + PTH_STACK_GROWTH="up" + fi + AC_SUBST(PTH_STACK_GROWTH) + + AC_CHECK_STACKSETUP(makecontext, pth_skaddr_makecontext, pth_sksize_makecontext) +fi + ######################################### ## Check for libraries extra-dependencies ## @@ -139,6 +188,7 @@ AC_SUBST(LDFLAGS) ## Check for programs ## +SG_CONFIGURE_PART(Check for programs...) AC_CHECK_PROG(BASH, bash, `which bash`, /bin/sh) WARNING="This file is generated, do not edit" AC_SUBST(WARNING) @@ -159,45 +209,53 @@ AM_CONDITIONAL(HAVE_FLEXML,test x$FLEXML != xNOTFOUND) ## -# examples/bandwidth/Makefile examples/bandwidth/test_sg # examples/pastry/Makefile examples/pastry/test_sg +# examples/gras/chord/Makefile examples/gras/chord/test_sg examples/gras/chord/test_rl +SG_CONFIGURE_PART(Generating files...) AC_CONFIG_FILES([ Makefile include/Makefile src/Makefile src/amok/Makefile + src/ucontext_stack.h examples/Makefile - examples/msg/Makefile examples/msg/run_msg_test + examples/msg/Makefile examples/msg/run_msg_test examples/gras/Makefile - examples/gras/ping/Makefile examples/gras/ping/test_sg examples/gras/ping/test_rl - examples/gras/timer/Makefile examples/gras/timer/test_sg examples/gras/timer/test_rl + examples/gras/ping/Makefile examples/gras/ping/test_sg examples/gras/ping/test_rl + examples/gras/timer/Makefile examples/gras/timer/test_sg examples/gras/timer/test_rl examples/gras/chrono/Makefile examples/gras/chrono/test_sg examples/gras/chrono/test_rl + examples/gras/tokenS/Makefile examples/gras/tokenS/test_sg examples/gras/tokenS/test_rl + examples/amok/Makefile + examples/amok/bandwidth/Makefile examples/amok/bandwidth/test_sg examples/amok/bandwidth/test_rl doc/Makefile doc/Doxyfile tools/graspe-slave tools/Makefile tools/gras/Makefile testsuite/Makefile testsuite/run_tests - testsuite/gras/trp_tcp_usage - testsuite/gras/trp_file_usage + testsuite/gras/trp_tcp_usage testsuite/gras/trp_file_usage ],[ for file in \ testsuite/run_tests \ testsuite/gras/trp_tcp_usage testsuite/gras/trp_file_usage \ tools/graspe-slave tools/graspe-master \ - examples/msg/run_msg_test \ + \ + examples/amok/bandwidth/test_sg examples/amok/bandwidth/test_rl \ + \ examples/gras/ping/test_sg examples/gras/ping/test_rl \ examples/gras/timer/test_sg examples/gras/timer/test_rl \ examples/gras/chrono/test_sg examples/gras/chrono/test_rl \ + examples/gras/tokenS/test_sg examples/gras/tokenS/test_rl \ + examples/msg/run_msg_test \ ; do \ test -e $file && chmod +x $file; \ done - chmod +x $srcdir/tools/gras-check-arch; ]) + +# examples/gras/chord/test_sg examples/gras/chord/test_rl \ # examples/gras/pastry/test_sg -# examples/gras/bandwidth/test_sg