summaryrefslogtreecommitdiff
path: root/extra/boost/PKGBUILD
blob: 8efad5ecc6b4beaa32d973845f6c498441f5e10a (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
# $Id: PKGBUILD 144045 2011-12-02 20:54:13Z ibiru $
# Maintainer: kevin <kevin@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Kritoke <kritoke@gamebox.net>
# Contributor: Luca Roccia <little_rock@users.sourceforge.net>

pkgbase=boost
pkgname=('boost-libs' 'boost')
pkgver=1.48.0
_boostver=${pkgver//./_}
pkgrel=2
arch=('i686' 'x86_64')
url="http://www.boost.org/"
makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
source=(http://downloads.sourceforge.net/${pkgbase}/${pkgbase}_${_boostver}.tar.gz
        exceptions.patch
        BOOST_FOREACH.patch)
license=('custom')
md5sums=('313a11e97eb56eb7efd18325354631be'
         '9b44c28b36303152050c8c82469569c5'
         '2db6098a1a39bced4c6162eb46418320')

_stagedir="${srcdir}/stagedir"

build() {
  # set python path for bjam
  cd "${srcdir}/${pkgbase}_${_boostver}/tools"
  echo "using python : 2.7 : /usr/bin/python2 ;" >> build/v2/user-config.jam
  echo "using python : 3.2 : /usr/bin/python : /usr/include/python3.2mu : /usr/lib ;" >> build/v2/user-config.jam
  echo "using mpi ;" >> build/v2/user-config.jam

  cd "${srcdir}"/${pkgbase}_${_boostver}
  # https://svn.boost.org/trac/boost/ticket/5731
  patch -p0 -i "${srcdir}/exceptions.patch"
  # https://svn.boost.org/trac/boost/ticket/6131
  patch -p2 -i "${srcdir}/BOOST_FOREACH.patch"


  # build bjam
  cd "${srcdir}/${pkgbase}_${_boostver}/tools/build/v2/engine"
  ./build.sh cc

  _bindir="bin.linuxx86"
  [ "${CARCH}" = "x86_64" ] && _bindir="bin.linuxx86_64"

  install -d "${_stagedir}"/usr/bin
  install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam

  # build tools
  cd "${srcdir}/${pkgbase}_${_boostver}/tools/"
  "${_stagedir}"/usr/bin/bjam --toolset=gcc

  # copy the tools
  cd "${srcdir}/${pkgbase}_${_boostver}/dist/bin"
  for i in *;do
      install -m755 "${i}" "${_stagedir}/usr/bin/${i}"
  done

  #boostbook needed by quickbook
  cd "${srcdir}/${pkgbase}_${_boostver}/dist/"
  cp -r share "${_stagedir}"

  # build libs
  cd "${srcdir}/${pkgbase}_${_boostver}"

  # default "minimal" install: "release link=shared,static
  # runtime-link=shared threading=single,multi"
  # --layout=tagged will add the "-mt" suffix for multithreaded libraries
  # and installs includes in /usr/include/boost.
  # --layout=system no longer adds the -mt suffix for multi-threaded libs.
  # install to ${_stagedir} in preparation for split packaging

  "${_stagedir}"/usr/bin/bjam \
      release debug-symbols=off threading=multi \
      runtime-link=shared link=shared,static \
      cflags=-fno-strict-aliasing \
      toolset=gcc \
      --prefix="${_stagedir}" \
      -sTOOLS=gcc \
      --layout=system \
      ${MAKEFLAGS} \
      install
}

package_boost() {
    pkgdesc="Free peer-reviewed portable C++ source libraries - Development"
    depends=("boost-libs=${pkgver}")
    optdepends=('python: for python bindings'
                'python2: for python2 bindings')

    install -d "${pkgdir}"/usr/{include,lib,share}
    # headers/source files
    cp -r "${_stagedir}"/include/ "${pkgdir}"/usr/

    # static libs
    cp -r "${_stagedir}"/lib/*.a "${pkgdir}"/usr/lib/

    # utilities (bjam, bcp, pyste)
    cp -r "${_stagedir}"/usr/* "${pkgdir}"/usr/

    #boostbook
    cp -r "${_stagedir}"/share/* "${pkgdir}"/usr/share

    # license
    install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
        "${pkgdir}"/usr/share/licenses/boost/LICENSE_1_0.txt
}

package_boost-libs() {
    pkgdesc="Free peer-reviewed portable C++ source libraries - Runtime"
    depends=('gcc-libs' 'bzip2' 'zlib' 'icu')
    optdepends=('openmpi: for mpi support')

    install -d "${pkgdir}/usr/lib"
    #shared libs
    cp -r "${_stagedir}"/lib/*.so{,.*} "${pkgdir}/usr/lib/"

    # license
    install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
        "${pkgdir}"/usr/share/licenses/boost-libs/LICENSE_1_0.txt
}