Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Initiate the 3.4 development cycle
[simgrid.git] / configure.ac
index 25a5cba..31f5429 100644 (file)
@@ -9,7 +9,7 @@ dnl GNU LGPL (v2.1) licence.
 ##
 
 AC_PREREQ(2.59)
-AC_INIT([simgrid],[3.3-cvs],[simgrid-devel@lists.gforge.inria.fr])
+AC_INIT([simgrid],[3.4-svn],[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
@@ -17,6 +17,7 @@ AC_CONFIG_HEADERS([src/gras_config.h])
 AC_REVISION($Revision$)
 AC_CANONICAL_TARGET
 AC_LANG([C])
+AC_PROG_CXX
 AM_PROG_GCJ
 
 AM_INIT_AUTOMAKE([gnu -Wno-portability])
@@ -31,6 +32,15 @@ dnl We do build a proper DLL when using win32
 AC_LIBTOOL_WIN32_DLL
 AC_PROG_LIBTOOL
 
+###############
+## SVN version check
+##
+if test -e .svn ; then
+  VERSION="$VERSION-r`svnversion`"
+  PACKAGE_VERSION="$PACKAGE_VERSION-r`svnversion`"
+  PACKAGE_STRING="PACKAGE_STRING r`svnversion`"  
+fi
+
 ###############
 ## System checks
 ##
@@ -85,7 +95,7 @@ dnl ##
 dnl ##  CONTEXT IMPLEMENTATION
 dnl ##
 
-SG_CONFIGURE_PART([Checking for threads, contexts or assimilated...])
+SG_CONFIGURE_PART([Checking threads, contexts or assimilated...])
 
 dnl #
 dnl #  1. determine possibilities
@@ -99,6 +109,18 @@ AC_CHECK_HEADERS([pthread.h])
 AC_CHECK_LIB(pthread,pthread_create,pthread=yes, pthread=no)
 
 if test x$pthread = xyes ; then
+  AC_CHECK_LIB(pthread, sem_init, HAVE_SEM_INIT=yes, HAVE_SEM_INIT=no)
+  if test ${HAVE_SEM_INIT} = yes ; then
+     AC_MSG_CHECKING(if sem_init is compilable)
+     AC_TRY_COMPILE([#include <semaphore.h>],
+                   [sem_t s; sem_init(&s);], HAVE_SEM_INIT=yes, HAVE_SEM_INIT=no)
+     if test ${HAVE_SEM_INIT} = yes ; then
+        AC_DEFINE([HAVE_SEM_INIT],1,[Define if sem_init() is avaible or not (part of XPG6 standard only)])
+        AC_MSG_RESULT(yes)
+     else
+       AC_MSG_RESULT(no)
+     fi
+  fi
   AC_CHECK_LIB(pthread, sem_timedwait, HAVE_SEM_TIMEDWAIT=yes, HAVE_SEM_TIMEDWAIT=no)
   if test ${HAVE_SEM_TIMEDWAIT} = yes ; then
      AC_MSG_CHECKING(if sem_timedwait is compilable)
@@ -178,6 +200,7 @@ if test "x$with_context" = "xucontext" ; then
   if test ".$mcsc" = .yes; then
     AC_MSG_RESULT(found working ucontext. Great!)
     AC_DEFINE([CONTEXT_UCONTEXT],1,[Define if xbt contexts are based on ucontext or not])
+    AC_CHECK_HEADERS([valgrind/valgrind.h])
   else
     if test ".$windows_context" = .yes ; then
       AC_MSG_RESULT(use windows context portability layer.)
@@ -190,8 +213,7 @@ if test "x$with_context" = "xucontext" ; then
 fi
 
 if test "x$with_context" = "xpthread"; then
-  AC_CHECK_HEADERS([pthread.h])
-  if test x$pthread != xyes ; then
+  if test x$pthread != xyes ; then # reuse previous checks
     AC_MSG_ERROR([[Cannot find pthreads (try --with-context=ucontext if you haven't already tried).]])
   fi
   AC_DEFINE([CONTEXT_THREADS],1,[Define if xbt contexts are based on our threads implementation or not])
@@ -262,17 +284,18 @@ else
   CPPFLAGS=$CPPFLAGS_SAV
   LDFLAGS=$LDFLAGS_SAV
   AC_LANG_POP([C++])  
+fi
 
-  if test "x$gtnets" = xyes ; then 
-    AM_CPPFLAGS="$AM_CPPFLAGS $GTNETS_CPPFLAGS"
-    SIMGRID_DEP="$SIMGRID_DEP $GTNETS_LDFLAGS"
-    AC_MSG_RESULT(Found working gtnets library.)
-    AC_DEFINE(HAVE_GTNETS, 1, [Indicates whether we have the GTNETS library or not])
-  else
-    AC_MSG_RESULT(Could not find any working gtnets library or not patched version, see config.log for details .)
-  fi
+if test "x$gtnets" = "xyes" ; then
+  AC_MSG_RESULT(Enabling GTNETS support.)
+  AC_DEFINE([HAVE_GTNETS], 1, [Indicates that we have GTNETS support])
+  LDFLAGS+="-lgtnets -L$gtnets_path/lib"
+  CPPFLAGS+="-I$gtnets_path/include -I$gtnets_path/include/gtnets"
 fi
-AM_CONDITIONAL(HAVE_GTNETS,test "x$gtnets" != xno)
+AM_CONDITIONAL(HAVE_GTNETS, test "x$gtnets" != "xno")
+
+
+
 
 #########################################
 ## Build optional modules (csdp)
@@ -281,8 +304,9 @@ csdp=no
 AC_ARG_WITH(csdp,
   AS_HELP_STRING([--with-csdp], [Path to csdp installation (default to empty, i.e. not using csdp)]),
   csdp_path="$withval",csdp_path="no")
+  AC_MSG_CHECKING(for CSDP option:)
 if test "x$csdp_path" = "xno" ; then
-  AC_MSG_RESULT(Eventually you will come to csdp.)
+  AC_MSG_RESULT([no, eventually you will come to csdp.])
 else  
   AC_MSG_RESULT(***** You have decided to use csdp. Let's check whether it works or not *****)
   AC_MSG_CHECKING(for csdp)
@@ -307,7 +331,7 @@ else
     AM_CPPFLAGS="$AM_CPPFLAGS $CSDP_CPPFLAGS"
     SIMGRID_DEP="$SIMGRID_DEP $CSDP_LDFLAGS"
     AC_MSG_RESULT(Found working sdp library.)
-    AC_DEFINE(HAVE_SDP, 1, [Indicates whether we have the CSDP library or not])
+    AC_DEFINE([HAVE_SDP], 1, [Indicates whether we have the CSDP library or not])
   else
     AC_MSG_RESULT(Could not find any working sdp library.)
   fi;
@@ -387,12 +411,11 @@ if test -e .svn && test x$USE_MAINTAINER_MODE != xyes && test x$botbuild != xyes
 fi
 
 
-SG_CONFIGURE_PART(Check for Java bindings...)
+SG_CONFIGURE_PART(Checking Java bindings...)
 # Java cruft
 AC_ARG_ENABLE(java,
              AS_HELP_STRING([--disable-java], [To not compile the Java bindings even if the tools are found]),
              disable_java=$enableval,disable_java=yes)
-AC_MSG_CHECKING(whether to compile java bindings)
 if test "x$disable_java" != "xyes" ; then
    use_java="disabled by user"
 else
@@ -400,24 +423,22 @@ else
   AC_PATH_PROG([JAVA],  [java] , `which java`)
   AC_PATH_PROG([JAR],   [jar]  , `which jar`)
   AC_CHECK_HEADERS(jni.h)
-  if test -n "$JAVAC"   \
-     && test -n "$JAVA" \
-     && test -n "$JAR"  \
-     && test "x$ac_cv_header_jni_h" = "xyes" ; then
-   
+  if test -n "$JAVAC" && test -n "$JAVA" && test -n "$JAR" && test "x$ac_cv_header_jni_h" = "xyes" ; then
      use_java="yes"
+     AC_DEFINE(HAVE_JAVA,1, [defines whether Java bindings must be compiled or not])
   else   
      use_java="no"
   fi
 fi
-AC_MSG_RESULT($use_java)
+AC_MSG_RESULT(decide whether to compile java bindings... $use_java)
 AM_CONDITIONAL(HAVE_JAVA,test "x$use_java" = "xyes")
 
+
 #####################
 ## Check for programs
 ##
 
-SG_CONFIGURE_PART(Check for programs...)
+SG_CONFIGURE_PART(Checking programs...)
 AC_CHECK_PROG(BASH, bash, `which bash`, /bin/sh)
 WARNING="This file is generated, do not edit"
 AC_SUBST(WARNING)
@@ -451,15 +472,10 @@ if test x$ADDR2LINE != x ; then
 fi
 
 AC_SUBST(ac_configure_args)
+AC_DEFINE_UNQUOTED(AC_CONFIGURE_ARGS,"$ac_configure_args",[Arguments passed to the configure script])
 # Can we make status line about the compilation result?
-AC_CHECK_PROG(MD5SUM,md5sum,`which md5sum`)
-if test x$MD5SUM != xno ; then
-  build_version=`find -name '*.[ch]' |grep -v src/ucontext_stack.h | grep -v src/gras_config.h |\ 
-                 xargs cat| $MD5SUM | sed 's/ .*$//'`
-else 
-  build_version="no_md5sum_binary"
-fi
-build_id="$PACKAGE ver=$VERSION build=$build_version args=\"$ac_configure_args\""
+dnl A C_CHECK_PROG(MD5SUM,md5sum,`which md5sum`)
+build_id="$PACKAGE ver=$VERSION args=\"$ac_configure_args\""
 AC_SUBST(build_id)
 
 ###################
@@ -479,7 +495,7 @@ AC_CONFIG_FILES([
   Makefile
   include/Makefile
   src/Makefile
-  src/ucontext_stack.h
+  src/context_sysv_config.h
 ])
 
 # Tools being embeeded in gramine (stub generator)
@@ -488,6 +504,7 @@ AC_CONFIG_FILES([
     tools/gras/Makefile
     tools/tesh/Makefile
 ])
+#    tools/tesh2/Makefile
 
 
 # GRAMINE_CUT_BEGIN
@@ -498,6 +515,7 @@ AC_CONFIG_FILES([
 ],[
     for file in                                                 \
      tools/graspe-slave           tools/graspe-master           \
+     checkall                     examples/java/runtest         \
     ; do                                                        \
       test -e $file && chmod +x $file;                          \
     done
@@ -551,6 +569,7 @@ AC_CONFIG_FILES([
       examples/gras/spawn/Makefile
       examples/gras/synchro/Makefile
       examples/gras/timer/Makefile
+      examples/gras/properties/Makefile
       examples/gras/chrono/Makefile
       examples/gras/mutual_exclusion/simple_token/Makefile
       examples/gras/mmrpc/Makefile