# Maintainer: Johannes Schlatow <johannes.schlatow@googlemail.com>
# Contributor: Stephan Friedrichs <deduktionstheorem@googlemail.com>
pkgbase='ziboptsuite'
pkgver='2.1.1'
pkgname=("${pkgbase}" "${pkgbase}-docs")
pkgrel=2
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/${pkgbase}-${pkgver}.tgz"
'fileio.c.patch'
)
sha256sums=(
'f17e78634140c3e903299e22817ad21011ce1bbee44e9bbff858ba95c4bda11a'
'f89f79036152edfac142ff5edebb4a56626aa67cd212c085551329e1685eedd9'
)
build() {
# Extract directory names from the $provides array.
local _scip="${provides[0]//=/-}"
local _soplex="${provides[1]//=/-}"
local _zimpl="${provides[2]//=/-}"
cd "${srcdir}/${pkgbase}-${pkgver}"
# Fix compiler error in fileio.c, reported by Tuxe.
# @FIXME: Remove this in the next version
if [ ! -d `pwd`/${_scip} ] ; then
make `pwd`/${_scip}
patch -i "${srcdir}/fileio.c.patch" ${_scip}/src/scip/fileio.c
fi
make
# A local RPATH is set, get rid of it.
chrpath --delete ${_scip}/bin/scip
chrpath --delete ${_soplex}/bin/soplex
cd "${srcdir}/${pkgbase}-${pkgver}/${_scip}"
make doc
cd "${srcdir}/${pkgbase}-${pkgver}/${_soplex}"
make doc
# Some files have permission 640.
# @FIXME: Future versions might not require this line.
chmod -R a+r "${srcdir}/${pkgbase}-${pkgver}"
}
check() {
cd "${srcdir}/${pkgbase}-${pkgver}"
make test
}
package_ziboptsuite() {
# Extract directory names from the $provides array
local _scip="${provides[0]//=/-}"
local _soplex="${provides[1]//=/-}"
local _zimpl="${provides[2]//=/-}"
# 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}/${pkgbase}-${pkgver}"
#
# 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}/${pkgbase}-${pkgver}"
#
# License
#
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
package_ziboptsuite-docs() {
# Extract directory names from the $provides array.
local _scip="${provides[0]//=/-}"
local _soplex="${provides[1]//=/-}"
local _zimpl="${provides[2]//=/-}"
# All global PKGBUILD variables are set according to the main
# package, ziboptsuite. Override those that differ for the
# documentation, ziboptsuite-docs:
pkgdesc='The ZIB Optimization Suite documentation.'
arch=('any')
depends=()
provides=()
cd "${srcdir}/${pkgbase}-${pkgver}"
#
# Documentation
#
mkdir -p "${pkgdir}/usr/share/doc/${pkgbase}/"{scip,soplex,zimpl}
cp -r ${_scip}/{CHANGELOG,release-notes,doc/html} "${pkgdir}/usr/share/doc/${pkgbase}/scip/"
cp -r ${_soplex}/{CHANGELOG,doc/html} "${pkgdir}/usr/share/doc/${pkgbase}/soplex/"
install -m644 ${_soplex}/src/simpleexample.cpp "${pkgdir}/usr/share/doc/${pkgbase}/soplex/"
cp -r ${_zimpl}/{CHANGELOG,README,doc,example} "${pkgdir}/usr/share/doc/${pkgbase}/zimpl/"
#
# License
#
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}