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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# Maintainer: Ľubomir 'The_K' Kučera <lubomir-kucera-jr-at-gmail-dot-com>
# Contributor: Robert Schwarz <mail@rschwarz.net>
# Contributor: Johannes Schlatow <johannes.schlatow@googlemail.com>
# Contributor: Stephan Friedrichs <deduktionstheorem@googlemail.com>
pkgbase='scipoptsuite'
pkgname=("${pkgbase}" "${pkgbase}-docs")
pkgver='4.0.0'
pkgrel=3
pkgdesc="Toolbox for generating and solving optimization problems."
arch=('i686' 'x86_64')
url='http://scip.zib.de'
license=('LGPL3' 'custom:ZIB Academic License')
replaces=('ziboptsuite')
_depends=('zlib' 'gmp' 'readline')
makedepends=('chrpath' 'doxygen' 'graphviz' "${_depends[@]}")
_provides=('scip=4.0.0' 'soplex=3.0.0' 'zimpl=3.3.4' 'gcg=2.1.2' 'ug=0.8.3')
source=("http://scip.zib.de/download/release/${pkgbase}-${pkgver}.tgz")
sha256sums=('087535760eae3d633e2515d942a9b22e1f16332c022be8d093372bdc68e8a661')
# Extract directory names from the $provides array.
_scip="${_provides[0]//=/-}"
_soplex="${_provides[1]//=/-}"
_zimpl="${_provides[2]//=/-}"
_gcg="${_provides[3]//=/-}"
_ug="${_provides[4]//=/-}"
prepare() {
cd "${srcdir}/${pkgbase}-${pkgver}"
# Unpack and remove archives, otherwise patching wouldn't be possible
for _pkg in "${_provides[@]}"; do
_archive="${_pkg//=/-}.tgz"
tar xzf "${_archive}"
rm "${_archive}"
done
# Fix ZIMPL linking
sed -i 's/LDFLAGS += -static//g' ${_zimpl}/make/make.linux.*
}
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
make SHARED=true scipoptlib
make
make BLISS=false gcg
make ug
cd "${srcdir}/${pkgbase}-${pkgver}/${_scip}"
make doc -j
cd "${srcdir}/${pkgbase}-${pkgver}/${_soplex}"
make doc -j
cd "${srcdir}/${pkgbase}-${pkgver}/${_gcg}"
make doc -j
# 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() {
depends=("${_depends[@]}")
provides=("${_provides[@]}")
# install everything manually (the install targets are still broken)
cd "${srcdir}/${pkgbase}-${pkgver}"
# A local RPATH is set, get rid of it.
chrpath --delete ${_scip}/bin/scip
chrpath --delete ${_soplex}/bin/soplex
chrpath --delete ${_gcg}/bin/gcg
chrpath --delete ${_ug}/bin/fscip
#
# Binaries
#
install -D -m755 ${_soplex}/bin/soplex "${pkgdir}/usr/bin/soplex"
install -D -m755 ${_scip}/bin/scip "${pkgdir}/usr/bin/scip"
install -D -m755 ${_zimpl}/bin/zimpl "${pkgdir}/usr/bin/zimpl"
install -D -m755 ${_gcg}/bin/gcg "${pkgdir}/usr/bin/gcg"
install -D -m755 ${_ug}/bin/fscip "${pkgdir}/usr/bin/fscip"
#
# Includes
#
mkdir -p "${pkgdir}/usr/include/"{blockmemshell,lpi,nlpi,objscip,scip,soplex,zimpl}
cp ${_scip}/src/blockmemshell/*.h "${pkgdir}/usr/include/blockmemshell"
cp ${_scip}/src/lpi/*.h "${pkgdir}/usr/include/lpi"
cp ${_scip}/src/nlpi/*.h "${pkgdir}/usr/include/nlpi"
cp ${_scip}/src/objscip/*.h "${pkgdir}/usr/include/objscip"
cp ${_scip}/src/scip/*.h "${pkgdir}/usr/include/scip"
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/shared/libscip*.so "${pkgdir}/usr/lib/"
cp -d ${_soplex}/lib/libsoplex*.so "${pkgdir}/usr/lib/"
cp -d ${_zimpl}/lib/libzimpl*.a "${pkgdir}/usr/lib/"
cp -d lib/libscipopt*.so "${pkgdir}/usr/lib/"
# Repair "missing links"
# @FIXME: I hope this is not necessary in future versions!
cd "${pkgdir}/usr/lib"
ln -s -T libzimpl-*.a libzimpl.a
cd "${srcdir}/${pkgbase}-${pkgver}"
#
# License
#
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
_package-docs() {
cd "${srcdir}/${pkgbase}-${pkgver}"
#
# Documentation
#
mkdir -p "${pkgdir}/usr/share/doc/${pkgname}/"{scip,soplex,zimpl,gcg,ug}
cp -r ${_scip}/{CHANGELOG,release-notes,doc/html} "${pkgdir}/usr/share/doc/${pkgname}/scip/"
cp -r ${_soplex}/{CHANGELOG,doc/html} "${pkgdir}/usr/share/doc/${pkgname}/soplex/"
install -m644 ${_soplex}/src/example.cpp "${pkgdir}/usr/share/doc/${pkgname}/soplex/"
cp -r ${_zimpl}/{CHANGELOG,README,doc,example} "${pkgdir}/usr/share/doc/${pkgname}/zimpl/"
cp -r ${_gcg}/{CHANGELOG,doc/html} "${pkgdir}/usr/share/doc/${pkgname}/gcg/"
cp -r ${_ug}/README "${pkgdir}/usr/share/doc/${pkgname}/ug/"
#
# License
#
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
for _pkg in ${pkgname[@]}; do
eval "package_${_pkg}() {
$(declare -f "_package${_pkg#${pkgbase}}")
_package${_pkg#${pkgbase}}
}"
done
|