updated on Mon Jan 16 20:00:43 UTC 2012
[aur-mirror.git] / blacs-mpi / PKGBUILD
blobb98f709489dab9d518ad499fb6693d41b5076816
1 # Maintainer: mickele <mimocciola@yahoo.com>
2 pkgname=blacs-mpi
3 pkgver=1.1
4 pkgrel=2
5 pkgdesc="BLACS (Basic Linear Algebra Communication Subprograms) project is a linear algebra oriented message passing interface."
6 url="http://www.netlib.org/blacs/"
7 license='custom'
8 depends=('glibc' 'mpich2')
9 makedepends=('gcc' 'coreutils' 'sed' 'binutils')
10 provides=()
11 conflicts=()
12 replaces=()
13 backup=()
14 arch=('i686' 'x86_64')
15 install=${pkgname}.install
16 source=(http://www.netlib.org/blacs/mpiblacs.tgz  http://www.netlib.org/blacs/blacstester.tgz http://www.netlib.org/blacs/mpiblacs-patch03.tgz LICENSE)
17 md5sums=('28ae5b91b3193402fe1ae8d06adcf500'
18          '5cdd9cf792b793baaeb8acef17b9bb71'
19          '48fdf5e4ef6cf53daec9eeef40498a8b'
20          '182bf79471c020e8274fec5ef1240005')
22 _blacsdbglvl=0
24 build() {
25   cd $startdir/src/BLACS || return 1
27   #      -e "s|SENDIS =|SENDIS = -DSndIsLocBlk|g" \
28   # Copy and modify a file containing variables necessary to compile the package
29   cp $startdir/src/BLACS/BMAKES/Bmake.MPI-LINUX ./Bmake.inc
30   sed -e "s|\$(HOME)/BLACS|$startdir/src/BLACS|g" \
31       -e "s|BLACSDBGLVL = 0|BLACSDBGLVL = ${_blacsdbglvl}|" \
32       -e "s|BLACSFINIT  = \$(BLACSdir)/blacsF77init_\$(COMMLIB)-\$(PLAT)-\$(BLACSDBGLVL)\.a|BLACSFINIT  = \$(BLACSdir)/libblacsf77\.a|" \
33       -e "s|BLACSCINIT  = \$(BLACSdir)/blacsCinit_\$(COMMLIB)-\$(PLAT)-\$(BLACSDBGLVL).a|BLACSCINIT  = \$(BLACSdir)/libblacsc.a|" \
34       -e "s|BLACSLIB    = \$(BLACSdir)/blacs_\$(COMMLIB)-\$(PLAT)-\$(BLACSDBGLVL).a|BLACSLIB    = \$(BLACSdir)/libblacs.a|" \
35       -e "s|MPILIB = \$(MPILIBdir)/libmpich.a|MPILIB = -Wl,-rpath,\$(MPILIBdir) -L\$(MPILIBdir) -lmpich -lssl -luuid -lpthread -lrt -ldl -lnsl -lrt|g" \
36       -e "s|BTLIBS = \$(BLACSFINIT) \$(BLACSLIB) \$(BLACSFINIT) \$(MPILIB)|BTLIBS = -L\$(BTOPdir)/LIB -lblacsf77 -lblacs -lblacsf77 \$(MPILIB)|" \
37       -e "s|/usr/local/mpich|/opt/mpich2|g" \
38       -e "s|INTFACE = -Df77IsF2C|INTFACE = -DAdd_|g" \
39       -e "s|TRANSCOMM = -DCSameF77|#TRANSCOMM = -DCSameF77|g" \
40       -e "s|WHATMPI =|WHATMPI = -DUseMpi2|g" \
41       -e "s|g77|gfortran|g" \
42       -e "s|F77FLAGS       = \$(F77NO_OPTFLAGS) -O|F77FLAGS       = \$(F77NO_OPTFLAGS) $CFLAGS -fpic|g" \
43       -e "s|F77LOADFLAGS   = |F77LOADFLAGS   = -lpthread|g" \
44       -e "s|CCFLAGS        = -O4|CCFLAGS        = $CFLAGS -fpic|g" \
45       -e "s|CCLOADFLAGS    = |CCLOADFLAGS    = -lpthread|g" \
46       -i Bmake.inc
48   # -e "s|TRANSCOMM = -DCSameF77|TRANSCOMM = -DUseMpi2|g" \
49   # Compile the package
50   make mpi || return 1
51   export GFORTRAN_UNBUFFERED_ALL=y
52   make tester || return 1
53   unset GFORTRAN_UNBUFFERED_ALL
55   # Creates shared libraries and install all libraries
56   cd $startdir/src/BLACS/LIB || return 1
57   for _FILE in `ls *.a | sed "s|\.a||"`; do
58       ld -Bshareable -o ${_FILE}.so.${pkgver} -x -soname ${_FILE}.so --whole-archive ${_FILE}.a || return 1
59       install -m 644 -D ${_FILE}.a $startdir/pkg/usr/lib/${_FILE}.a || return 1
60       install -m 755 ${_FILE}.so.${pkgver} $startdir/pkg/usr/lib || return 1
61       ln -sf ${_FILE}.so.${pkgver} $startdir/pkg/usr/lib/${_FILE}.so.${pkgver:0:1} || return 1
62   done
64   # Install test
65   mkdir -p $startdir/pkg/usr/share/$pkgname/testing || return 1
66   cd $startdir/src/BLACS/TESTING/EXE || return 1
67   install -m755 -D xCbtest_MPI-LINUX-${_blacsdbglvl} $startdir/pkg/usr/share/$pkgname/testing/xCbtest_MPI-LINUX || return 1
68   install -m755 xFbtest_MPI-LINUX-${_blacsdbglvl} $startdir/pkg/usr/share/$pkgname/testing/xFbtest_MPI-LINUX || return 1
69   install -m644 *.dat $startdir/pkg/usr/share/$pkgname/testing/ || return 1
71   # Install license
72   mkdir -p $startdir/pkg/usr/share/licenses/$pkgname || return 1
73   install -m644 $startdir/src/LICENSE $startdir/pkg/usr/share/licenses/$pkgname || return 1