# $Id: PKGBUILD 163880 2012-07-21 12:02:29Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>

pkgname=fcpci
pkgver=31107
pkgrel=78
_extramodules=extramodules-3.4-ARCH
pkgdesc="AVM ISDN driver for FRITZ PCI isdn cards. For stock arch linux kernel"
arch=(i686 x86_64)
license=('custom:"AVM"' 'LGPL')
url='http://www.avm.de/en/index.php3'
depends=('linux>=3.4' 'linux<3.5')
makedepends=('linux>=3.4' 'linux-headers<3.5')
source=(http://download.avm.de/cardware/fritzcrd.pci/linux/suse.93/fcpci-suse93-3.11-07.tar.gz 
        kernel-2.6.19.patch 
        atomic.patch kernel-2.6.20.patch 
        kernel-2.6.22.patch
        kernel-2.6.24.patch 
        kernel-2.6.31.patch
        kernel-2.6.34.patch
        kernel-2.6.39.patch
        kernel-2.6.39-i686.patch
        kernel-2.6.39-x86_64.patch
        kernel-3.2.0.patch
        kernel-3.4.0.patch)
md5sums=('3ee301b5d0e8df9e4b915af58b725556'
         '5c63dc9df0810bb1ba85f3425abaa0ed'
         '258b13bb2ac46960b9c91635f02cd080'
         '890ec6e1219a3a4bae77f5815c3ed40d'
         '4f4f03630ed994b16b4cd167f090a116'
         '21bfa466b1fb94663ed1f265948dba5e'
         '34f5b78b219de8ce12793b16e0171e87'
         '224a7679645a51929f8d5e1f210d7a9e'
         '3980ae3eaa82d93b81b0ca32bb57a065'
         'e6f6c96df15392bbc92eb75f6611f4a7'
         'b947c47b3f6dd2f143f84312a034bb77'
         '05a5b3a55f6b47be7503b22e3be82b28'
         '88cdbf6b0c736a25899c695b00406749')
if [ "$CARCH" = "x86_64" ]; then
  source[0]="http://download.avm.de/cardware/fritzcrd.pci/linux_64bit/suse.10.0/fcpci-suse10.0-64bit-3.11-07.tar.gz"
  md5sums[0]='c5595478515d19436ab20b42e1549de0'
fi
install=fcpci.install
options=(!strip)

build() {
  _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
  cd $srcdir/fritz/src
  [ "$CARCH" = "i686" ] && (patch -Np0 -i ../../atomic.patch)
  [ "$CARCH" = "i686" ] && (patch -Np0 -i ../../kernel-2.6.39-i686.patch)
  patch -Np0 -i ../../kernel-2.6.19.patch
  patch -Np0 -i ../../kernel-2.6.20.patch
  patch -Np0 -i ../../kernel-2.6.22.patch
  patch -Np0 -i ../../kernel-2.6.24.patch
  patch -Np0 -i ../../kernel-2.6.31.patch
  patch -Np0 -i ../../kernel-2.6.34.patch
  [ "$CARCH" = "x86_64" ] &&  patch -Np0 -i ../../kernel-2.6.39-x86_64.patch
  patch -Np0 -i ../../kernel-2.6.39.patch
  patch -Np0 -i ../../kernel-3.2.0.patch
  patch -Np0 -i ../../kernel-3.4.0.patch
  cd ..
  # fix from Karsten Keil <kkeil@suse.de>
  # in refernece to bug: http://bugs.archlinux.org/task/8511
  OBJ=$(find . -name '*lib.o')
  for i in $OBJ; do
    mv $i $i.old
    objcopy -L memcmp \
            -L memcpy \
            -L memmove \
            -L memset \
            -L strcat \
            -L strcmp \
            -L strcpy \
            -L strlen \
            -L strncmp \
            -L strncpy \
    $i.old $i
  done

  make LIBDIR=$pkgdir/var/lib/fritz KDIR=/usr/lib/modules/${_kernver}/build all
}

package() {
  mkdir -p $pkgdir/usr/lib/modules/${_extramodules}
  cp $srcdir/fritz/src/fcpci.ko $pkgdir/usr/lib/modules/${_extramodules}/
  rm -r $pkgdir/var
  # build module dependencies
  sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${_extramodules}/g" $startdir/fcpci.install
  # gzip -9 modules
  find "$pkgdir" -name '*.ko' -exec gzip -9 {} +
}
