diff --git a/CHANGES/v2.2.txt b/CHANGES/v2.2.txt index 2347b263410ef50e5b2717ef1b7f5ee18326aabe..4e2fa27581ddb0bf8764b4c35dfc137ff8a3f82d 100644 --- a/CHANGES/v2.2.txt +++ b/CHANGES/v2.2.txt @@ -149,12 +149,13 @@ For users: - Files are now flushed at the correct step. Before this fix, they were flushed at the step before the requested one (e.g. with \ref FLUSH STRIDE=100 at step 99, 199, etc). - In \ref METAD, INTERVAL with periodic variables now report an error. -- Added --disable-dependency-tracking to ./configure - \ref LOAD now works also when plumed is installed with a suffix. - Added `--md-root` option to `plumed patch` which allows it to be run from a directory different from the one where the md code is located. For developers: +- `./configure` checks if dependencies can be generated. If not, they are disabled. +- Added --disable-dependency-tracking to ./configure - Added a make target `all_plus_doc` that builds both code and docs. - Added possibility to set a default location for plumed library in runtime binding. If the plumed wrapped is compiled with `-D__PLUMED_DEFAULT_KERNEL=/path/libplumedKernel.so`, diff --git a/configure b/configure index 2686d448c5fba34d86ac3e1e5bb06c9a046ffecf..5e5458397265f995c85f462e346fc7a9a1ca824f 100755 --- a/configure +++ b/configure @@ -625,7 +625,6 @@ program_name LD_RO program_can_run_mpi program_can_run -disable_dependency_tracking xxd make_pdfdoc dot @@ -636,6 +635,7 @@ OPENMP_CXXFLAGS EGREP GREP CXXCPP +disable_dependency_tracking ac_ct_FC FCFLAGS FC @@ -5008,6 +5008,41 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test "$dependency_tracking" = true +then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX can generate dependency file with -MM -MF" >&5 +$as_echo_n "checking whether $CXX can generate dependency file with -MM -MF... " >&6; } + dependency=ko + echo "#include \"conftest1.h\"" > conftest.cpp + echo "#include \"conftest2.h\"" > conftest1.h + echo "/* */" > conftest2.h + $CXX $CXXFLAGS -c -MM -MFconftest.d conftest.cpp 1> /dev/null 2> /dev/null + grep conftest2 conftest.d 1> /dev/null 2>/dev/null && dependency=ok + if test "$dependency" = ok ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + disable_dependency_tracking=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + disable_dependency_tracking=yes + fi +else + disable_dependency_tracking=yes +fi + +if test "$disable_dependency_tracking" = yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dependencies tracking disabled - always make clean before make" >&5 +$as_echo "$as_me: WARNING: dependencies tracking disabled - always make clean before make" >&2;} +else + { $as_echo "$as_me:${as_lineno-$LINENO}: dependency tracking enabled" >&5 +$as_echo "$as_me: dependency tracking enabled" >&6;} +fi + + + + #### Compulsory libraries #### # some of them might be made optional if we find that are not available in some system { $as_echo "$as_me:${as_lineno-$LINENO}: Now we will check compulsory headers and libraries" >&5 @@ -6856,18 +6891,6 @@ then fi -if test "$dependency_tracking" = true -then - { $as_echo "$as_me:${as_lineno-$LINENO}: dependency tracking enabled" >&5 -$as_echo "$as_me: dependency tracking enabled" >&6;} - disable_dependency_tracking=no -else - { $as_echo "$as_me:${as_lineno-$LINENO}: dependency tracking disabled" >&5 -$as_echo "$as_me: dependency tracking disabled" >&6;} - disable_dependency_tracking=yes -fi - - program_can_run="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can be run on this machine" >&5 $as_echo_n "checking whether a program can be run on this machine... " >&6; } diff --git a/configure.ac b/configure.ac index bc4c9502bf15317c9c7d48ce2f0e554337cb8d2d..4ccf6a2e407b38b7a362ca88949019113b35ba7a 100644 --- a/configure.ac +++ b/configure.ac @@ -279,6 +279,36 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ class A{explicit A(){}};])], [AC_MSG_RESULT([no]) ; AC_DEFINE([explicit],[])]) +AC_SUBST(disable_dependency_tracking) + +if test "$dependency_tracking" = true +then + AC_MSG_CHECKING([whether $CXX can generate dependency file with -MM -MF]) + dependency=ko + echo "#include \"conftest1.h\"" > conftest.cpp + echo "#include \"conftest2.h\"" > conftest1.h + echo "/* */" > conftest2.h + $CXX $CXXFLAGS -c -MM -MFconftest.d conftest.cpp 1> /dev/null 2> /dev/null + grep conftest2 conftest.d 1> /dev/null 2>/dev/null && dependency=ok + if test "$dependency" = ok ; then + AC_MSG_RESULT([yes]) + disable_dependency_tracking=no + else + AC_MSG_RESULT([no]) + disable_dependency_tracking=yes + fi +else + disable_dependency_tracking=yes +fi + +if test "$disable_dependency_tracking" = yes ; then + AC_MSG_WARN([dependencies tracking disabled - always make clean before make]) +else + AC_MSG_NOTICE([dependency tracking enabled]) +fi + + + #### Compulsory libraries #### # some of them might be made optional if we find that are not available in some system @@ -598,16 +628,6 @@ then AC_MSG_ERROR([xxd should be installed for PLUMED to compile properly]) fi -AC_SUBST(disable_dependency_tracking) -if test "$dependency_tracking" = true -then - AC_MSG_NOTICE([dependency tracking enabled]) - disable_dependency_tracking=no -else - AC_MSG_NOTICE([dependency tracking disabled]) - disable_dependency_tracking=yes -fi - AC_SUBST(program_can_run) program_can_run="" AC_MSG_CHECKING([whether a program can be run on this machine])