adjust compilation settings to link in plumed library statically and all its dependencies
This commit is contained in:
1
lib/plumed/.gitignore
vendored
1
lib/plumed/.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
/plumed2*
|
||||
/includelink
|
||||
/liblink
|
||||
/plumed-*
|
||||
|
||||
@ -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'
|
||||
|
||||
|
||||
5
lib/plumed/Makefile.lammps.static
Normal file
5
lib/plumed/Makefile.lammps.static
Normal file
@ -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 =
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user