summaryrefslogtreecommitdiff
path: root/extra/boost/PKGBUILD
blob: 11efb802a545f7abc5ea2a0508f104d5696f5431 (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
# $Id: PKGBUILD 171511 2012-11-18 10:27:36Z andyrtr $
# 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.50.0
_boostver=${pkgver//./_}
pkgrel=3
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)
license=('custom')
md5sums=('dbc07ab0254df3dda6300fd737b3f264')

_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.3 : /usr/bin/python3 : /usr/include/python3.3m : /usr/lib ;" >> build/v2/user-config.jam
  echo "using mpi ;" >> build/v2/user-config.jam

  cd "${srcdir}"/${pkgbase}_${_boostver}

  # 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=('python3: for python bindings'
                'python2: for python2 bindings'
		'boost-build: to use boost jam for building your project.')

    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
}