##
AC_PREREQ(2.59)
-AC_INIT([simgrid],[3.3-svn],[simgrid-devel@lists.gforge.inria.fr])
+AC_INIT([simgrid],[3.4.1],[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
-AC_REVISION($Revision$)
+AC_REVISION($Revision: 6998 $)
AC_CANONICAL_TARGET
AC_LANG([C])
+AC_PROG_CXX
AM_PROG_GCJ
+dnl ########### Addition for mmalloc (to be integrated into Cmake tools)
+AC_FUNC_MMAP
+AC_CHECK_HEADERS(limits.h stddef.h unistd.h)
+
+BFD_NEED_DECLARATION(sbrk)
+BFD_NEED_DECLARATION(getpagesize)
+dnl ########### end of addition for mmalloc
+
AM_INIT_AUTOMAKE([gnu -Wno-portability])
AC_CONFIG_MACRO_DIR(acmacro)
ACLOCAL="$ACLOCAL -I acmacro"
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
+SIMGRID_DEP=""
+SMPI_DEP=""
+GRAS_DEP=""
+
+
###############
## SVN version check
##
-if test -e .svn ; then
+if test -e .svn && echo $VERSION | grep -q svn; then
VERSION="$VERSION-r`svnversion`"
PACKAGE_VERSION="$PACKAGE_VERSION-r`svnversion`"
- PACKAGE_STRING="PACKAGE_STRING r`svnversion`"
-fi
+ PACKAGE_STRING="$PACKAGE_STRING r`svnversion`"
+else if test -e .git && echo $VERSION | grep -q svn; then
+ ver=`git log --oneline -1 | sed 's| .*||'`
+ VERSION=`echo "$VERSION-r$ver" | sed 's/svn/git/'`
+ PACKAGE_VERSION=`echo "$PACKAGE_VERSION-r$ver" | sed 's/svn/git/'`
+ PACKAGE_STRING=`echo "$PACKAGE_STRING r$ver" | sed 's/svn/git/'`
+fi fi
###############
## System checks
sysconf\
readv\
popen\
- signal\
- getline])
-
+ signal])
+
+dnl GNU systems before POSIX2008 need the _GNU_SOURCE definition to find getline (and simgrid does pass this)
+AC_MSG_CHECKING(a usable getline)
+AC_LINK_IFELSE([
+ #define _GNU_SOURCE
+ #include <stdio.h>
+ int main(void){
+ FILE * fp;
+ char * line = NULL;
+ size_t len = 0;
+ getline(&line, &len, fp);
+ }
+ ],[
+ AC_MSG_RESULT(found)
+ ],[
+ AC_SUBST(need_getline, ["#define SIMGRID_NEED_GETLINE 1 /* enable the getline replacement*/"])
+ AC_DEFINE(SIMGRID_NEED_GETLINE, 1, enable the getline replacement)
+ AC_MSG_RESULT(not found (activating internal implementation))
+ ])
+
+dnl AC_MSG_CHECKING(POSIX timer functions)
+AC_CHECK_LIB(rt, [clock_gettime], [
+ AC_DEFINE(HAVE_POSIX_GETTIME, 1, POSIX timer functions were found)
+ SIMGRID_DEP="$SIMGRID_DEP -lrt"
+ GRAS_DEP="$GRAS_DEP -lrt"
+ ])
+
# 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))
+AC_CHECK_FUNC( asprintf, :,[
+ AC_DEFINE(NEED_ASPRINTF, 1, enable the asprintf replacement)
+ AC_SUBST(need_asprintf, ["#define SIMGRID_NEED_ASPRINTF 1 /* enable the asprintf replacement */"])
+ ])
+AC_CHECK_FUNC( vasprintf, :,[
+ AC_DEFINE(NEED_VASPRINTF, 1, enable the vasprintf replacement)
+ AC_SUBST(need_vasprintf, ["#define SIMGRID_NEED_VASPRINTF 1 /*enable the vasprintf replacement */"])
+ ])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
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
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.)
SG_CONFIGURE_PART(Checking extra libraries dependencies...)
-SIMGRID_DEP=""
-SMPI_DEP=""
-GRAS_DEP=""
-
if test xpthread=xyes ; then
# if the pthreads are usable
if test "x$with_context" = "xpthread" ; then
# if we use them to implement the xbt_context
- SIMGRID_DEP="-lpthread"
+ SIMGRID_DEP="$SIMGRID_DEP -lpthread"
fi
# we need them in any case for the gras lib (which is multithreaded), but on windows (of course)
if test "x$with_context" != "xwindows" ; then
- GRAS_DEP="-lpthread"
+ GRAS_DEP="$GRAS_DEP -lpthread"
fi
fi
+AC_SEARCH_LIBS([connect],[socket],[],[],[]) # need -lsocket on solaris
#########################################
## Build optional modules (gtnets)
CPPFLAGS=$CPPFLAGS_SAV
LDFLAGS=$LDFLAGS_SAV
AC_LANG_POP([C++])
-
- 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
fi
-AM_CONDITIONAL(HAVE_GTNETS,test "x$gtnets" != xno)
-
-#########################################
-## Build optional modules (csdp)
-##
-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")
-if test "x$csdp_path" = "xno" ; then
- AC_MSG_RESULT(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)
- CSDP_LDFLAGS="-L$csdp_path/lib -lsdp -llapack -lblas -lm"
- CSDP_CPPFLAGS="-I$csdp_path/include -I$csdp_path/include/csdp"
- AC_CHECK_LIB(sdp,easy_sdp, csdp_lib=yes, csdp_lib=no,$CSDP_LDFLAGS)
-
- CPPFLAGS_SAV=$CPPFLAGS
- CPPFLAGS+=$CSDP_CPPFLAGS
- AC_CHECK_HEADER(declarations.h, csdp_header=yes, csdp_header=no, [])
- CPPFLAGS=$CPPFLAGS_SAV
+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")
-
- if test "x$csdp_lib = xyes" -a "x$csdp_header = xyes" ; then
- csdp=yes;
- else
- csdp=no;
- fi
- if test "x$csdp" = xyes; then
- 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])
- else
- AC_MSG_RESULT(Could not find any working sdp library.)
- fi;
-fi
-AM_CONDITIONAL(HAVE_SDP,test x$csdp != xno)
AC_SUBST([SIMGRID_DEP])
AC_SUBST([SMPI_DEP])
fi
AM_CONDITIONAL(GRAMINE_MODE,test x$gramine_mode != xno)
-
AM_MAINTAINER_MODE
if test x$USE_MAINTAINER_MODE = xyes
then
# Maintainers have no choice ! I'm a BOFH, and I plainly assume. [Mt]
- enable_compile_warnings=yes
+ force_compile_warnings=yes
fi
SG_COMPILE_FLAGS
+##
+## Support for tracing instrumentation (no longer supported in autotools)
+##
+
+##
+## Support for the supernovae compilation mode
+##
+AC_ARG_ENABLE(supernovae,
+ AS_HELP_STRING([--enable-supernovae],[Put the whole library in one compilation unit only to help gcc optimizing the code]),
+ [supernovae=$enableval],
+ [supernovae=no])
+AM_CONDITIONAL(SUPERNOVAE_MODE, test x$supernovae != xno)
+
AC_SUBST([CFLAGS])
AC_SUBST([CPPFLAGS])
AC_SUBST([LDFLAGS])
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]),
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"
+ use_java="no (you may want to install the java-gcj-compat-dev package)"
fi
fi
AC_MSG_RESULT(decide whether to compile java bindings... $use_java)
AM_CONDITIONAL(HAVE_JAVA,test "x$use_java" = "xyes")
+SG_CONFIGURE_PART(Checking Lua bindings...)
+AC_ARG_ENABLE(lua,
+ AS_HELP_STRING([--disable-lua], [To not compile the Lua bindings even if the tools are found]),
+ disable_lua=$enableval,disable_lua=yes)
+if test "x$disable_lua" != "xyes" ; then
+ use_lua="disabled by user"
+else
+ AC_CHECK_HEADERS(lualib.h)
+ if test "x$ac_cv_header_lualib_h" = "xyes" ; then
+ use_lua="yes"
+ AC_DEFINE(HAVE_LUA,1, [defines whether Lua bindings must be compiled or not])
+ SIMGRID_DEP="${SIMGRID_DEP} -ldl -llua5.1"
+ else
+ use_lua="no (you may want to install the liblua5.1-0-dev package, or pass CFLAGS=-I/usr/include/lua5.1)"
+ fi
+fi
+AC_MSG_RESULT(decide whether to compile lua bindings... $use_lua)
+AM_CONDITIONAL(HAVE_LUA,test "x$use_lua" = "xyes")
+
+SG_CONFIGURE_PART(Checking Ruby bindings...)
+# Ruby cruft
+AC_ARG_ENABLE(ruby,
+ AS_HELP_STRING([--disable-ruby], [To not compile the Ruby bindings even if the tools are found]),
+ disable_ruby=$enableval,disable_ruby=yes)
+if test "x$disable_ruby" != "xyes" ; then
+ use_ruby="disabled by user"
+else
+ CPPFLAGS="-I/usr/lib/ruby/1.8/i486-linux/ $CPPFLAGS"
+ AC_MSG_CHECKING(checking ruby.h usability and presence)
+ AC_COMPILE_IFELSE([
+ #undef PACKAGE_NAME
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ #undef PACKAGE_STRING
+ #undef PACKAGE_BUGREPORT
+ #include <ruby.h>
+ ], use_ruby=yes,use_ruby="no (Package ruby1.8-dev missing)")
+ AC_MSG_RESULT($use_ruby)
+ if test "x$use_ruby" = "xyes" ; then
+ AC_DEFINE(HAVE_RUBY,1, [defines whether Ruby bindings must be compiled or not])
+ SIMGRID_DEP="${SIMGRID_DEP} -lruby1.8"
+ else
+ AC_MSG_RESULT(Please install the ruby1.8-dev package (on debian and similar) to get ruby bindings)
+ fi
+fi
+AC_MSG_RESULT(decide whether to compile ruby bindings... $use_ruby)
+AM_CONDITIONAL(HAVE_RUBY,test "x$use_ruby" = "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)
AC_CHECK_PROG(FLEXML,flexml,`which flexml`,NOTFOUND)
AM_CONDITIONAL(HAVE_FLEXML,test x$FLEXML != xNOTFOUND)
-if test x$USE_MAINTAINER_MODE = xyes
-then
- # Check for doxygen when in maintainer mode since dist* targets fail
- # without it
- AC_PATH_PROG(DOXYGEN,doxygen,`which doxygen`)
- if test x$DOXYGEN = x ; then
- AC_MSG_ERROR([doxygen is mandatory in maintainer mode])
- fi
+# Check for doxygen when in maintainer mode which is helpful to build doc & dist
+AC_PATH_PROG(DOXYGEN,doxygen,`which doxygen`)
+AC_PATH_PROG(FIG2DEV,fig2dev,`which fig2dev`)
+AM_CONDITIONAL(HAVE_DOXYGEN,test x$DOXYGEN != x &&
+ test x$FIG2DEV != x)
+
+# Can we rebuild the publication list from the bib file?
+AC_CHECK_PROG(BIBTEX,bibtex,`which flexml`,NOTFOUND)
+AC_CHECK_PROG(BIBTOOL,bibtool,`which bibtool`,NOTFOUND)
+AC_CHECK_PROG(ICONV,iconv,`which iconv`,NOTFOUND)
+AC_CHECK_PROG(BIBTEX2HTML,bibtex2html,`which bibtex2html`,NOTFOUND)
+
+BIBTEX2HTML_VER="date"
+if test "x$BIBTEX2HTML" != "xNOTFOUND" ; then
+ BIBTEX2HTML_VER=`$BIBTEX2HTML --help 2>&1 | grep date`
+fi;
+
+AC_MSG_CHECKING(whether you have the right bibtex2html and will be able to build HTML files from the bibtex file)
+AM_CONDITIONAL(HAVE_BIBTEX2HTML,test "x$BIBTEX2HTML_VER" == "x" &&
+ test "x$BIBTEX2HTML" != "xNOTFOUND" &&
+ test "x$BIBTOOL" != "xNOTFOUND" &&
+ test "x$ICONV" != "xNOTFOUND" )
+
+if test "x$BIBTEX2HTML_VER" == "x" &&
+ test "x$BIBTEX2HTML" != "xNOTFOUND" &&
+ test "x$BIBTOOL" != "xNOTFOUND" &&
+ test "x$ICONV" != "xNOTFOUND"; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
fi
# Can we extract really usable backtraces? (also need the popen function)
AC_CONFIG_FILES([
Makefile
include/Makefile
+ include/simgrid_config.h
src/Makefile
src/context_sysv_config.h
])
tools/gras/Makefile
tools/tesh/Makefile
])
+# tools/tesh2/Makefile
# GRAMINE_CUT_BEGIN
for file in \
tools/graspe-slave tools/graspe-master \
checkall examples/java/runtest \
+ src/mk_supernovae.sh \
; do \
test -e $file && chmod +x $file; \
done
])
-# Testsuite
+# build tools && Testsuite
AC_CONFIG_FILES([
+ buildtools/Makefile
testsuite/Makefile
testsuite/run_tests
],[
examples/gras/pmm/Makefile
examples/gras/all2all/Makefile
examples/amok/Makefile
+ examples/smpi/Makefile
])
+# examples/gras/replay/Makefile
AC_CONFIG_FILES([
src/smpi/smpicc
src/smpi/smpirun
+],[
+ for file in \
+ src/smpi/smpicc \
+ src/smpi/smpirun \
+ ; do \
+ test -e $file && chmod +x $file; \
+ done
])
# GRAMINE_CUT_END
Context backend: ${with_context}
Compile Java: ${use_java}
+ Compile Lua: ${use_lua}
+ Compile Ruby: ${use_ruby}
Maintainer mode: ${USE_MAINTAINER_MODE}
+ Supernovae mode: ${supernovae}
"
if test x$botbuild = xyes ; then