diff --git a/lib/plumed/.gitignore b/lib/plumed/.gitignore index c17bb18bf0648bbfeeb62e4d18b8c18f7dd2c395..d79d6d441387238a9d77b0108363233830bced76 100644 --- a/lib/plumed/.gitignore +++ b/lib/plumed/.gitignore @@ -1,3 +1,4 @@ /plumed2* /includelink /liblink +/plumed-* diff --git a/lib/plumed/Install.py b/lib/plumed/Install.py index 98827a3fda5f4bea158e6f0bb579f0a2174e3fd1..29b9136ccf9e3cb3a3b27f1515a775c8084420b2 100644 --- a/lib/plumed/Install.py +++ b/lib/plumed/Install.py @@ -156,7 +156,6 @@ if buildflag: if not checkmd5sum(checksums[version],filename): error("Checksum for plumed2 library does not match") - print("Unpacking plumed2 tarball ...") if os.path.exists("%s/plumed2-%s" % (homepath,version)): cmd = 'rm -rf "%s/plumed2-%s"' % (homepath,version) @@ -188,3 +187,7 @@ if linkflag: subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) cmd = 'ln -s "%s/plumed2/lib" liblink' % homepath subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + if os.path.isfile("Makefile.lammps.static"): + print("Creating Makefile.lammps") + cmd = 'cat liblink/plumed/src/lib/Plumed.inc.static Makefile.lammps.static > Makefile.lammps' + diff --git a/lib/plumed/Makefile.lammps.static b/lib/plumed/Makefile.lammps.static new file mode 100644 index 0000000000000000000000000000000000000000..860202a6f2bd4b304c7cf6e83ea4dc3ad84cc701 --- /dev/null +++ b/lib/plumed/Makefile.lammps.static @@ -0,0 +1,5 @@ +# Settings that the LAMMPS build will import when this package library is used + +plumed_SYSINC = +plumed_SYSLIB = $(PLUMED_LOAD) +plumed_SYSPATH = diff --git a/src/USER-PLUMED/Install.sh b/src/USER-PLUMED/Install.sh index 20215e4c99408141383a1768bc311e90485c15b7..f879d42feb0f6ceb065cda1a2fedd07d79f4895b 100755 --- a/src/USER-PLUMED/Install.sh +++ b/src/USER-PLUMED/Install.sh @@ -1,45 +1,65 @@ # Install/unInstall package files in LAMMPS -# edit 2 Makefile.package files to include/exclude ATC info +# mode = 0/1/2 for uninstall/install/update + +mode=$1 + +# enforce using portable C locale +LC_ALL=C +export LC_ALL + +# arg1 = file, arg2 = file it depends on + +action () { + if (test $mode = 0) then + rm -f ../$1 + elif (! cmp -s $1 ../$1) then + if (test -z "$2" || test -e ../$2) then + cp $1 .. + if (test $mode = 2) then + echo " updating src/$1" + fi + fi + elif (test -n "$2") then + if (test ! -e ../$2) then + rm -f ../$1 + fi + fi +} + +# all package files with no dependencies + +for file in *.cpp *.h; do + test -f ${file} && action $file +done + +# edit 2 Makefile.package files to include/exclude package info if (test $1 = 1) then if (test -e ../Makefile.package) then - sed -i -e 's|^PKG_LIB =[ \t]*|& -lplumedWrapper -ldl |' ../Makefile.package - if ( ! test -e ../../lib/plumed/liblink/plumed/src/lib/Plumed.inc.static ) then - sed -i -e 's|^PKG_SYSINC =[ \t]*|& -D__PLUMED_HAS_DLOPEN |' ../Makefile.package - fi + sed -i -e 's/[^ \t]*plumed[^ \t]* //' ../Makefile.package sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/plumed/includelink |' ../Makefile.package - sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/plumed/liblink |' ../Makefile.package + sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(plumed_SYSINC) |' ../Makefile.package + sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(plumed_SYSLIB) |' ../Makefile.package + sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(plumed_SYSPATH) |' ../Makefile.package fi if (test -e ../Makefile.package.settings) then - # This is for statically linking plumed2 - if ( test -e ../../lib/plumed/liblink/src/lib/Plumed.inc.static ) then - fname=../../lib/plumed/liblink/src/lib/Plumed.inc.static - sed -i -e '4 i \ -include '$fname' -' ../Makefile.package.settings - # This is for linking plumed2 as a runtime library -- this is the default behavior - else + sed -i -e '/^include.*plumed.*$/d' ../Makefile.package.settings # multiline form needed for BSD sed on Macs - sed -i -e '4 i \ -PLUMED_LOAD=-ldl + sed -i -e '4 i \ +include ..\/..\/lib\/plumed\/Makefile.lammps ' ../Makefile.package.settings - fi fi - cp fix_plumed.cpp .. - cp fix_plumed.h .. - elif (test $1 = 0) then if (test -e ../Makefile.package) then - sed -i -e 's/[^ \t]*-lplumedWrapper -ldl[^ \t]* //' ../Makefile.package - sed -i -e 's/[^ \t]*-D__PLUMED_HAS_DLOPEN[^ \t]* //' ../Makefile.package - sed -i -e 's|[^ \t]*-I../../lib/plumed/includelink[^ \t]* ||' ../Makefile.package - sed -i -e 's|[^ \t]*-L../../lib/plumed/liblink[^ \t]* ||' ../Makefile.package + sed -i -e 's/[^ \t]*plumed[^ \t]* //' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*plumed.*$/d' ../Makefile.package.settings fi - rm -f ../fix_plumed.cpp - rm -f ../fix_plumed.h fi