namd: Switch from custom builder to overloaded stages

This commit is contained in:
Tyson Whitehead
2016-11-28 13:38:28 -05:00
parent aebc5cb499
commit 58985f7fa4
2 changed files with 42 additions and 45 deletions

View File

@@ -1,41 +0,0 @@
source $stdenv/setup
tar xvfz $src
cd namd-*
tar xvf charm-6.7.0.tar
cd charm-6.7.0
find . -type f |xargs sed -i 's/\/bin\/cp/cp/g'
find . -type f |xargs sed -i 's/\/bin\/rm/rm/g'
find . -type f |xargs sed -i 's/\/lib\/cpp/cpp/g'
./build charm++ multicore-linux64 --no-build-shared --with-production
cd ..
tar xvfz fftw-linux-x86_64.tar.gz
mv linux-x86_64 fftw
tar xvfz tcl8.5.9-linux-x86_64.tar.gz
mv tcl8.5.9-linux-x86_64 tcl
tar xvfz tcl8.5.9-linux-x86_64-threaded.tar.gz
mv tcl8.5.9-linux-x86_64-threaded tcl-threaded
tcsh -f ./config Linux-x86_64-g++ --charm-arch multicore-linux64
cd Linux-x86_64-g++
make
rm -rf obj
rm -rf src
rm -rf inc
rm Make*
rm -rf plugins
cp -r ../plugins .
rm sb
cp -r ../psfgen ./sb
mkdir -p $out/lib/namd
cp -r * $out/lib/namd
cd ..
mkdir -p $out/bin
ln -s $out/lib/namd2 $out/bin/namd2

View File

@@ -1,13 +1,51 @@
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "namd-2.11";
builder = ./builder.sh;
src = fetchurl {
stdenv.mkDerivation {
name = "namd-2.11";
src = fetchurl {
url = http://ppomorsk.sharcnet.ca/namd-2.11.tar.gz;
md5 = "8a81eb4c883edbf977d0af05351f6914";
};
postUnpack = ''
cd namd-*
tar -xf charm-6.7.0.tar
tar -xzf fftw-linux-x86_64.tar.gz
mv linux-x86_64 fftw
tar -xzf tcl8.5.9-linux-x86_64.tar.gz
mv tcl8.5.9-linux-x86_64 tcl
tar -xzf tcl8.5.9-linux-x86_64-threaded.tar.gz
mv tcl8.5.9-linux-x86_64-threaded tcl-threaded
cd ..
'';
patchPhase = ''
find charm-6.7.0 -type f | xargs sed -i \
-e 's,/bin/cp,cp,g' \
-e 's,/bin/rm,rm,g' \
-e 's,/lib/cpp,cpp,g'
'';
configurePhase = ''
tcsh -f ./config Linux-x86_64-g++ --charm-arch multicore-linux64
'';
buildPhase = ''
cd charm-6.7.0
./build charm++ multicore-linux64 --no-build-shared --with-production
cd ..
cd Linux-x86_64-g++
make
cd ..
'';
installPhase = ''
rm -fr Linux-x86_64-g++/{obj,src,inc,Make*,plugins,sb}
cp -r plugins Linux-x86_64-g++/
cp -r psfgen Linux-x86_64-g++/sb
mkdir -p $out/lib/namd
cp -r Linux-x86_64-g++/* $out/lib/namd
mkdir -p $out/bin
ln -s $out/lib/namd/namd2 $out/bin/namd2
'';
buildInputs = [
perl
bash