# Maintainer: Johannes Schlatow <johannes.schlatow@googlemail.com>
# Contributor: Stephan Friedrichs <deduktionstheorem@googlemail.com>
pkgname=ziboptsuite
pkgver=2.1.1
pkgrel=1
pkgdesc='The ZIB Optimization Suite is a tool for generating and solving mixed integer programs. Consists of ZIMPL, SoPlex and SCIP.'
arch=('i686' 'x86_64')
url='http://zibopt.zib.de/'
license=('LGPL3' 'custom:ZIB Academic License')
depends=('zlib' 'gmp' 'readline')
makedepends=('chrpath' 'doxygen' 'graphviz')
provides=('scip=2.1.1' 'soplex=1.6.0' 'zimpl=3.2.0')
source=("http://zibopt.zib.de/download/${pkgname}-${pkgver}.tgz")
sha256sums=('f17e78634140c3e903299e22817ad21011ce1bbee44e9bbff858ba95c4bda11a')
build() {
# Extract directory names from the $provides array
local _scip=`echo ${provides[0]} | sed -e 's/=/-/'`
local _soplex=`echo ${provides[1]} | sed -e 's/=/-/'`
local _zimpl=`echo ${provides[2]} | sed -e 's/=/-/'`
cd ${srcdir}/${pkgname}-${pkgver}
make
# A local RPATH is set, get rid of it.
chrpath --delete ${_scip}/bin/scip
chrpath --delete ${_soplex}/bin/soplex
cd ${srcdir}/${pkgname}-${pkgver}/${_scip}
make doc
cd ${srcdir}/${pkgname}-${pkgver}/${_soplex}
make doc
}
check() {
cd ${srcdir}/${pkgname}-${pkgver}
make test
}
package() {
# Extract directory names from the $provides array
local _scip=`echo ${provides[0]} | sed -e 's/=/-/'`
local _soplex=`echo ${provides[1]} | sed -e 's/=/-/'`
local _zimpl=`echo ${provides[2]} | sed -e 's/=/-/'`
# Note that, at least in ziboptsuite-2.1.0, the install targets of the
# scip/soplex/zimpl projects are utterly broken; manually copying
# everything where it belongs is absolutely necessary.
# @FIXME: Maybe make install will just work in future releases...
cd ${srcdir}/${pkgname}-${pkgver}
# Some files have permission 640
# @FIXME: Future versions might not require this line
chmod -R a+r .
#
# Binaries
#
install -D -m755 ${_scip}/bin/scip ${pkgdir}/usr/bin/scip
install -D -m755 ${_soplex}/bin/soplex ${pkgdir}/usr/bin/soplex
install -D -m755 ${_zimpl}/bin/zimpl ${pkgdir}/usr/bin/zimpl
#
# Includes
#
for dir in blockmemshell dijkstra nlpi objscip scip tclique xml; do
mkdir -p ${pkgdir}/usr/include/scip/${dir}
cp ${_scip}/src/${dir}/*.h $pkgdir/usr/include/scip/${dir}
done
mkdir -p ${pkgdir}/usr/include/{soplex,zimpl}
cp ${_soplex}/src/*.h ${pkgdir}/usr/include/soplex
cp ${_zimpl}/src/*.h ${pkgdir}/usr/include/zimpl
#
# Libraries
#
mkdir -p ${pkgdir}/usr/lib
cp -d ${_scip}/lib/liblpispx* ${pkgdir}/usr/lib
cp -d ${_scip}/lib/libnlpi* ${pkgdir}/usr/lib
cp -d ${_scip}/lib/libobjscip* ${pkgdir}/usr/lib
cp -d ${_scip}/lib/libscip* ${pkgdir}/usr/lib
cp -d ${_soplex}/lib/* ${pkgdir}/usr/lib
cp -d ${_zimpl}/lib/* ${pkgdir}/usr/lib
# Repair "missing links" =)
# @FIXME: I hope this is not necessary in future versions!
cd ${pkgdir}/usr/lib
ln -s -T libzimpl-* libzimpl.a
cd ${srcdir}/${pkgname}-${pkgver}
#
# Documentation
#
mkdir -p ${pkgdir}/usr/share/doc/ziboptsuite/{scip,soplex,zimpl}
install -m644 COPYING ${pkgdir}/usr/share/doc/ziboptsuite/
cp -r ${_scip}/{CHANGELOG,COPYING,release-notes,doc/html} ${pkgdir}/usr/share/doc/ziboptsuite/scip/
cp -r ${_soplex}/{CHANGELOG,COPYING,doc/html} ${pkgdir}/usr/share/doc/ziboptsuite/soplex/
install -m644 ${_soplex}/src/simpleexample.cpp ${pkgdir}/usr/share/doc/ziboptsuite/soplex/
cp -r ${_zimpl}/{CHANGELOG,LICENSE,README,doc,example} ${pkgdir}/usr/share/doc/ziboptsuite/zimpl/
#
# License
#
install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
}