X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b799df7cc12d5618c96b0b1cb53c348bc810c0a6..a1757b8e6b03369034f2d251bcffc37e61a3c20a:/configure.ac diff --git a/configure.ac b/configure.ac index fccc942d2c..b512112f99 100644 --- a/configure.ac +++ b/configure.ac @@ -9,17 +9,25 @@ dnl GNU LGPL (v2.1) licence. ## 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" @@ -32,14 +40,24 @@ dnl We do build a proper DLL when using win32 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 @@ -66,16 +84,45 @@ AC_CHECK_FUNCS([gettimeofday usleep \ 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 + 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 a working asprintf (or activate our replacement) -AC_FUNC_ASPRINTF # check for asprintf function familly (or request the replacements from xbt/snprintf.c) -dnl A C_CHECK_FUNC( asprintf, :, AC_DEFINE(NEED_ASPRINTF, 1, enable the asprintf replacement)) -dnl A C_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 @@ -246,19 +293,15 @@ fi 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 @@ -344,19 +387,16 @@ fi 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]) @@ -403,13 +443,62 @@ else 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 + ], 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 ## @@ -433,7 +522,9 @@ AM_CONDITIONAL(HAVE_FLEXML,test x$FLEXML != xNOTFOUND) # 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) @@ -490,6 +581,7 @@ SG_CONFIGURE_PART(Generating files...) AC_CONFIG_FILES([ Makefile include/Makefile + include/simgrid_config.h src/Makefile src/context_sysv_config.h ]) @@ -518,9 +610,10 @@ AC_CONFIG_FILES([ done ]) -# Testsuite +# build tools && Testsuite AC_CONFIG_FILES([ + buildtools/Makefile testsuite/Makefile testsuite/run_tests ],[ @@ -605,6 +698,8 @@ Configuration of package \`${PACKAGE}' (version ${VERSION}) on $gras_arch_name ( Context backend: ${with_context} Compile Java: ${use_java} + Compile Lua: ${use_lua} + Compile Ruby: ${use_ruby} Maintainer mode: ${USE_MAINTAINER_MODE} Supernovae mode: ${supernovae}