blob: 6cf18f1b5830a216edc9406d26ae580576dbf14e (
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
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
|
# Maintainer: Patrick Klein <patrick@libklein.com>
# Maintainer: Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>
# Contributor: Marcos M. Raimundo <marcosmrai@gmail.com>
pkgbase="gurobi"
pkgname=(
"${pkgbase}"
"java-${pkgbase}"
"r-${pkgbase}"
)
pkgver=13.0.2
_pkgver="${pkgver%.*}"
pkgrel=1
pkgdesc="State-of-the-art solver for mathematical programming"
declare -Ag _arch=(
['aarch64']='armlinux64'
['x86_64']='linux64'
)
arch=(
"${!_arch[@]}"
)
url="https://www.gurobi.com/products/gurobi-optimizer"
license=(
'custom:Gurobi EULA'
)
makedepends=(
'r'
)
_pkgsrc="${pkgbase}${pkgver//.}"
for _carch in "${!_arch[@]}"; do
eval "
source_${_carch}=(
'https://packages.gurobi.com/${_pkgver}/${pkgbase}${pkgver}_${_arch[${_carch}]}.tar.gz'
)"
done
md5sums_aarch64=('9b2766ad534ac9220d0505a458735499')
md5sums_x86_64=('f12dcad337ae1d8f9b8c2b3f51b92bb5')
b2sums_aarch64=('974b7492d0f8acf222d83a119425b397bd0ae1fb6bd3f95ea758d08a43740a8af8cc5787a66f595ef196d00fc8c64707135cc17f5470bf7452e2967938ed8c2b')
b2sums_x86_64=('24d3676740308144793806ed46c1ba9da1a886249c6ad6061f50c970eadac969e0867d59db1a90af6e815a734c5c80a254a456d9291a2c400accdc969452ef88')
build() {
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/src/build"
make C++FLAGS="${CXXFLAGS} -fPIC"
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/R"
mkdir -p "build"
R CMD INSTALL "${pkgbase}"*.tar.gz -l ./"build"
}
package_gurobi() {
depends=(
'glibc'
)
optdepends=(
"java-${pkgbase}: Java bindings"
"matlab-${pkgbase}: MATLAB bindings"
'python-gurobipy: Python bindings'
"r-${pkgbase}: R bindings"
)
# provides=(
# "lib${pkgbase}.so"
# )
install="${pkgbase}.install"
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}"
install -vd "${pkgdir}/usr"
cp -va --no-preserve=ownership -t "${pkgdir}/usr" \
"bin" "include"
install -vd "${pkgdir}/usr/lib"
find "lib" -type f,l -name 'lib*.so*' ! -name "libGurobiJni${_pkgver//.}.so" -exec \
cp -va --no-preserve=ownership "{}" "${pkgdir}/usr/{}" \;
install -vDm644 "EULA.pdf" "${pkgdir}/usr/share/licenses/${pkgbase}/EULA.pdf"
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/src/build"
install -vDm644 "libgurobi_c++.a" "${pkgdir}/usr/lib/libgurobi_g++8.5.a"
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/examples"
install -vd "${pkgdir}/usr/share/doc/${pkgbase}/examples"
cp -va --no-preserve=ownership -t "${pkgdir}/usr/share/doc/${pkgbase}/examples" \
"build" "c" "c#" "c++" "data" "python" "vb"
cd "${pkgdir}/usr/lib"
for lib in lib*.so.*; do
ln -vsf "${lib}" "${lib%.[0-9]*.[0-9]*.[0-9]*}"
ln -vsf "${lib}" "${lib%.[0-9]*.[0-9]*}"
done
ln -vsf "libgurobi_g++8.5.a" "libgurobi_c++.a"
ln -vsf "libgurobi.so.${pkgver}" "libgurobi${pkgver//./}.so"
}
package_java-gurobi() {
pkgdesc+=" (Java bindings)"
depends=(
"${pkgbase}>=${pkgver}-${pkgrel}"
'glibc'
'java-runtime-headless<=21'
'java-runtime-headless>=8'
)
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/lib"
find . -type f -name '*.jar' -exec \
install -vDm644 "{}" "${pkgdir}/usr/share/java/${pkgbase}/{}" \;
install -vd "${pkgdir}/usr/lib"
cp -va --no-preserve=ownership -t "${pkgdir}/usr/lib" \
"libGurobiJni${_pkgver//.}.so"
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/examples"
install -vd "${pkgdir}/usr/share/doc/${pkgbase}/examples"
cp -va --no-preserve=ownership -t "${pkgdir}/usr/share/doc/${pkgbase}/examples" \
"java"
}
package_r-gurobi() {
pkgdesc+=" (R bindings)"
license+=(
'LGPL-2.1-only'
)
depends=(
"${pkgbase}>=${pkgver}-${pkgrel}"
'glibc'
'r>=4.5.0'
'r-slam>=0.1_9'
)
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/R"
install -vd "${pkgdir}/usr/lib/R/library"
cp -vaT --no-preserve=ownership "build" "${pkgdir}/usr/lib/R/library"
cd "${srcdir}/${_pkgsrc}/${_arch[${CARCH}]}/examples"
install -vd "${pkgdir}/usr/share/doc/${pkgbase}/examples"
cp -va --no-preserve=ownership -t "${pkgdir}/usr/share/doc/${pkgbase}/examples" \
"R"
}
|