X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e839b5745fba725c23b67f9ae704d9ebd849c8be..ec217a69082019eedf455254759a4d5ceffbbe70:/configure.ac diff --git a/configure.ac b/configure.ac index 0f18311f8c..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.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 ; 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 +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 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 +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 @@ -297,48 +342,6 @@ 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") - AC_MSG_CHECKING(for CSDP option:) -if test "x$csdp_path" = "xno" ; then - 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) - 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$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]) @@ -375,15 +378,27 @@ then 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]) @@ -428,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 ## @@ -458,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) @@ -489,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 ]) @@ -511,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 ],[ @@ -571,7 +666,9 @@ AC_CONFIG_FILES([ examples/gras/pmm/Makefile examples/gras/all2all/Makefile examples/amok/Makefile + examples/smpi/Makefile ]) +# examples/gras/replay/Makefile AC_CONFIG_FILES([ src/smpi/smpicc @@ -601,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