X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ca8a39f9679abcef3c5c546966e5144ec41f67c3..0bf95fe1cd58b85aa7bbcf61a76fb07e481d51c4:/configure.ac diff --git a/configure.ac b/configure.ac index bf3e689e6c..b0528a236f 100644 --- a/configure.ac +++ b/configure.ac @@ -9,12 +9,12 @@ dnl GNU LGPL (v2.1) licence. ## AC_PREREQ(2.59) -AC_INIT([simgrid],[3.3.3],[simgrid-devel@lists.gforge.inria.fr]) +AC_INIT([simgrid],[3.3.5-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 -AC_REVISION($Revision: 6267 $) +AC_REVISION($Revision: 6998 $) AC_CANONICAL_TARGET AC_LANG([C]) AC_PROG_CXX @@ -32,14 +32,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,14 +76,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 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 @@ -244,19 +285,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 @@ -333,7 +370,6 @@ then fi AM_CONDITIONAL(GRAMINE_MODE,test x$gramine_mode != xno) - AM_MAINTAINER_MODE if test x$USE_MAINTAINER_MODE = xyes then @@ -342,6 +378,27 @@ then fi SG_COMPILE_FLAGS +## +## Support for tracing instrumentation +## +AC_CONFIG_HEADERS([include/instr/config.h]) +AC_ARG_ENABLE(tracing, + AS_HELP_STRING([--enable-tracing],[Activate the instrumentation so SimGrid can be traced to be visualized]), + [tracing=$enableval], + [tracing=no]) +if test x$tracing = xyes ; then + AC_DEFINE([HAVE_TRACING],[1], [defines whether instrumentation must be compiled or not]) +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=no]) +AM_CONDITIONAL(SUPERNOVAE_MODE, test x$supernovae != xno) + AC_SUBST([CFLAGS]) AC_SUBST([CPPFLAGS]) AC_SUBST([LDFLAGS]) @@ -386,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(lua5.1/lualib.h) + if test "x$ac_cv_header_lua5_1_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)" + 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 ## @@ -416,7 +522,35 @@ 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) +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) @@ -447,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 ]) @@ -469,14 +604,16 @@ AC_CONFIG_FILES([ 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 ],[ @@ -531,6 +668,7 @@ AC_CONFIG_FILES([ examples/amok/Makefile examples/smpi/Makefile ]) +# examples/gras/replay/Makefile AC_CONFIG_FILES([ src/smpi/smpicc @@ -560,8 +698,11 @@ 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} " if test x$botbuild = xyes ; then