# $Id: PKGBUILD 144087 2011-12-03 09:31:31Z schiv $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - turned off SSE and SSE2 in _cmakeopts
#  - alarm.patch to fix function call not in ARM libraries

plugrel=1

pkgbase=opencv
pkgname=('opencv' 'opencv-docs' 'opencv-samples')
_realname=OpenCV
pkgver=2.3.1_a
_realver=2.3.1
pkgrel=4
pkgdesc="Open Source Computer Vision Library"
arch=('i686' 'x86_64')
license=('BSD')
url="http://opencv.willowgarage.com/"
depends=('jasper' 'gstreamer0.10-base' 'openexr'
         'gtk2' 'xine-lib' 'libdc1394' 'v4l-utils')
makedepends=('pkg-config' 'cmake' 'python2-numpy' 'eigen2')
optdepends=('opencv-docs'
            'opencv-samples'
            'eigen2'
            'python2-numpy: Python 2.x interface')
options=('!libtool')
source=("http://downloads.sourceforge.net/opencvlibrary/$_realname-${_realver}a.tar.bz2"
        "alarm.patch")
md5sums=('82e4b6bfa349777233eea09b075e931e'
         '941d6076ebdb4af729626ba3730e2f76')

_cmakeopts=('-D CMAKE_BUILD_TYPE=Release'
            '-D CMAKE_INSTALL_PREFIX=/usr'
            '-D CMAKE_SKIP_RPATH=ON'
            '-D BUILD_TESTS=OFF'
            '-D ENABLE_SSE=OFF'
            '-D ENABLE_SSE2=OFF'
            '-D ENABLE_SSE3=OFF'
            '-D ENABLE_SSSE3=OFF'
            '-D ENABLE_SSE41=OFF'
            '-D ENABLE_SSE42=OFF'
            '-D BUILD_EXAMPLES=ON'
            '-D INSTALL_C_EXAMPLES=ON'
            '-D INSTALL_PYTHON_EXAMPLES=ON'
            '-D WITH_XINE=ON'
            '-D WITH_QT=OFF'
            '-D WITH_QT_OPENGL=OFF'
            '-D WITH_UNICAP=OFF'
            '-D WITH_PVAPI=OFF'
            '-D WITH_OPENNI=OFF'
            '-D WITH_TBB=OFF'
            '-D WITH_IPP=OFF'
            '-D WITH_CUDA=OFF'
            '-D USE_FAST_MATH=ON')

build() {
  cd "$srcdir/$_realname-$_realver"

  # x64, i.e "Athlon64" and upwards, can use SSE3
  [ $CARCH = x86_64 ] && \
    _cmakeopts=${_cmakeopts[@]/ENABLE_SSE3=OFF/ENABLE_SSE3=ON}

  patch -p1 -i ${srcdir}/alarm.patch

  cmake ${_cmakeopts[@]} .

  make
}

package_opencv() {
  cd "$srcdir/$_realname-$_realver"

  make DESTDIR="$pkgdir" install

  # install license file
  install -Dm644 "$srcdir/$_realname-$_realver/doc/license.txt" \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

  cd "$pkgdir/usr/share"

  # prepare FSH-friendly dirs
  if [ -d OpenCV ]; then
    mv opencv/samples OpenCV/
    rm -r opencv
    mv OpenCV opencv
  fi

  # separate docs package; also be -R friendly
  [ -d opencv/doc ] && mv opencv/doc "$srcdir/opencv-doc"

  # separate samples package
  [ -d opencv/samples ] && mv opencv/samples "$srcdir/opencv-samples"
}

package_opencv-docs() {
  pkgdesc+=" (documentation)"
  unset depends
  unset optdepends
  options=('docs')

  cd "$srcdir"

  mkdir -p "$pkgdir/usr/share/doc"
  cp -r opencv-doc "$pkgdir/usr/share/doc/opencv"

  # install license file
  install -Dm644 "$srcdir/$_realname-$_realver/doc/license.txt" \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

package_opencv-samples() {
  pkgdesc+=" (samples)"
  depends=('bash')
  unset optdepends
  unset options

  cd "$srcdir"

  mkdir -p "$pkgdir/usr/share/opencv"
  cp -r opencv-samples "$pkgdir/usr/share/opencv/samples"

  install -Dm644 "$srcdir/$_realname-$_realver/doc/license.txt" \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

# vim:set ts=2 sw=2 et: