X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/74db6f9329c0c6196c1d5e342485b7bfcffa8e9a..814080c31d915f2a87c28bd787bd8d9a413f51a3:/configure.ac?ds=sidebyside diff --git a/configure.ac b/configure.ac index f5f58f4942..b512112f99 100644 --- a/configure.ac +++ b/configure.ac @@ -9,16 +9,25 @@ dnl GNU LGPL (v2.1) licence. ## 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" @@ -31,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 @@ -65,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 @@ -94,7 +144,7 @@ dnl ## 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 @@ -199,6 +249,7 @@ if test "x$with_context" = "xucontext" ; then 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.) @@ -242,21 +293,18 @@ 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 ######################################### ## Build optional modules (gtnets) @@ -282,57 +330,17 @@ else 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]) @@ -370,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]) @@ -407,7 +427,7 @@ if test -e .svn && test x$USE_MAINTAINER_MODE != xyes && test x$botbuild != xyes 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]), @@ -419,26 +439,71 @@ else 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 + ], 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) @@ -455,14 +520,36 @@ AC_PROG_FLEX(2.5.30) 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) @@ -494,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 ]) @@ -504,6 +592,7 @@ AC_CONFIG_FILES([ tools/gras/Makefile tools/tesh/Makefile ]) +# tools/tesh2/Makefile # GRAMINE_CUT_BEGIN @@ -514,14 +603,17 @@ 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 ],[ @@ -574,11 +666,20 @@ 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 src/smpi/smpirun +],[ + for file in \ + src/smpi/smpicc \ + src/smpi/smpirun \ + ; do \ + test -e $file && chmod +x $file; \ + done ]) # GRAMINE_CUT_END @@ -597,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