##
AC_PREREQ(2.59)
-AC_INIT([simgrid],[3.3.4-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: 6267 $)
+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 && cat $VERSION | grep -q 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
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
SG_COMPILE_FLAGS
##
-## Support for the supernovae compilation mode
+## Support for tracing instrumentation (no longer supported in autotools)
##
-if test x$USE_MAINTAINER_MODE = xyes
-then
- not_maintainer_mode=no
-else
- not_maintainer_mode=yes
-fi
+##
+## 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=$not_maintainer_mode])
+ [supernovae=no])
AM_CONDITIONAL(SUPERNOVAE_MODE, test x$supernovae != xno)
AC_SUBST([CFLAGS])
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
##
# Check for doxygen when in maintainer mode which is helpful to build doc & dist
AC_PATH_PROG(DOXYGEN,doxygen,`which doxygen`)
-AM_CONDITIONAL(HAVE_DOXYGEN,test x$DOXYGEN != x)
+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_PATH_PROG(ADDR2LINE, addr2line)
AC_CONFIG_FILES([
Makefile
include/Makefile
+ include/simgrid_config.h
src/Makefile
src/context_sysv_config.h
])
done
])
-# Testsuite
+# build tools && Testsuite
AC_CONFIG_FILES([
+ buildtools/Makefile
testsuite/Makefile
testsuite/run_tests
],[
Context backend: ${with_context}
Compile Java: ${use_java}
+ Compile Lua: ${use_lua}
+ Compile Ruby: ${use_ruby}
Maintainer mode: ${USE_MAINTAINER_MODE}
Supernovae mode: ${supernovae}