X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bb92afbd7582caca17782da3c1fb9f8a444f1578..030a5011922ca9ac7d471362d5c8d820f052ff26:/configure.ac diff --git a/configure.ac b/configure.ac index 81b6ef1f9a..b7f3cd221c 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ ## AC_PREREQ(2.59) -AC_INIT([simgrid],[2.94-cvs],[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 @@ -19,9 +19,9 @@ ACLOCAL="$ACLOCAL -I acmacro" AC_PROG_LIBTOOL ############### -## Basic checks +## System checks ## - +SG_CONFIGURE_PART(System checks...) AC_PROG_CC(xlC gcc cc) AM_SANITY_CHECK AC_PROG_MAKE_SET @@ -48,18 +48,53 @@ 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 -AC_CHECK_UCONTEXT +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_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) ;; @@ -68,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 @@ -85,17 +120,34 @@ 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 ## +SG_CONFIGURE_PART(Checking extra libraries dependencies...) SIMGRID_DEP="" AC_SUBST([SIMGRID_DEP]) @@ -136,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) @@ -156,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 +# src/amok/Makefile +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.main doc/Doxyfile.API doc/Doxyfile.Examples + 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