summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 036ad90c620bdd2456bd73b67c3adfed8f8e349c (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
# Maintainer: Robert Schwarz <mail@rschwarz.net>
# Contributor: Johannes Schlatow <johannes.schlatow@googlemail.com>
# Contributor: Stephan Friedrichs <deduktionstheorem@googlemail.com>

pkgname='scipoptsuite'
pkgver='3.1.1'
pkgrel=1
pkgdesc="Toolbox for generating and solving optimization problems."
arch=('i686' 'x86_64')
url='http://scip.zib.de'
license=('LGPL3' 'custom:ZIB Academic License')
depends=('zlib' 'gmp' 'readline')
replaces=('ziboptsuite')
makedepends=('chrpath' 'doxygen' 'graphviz')
provides=('scip=3.1.1' 'soplex=2.0.1' 'zimpl=3.3.2' 'gcg=2.0.1' 'ug=0.7.5')
options=(staticlibs)
source=("http://scip.zib.de/download/release/${pkgname}-${pkgver}.tgz")
sha256sums=('c15359c75493a52f2ae6489dd2be07b3d20683bd21ad36ec134a866be2213a85')

build() {
    # Extract directory names from the $provides array.
    local _scip="${provides[0]//=/-}"
    local _soplex="${provides[1]//=/-}"
    local _zimpl="${provides[2]//=/-}"
    local _gcg="${provides[3]//=/-}"
    local _ug="${provides[4]//=/-}"

    cd "${srcdir}/${pkgname}-${pkgver}"

    make SHARED=true scipoptlib
    make
    make BLISS=false gcg
    make ug

    cd "${srcdir}/${pkgname}-${pkgver}/${_scip}"
    make doc -j

    cd "${srcdir}/${pkgname}-${pkgver}/${_soplex}"
    make doc -j

    cd "${srcdir}/${pkgname}-${pkgver}/${_gcg}"
    make doc -j

    # Some files have permission 640.
    # @FIXME: Future versions might not require this line.
    chmod -R a+r "${srcdir}/${pkgname}-${pkgver}"
}

check() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    make test
}

package_scipoptsuite() {
    # Extract directory names from the $provides array
    local _scip="${provides[0]//=/-}"
    local _soplex="${provides[1]//=/-}"
    local _zimpl="${provides[2]//=/-}"
    local _gcg="${provides[3]//=/-}"
    local _ug="${provides[4]//=/-}"

    # install everything manually (the install targets are still broken)
    cd "${srcdir}/${pkgname}-${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/libscip*.a "${pkgdir}/usr/lib/"
    cp -d ${_soplex}/lib/libsoplex*.a "${pkgdir}/usr/lib/"
    cp -d ${_zimpl}/lib/libzimpl*.a "${pkgdir}/usr/lib/"
    cp -d lib/libscipopt*.so "${pkgdir}/usr/lib/libscipopt.so"

    # 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}/${pkgname}-${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"
}