summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 477bca1ce512232e0155b7263202d3ec9cd86788 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Original Contributor: aquavitae <aquavitae69: gmail>
# Current Maintainer: Andrew Fischer <andrew_at_ltengsoft.com>

pkgname=openfoam2.4-git

# The distributors package name
_distpkgname=OpenFOAM
_distpkgver=2.4.x
_gitname=$_distpkgname-$_distpkgver
pkgver=20151015.277a709
pkgrel=1
pkgdesc="The open source CFD toolbox"
arch=('i686' 'x86_64')
url="http://www.openfoam.com"
license=('GPL')
groups=()
depends=('cgal' 'paraview' 'parmetis' 'scotch' 'boost')
makedepends=('git')
optdepends=()
provides=('openfoam')
conflicts=('openfoam')
replaces=()
backup=()
options=()
source=(git+https://github.com/OpenFOAM/OpenFOAM-2.4.x.git
	 'decomp-options.patch'
	 'paraFoam.patch'
	 'scotch-options.patch'
	 'prefs.sh'
	 'scotch.sh')
noextract=()
install=openfoam.install
md5sums=('SKIP'
         '98fd4f7bb2fd43a0854a583b41d47349'
         'aee1dc4516470918b70df58934c37800'
         'f0aa8f083d67cddeea684cd3b4fec1e0'
         'SKIP'
         'SKIP')

pkgver() {
	cd "$srcdir/$_gitname"
	git log -1 --date=short --format="%cd.%h" | tr -d '-'
}


build() {
  # Extract the current version and major of paraview and of scotch for use in the system preferences
  _pversion1=`pacman -Q {paraview,paraview-manta,paraview-git} | sed -e 's/.* //; s/-.*//g'`
  _pversion=`echo $_pversion1 | grep .`
  _pmajor=`echo $_pversion | cut -d '.' -f1`
  _sversion=`pacman -Q scotch | sed -e 's/.* //; s/-.*//g'`

  # Generate and install the system preferences file
  echo "compilerInstall=system" > $startdir/prefs.sh
  echo "export WM_MPLIB=SYSTEMOPENMPI" >> $startdir/prefs.sh
  echo "export ParaView_VERSION=$_pversion" >> $startdir/prefs.sh
  echo "export ParaView_MAJOR=$_pmajor" >> $startdir/prefs.sh
  cp $startdir/prefs.sh $srcdir/$_gitname/etc || return 1

  # Generate the scotch.sh file for arch
  echo "export SCOTCH_VERSION=scotch_$_sversion" > $startdir/scotch.sh
  echo "export SCOTCH_ARCH_PATH=/usr" >> $startdir/scotch.sh
  cp $startdir/scotch.sh $srcdir/$_gitname/etc/config || return 1

  # Patch for archlinux parmetis, paraview and openmpi paths, and ptscotch link lines
  patch -p1 < $startdir/decomp-options.patch
  patch -p1 < $startdir/paraFoam.patch
  patch -p1 < $startdir/scotch-options.patch

  # Setup the build environment
  export FOAM_INST_DIR=$srcdir 
  foamDotFile=$srcdir/$_gitname/etc/bashrc
  [ -f $foamDotFile ] && . $foamDotFile || return 1

  # Enter build directory
  cd "$srcdir/$_gitname" || return 1

  # Build and clean up OpenFOAM
  ./Allwmake || return 1
  wclean all || return 1
  wmakeLnIncludeAll || return 1

}
package() {
  cd "$startdir"

  # Create destination directories
  install -d "$pkgdir/opt/$_distpkgname" "$pkgdir/etc/profile.d" || return 1

  # Move package to pkgdir
  mv "$srcdir/$_gitname" "$pkgdir/opt/$_distpkgname/$_gitname" || return 1

  # Add source file
  echo "export FOAM_INST_DIR=/opt/$_distpkgname" > "$pkgdir/etc/profile.d/openfoam.sh" || return 1
  echo "alias ofoam=\"\$FOAM_INST_DIR/$_gitname/etc/bashrc\"" >> "$pkgdir/etc/profile.d/openfoam.sh" || return 1

  # Add stub thirdparty directory to keep openfoam happy
  install -d "$pkgdir/opt/$_distpkgname/ThirdParty-$_distpkgver" || return 1

  # Permission fixes - for system-wide install and use
  chmod -R go+r "$pkgdir/opt"
  chmod -R 755 "$pkgdir/opt/$_distpkgname/$_gitname/bin"
  chmod -R 755 "$pkgdir/opt/$_distpkgname/$_gitname/etc"
}