summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 02858da0519a396b382021c171594be5571d73ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Maintainer: Viktor Drobot (aka dviktor) linux776 [at] gmail [dot] com

pkgname=namd
pkgver=2.14
_charmver=6.10.2
pkgrel=2
pkgdesc="Scalable molecular dynamic engine"
url="http://www.ks.uiuc.edu/Research/namd/"
license=(custom)
arch=(x86_64)
depends=(gcc9 gcc9-libs fftw tcl)
makedepends=(make patch)
md5sums=('7a827066e0d7f2a37f748ca9f165ea80'
         '3dee29385fed05eb8f3d2d38dd799383'
         'e9d2d7f92283ee479f08f4f9c4c85709')
options=(staticlibs !buildflags)

# You MUST download the package from the NAMD url and put it in the PKGBUILD folder!
source=("http://charm.cs.illinois.edu/distrib/charm-${_charmver}.tar.gz"
        "local://NAMD_${pkgver}_Source.tar.gz"
        "namd.patch")

prepare() {
  cd ${srcdir}/NAMD_${pkgver}_Source

  # move Charm++ in place
  mv ${srcdir}/charm-v${_charmver} ${srcdir}/NAMD_${pkgver}_Source/charm-${_charmver}

  # apply patch
  patch -Np0 -i "${srcdir}/namd.patch"
}

build() {
  # build Charm++
  cd ${srcdir}/NAMD_${pkgver}_Source/charm-${_charmver}

  CC=gcc-9 CXX=g++-9 ./build charm++ multicore-linux64 --with-production

  # go to the NAMD build
  cd ${srcdir}/NAMD_${pkgver}_Source

  # configure and build NAMD
  ./config Linux-x86_64-g++ --charm-arch multicore-linux64 --with-fftw3 --cc gcc-9 --cxx g++-9
  cd Linux-x86_64-g++
  make
}

package() {
  cd ${srcdir}/NAMD_${pkgver}_Source/Linux-x86_64-g++

  make release

  # prepare directories
  mkdir -p ${pkgdir}/opt
  mkdir -p ${pkgdir}/usr/bin

  # install stuff
  mv NAMD_${pkgver}_Linux-x86_64-multicore ${pkgdir}/opt/${pkgname}

  # install license
  install -Dm644 ${pkgdir}/opt/${pkgname}/license.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE

  # create links to executables
  ln -sf /opt/${pkgname}/charmrun ${pkgdir}/usr/bin/charmrun
  ln -sf /opt/${pkgname}/flipbinpdb ${pkgdir}/usr/bin/flipbinpdb
  ln -sf /opt/${pkgname}/flipdcd ${pkgdir}/usr/bin/flipdcd
  ln -sf /opt/${pkgname}/namd2 ${pkgdir}/usr/bin/namd2
  ln -sf /opt/${pkgname}/psfgen ${pkgdir}/usr/bin/psfgen
  ln -sf /opt/${pkgname}/sortreplicas ${pkgdir}/usr/bin/sortreplicas
}