# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>

pkgname=ncurses
pkgver=5.7
pkgrel=2
pkgdesc="System V Release 4.0 curses emulation library"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/ncurses/"
license=('MIT')
groups=('base')
depends=('glibc')
source=("ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
md5sums=('cce05daf61a64501ef6cd8da1f727ec6')

build() {
  cd ${srcdir}/${pkgname}-${pkgver}
  
  ./configure \
    --prefix=/usr \
    --mandir=/usr/share/man \
    --with-shared \
    --with-normal \
    --without-debug \
    --without-ada \
    --with-install-prefix=${pkgdir} \
    --enable-widec || return 1
  
  make || return 1
  
  ############################################################################# 
  # Build libncurses.so.5 for external binary support 
  cp -r ${srcdir}/${pkgname}-${pkgver} ${srcdir}/${pkgname}-${pkgver}-libncurses.so.5 || return 1
  cd ${srcdir}/${pkgname}-${pkgver}-libncurses.so.5 || return 1
  [ $CARCH = "x86_64" ] && CONFIGFLAG="--with-chtype=long"
  ./configure \
    --prefix=/usr \
    --with-shared \
    --with-normal \
    --without-debug \
    --without-ada \
    --with-install-prefix=${pkgdir} \
    $CONFIGFLAG || return 1
  
  make || return 1
}

package() {
  cd ${srcdir}/${pkgname}-${pkgver}
  
  make install || return 1
  
  # move libraries needed for boot to /lib (we call tput in initscripts)
  install -dm755 ${pkgdir}/lib || return 1
  mv ${pkgdir}/usr/lib/libncursesw.so.5* ${pkgdir}/lib || return 1
  ln -sf ../../lib/libncursesw.so.5 ${pkgdir}/usr/lib/libncursesw.so || return 1

  # Fool packages looking to link to non-wide-character ncurses libraries
  for lib in curses ncurses form panel menu ; do 
    rm -f ${pkgdir}/usr/lib/lib${lib}.so || return 1
    echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib/lib${lib}.so || return 1
    ln -sf lib${lib}w.a ${pkgdir}/usr/lib/lib${lib}.a || return 1
  done
  ln -sf libncurses++w.a ${pkgdir}/usr/lib/libncurses++.a || return 1
  
  # install tput to /bin
  install -dm755 ${pkgdir}/bin/ || return 1
  mv ${pkgdir}/usr/bin/tput ${pkgdir}/bin/tput || return 1
  
  # Some packages look for -lcurses during build
  rm -f ${pkgdir}/usr/lib/libcursesw.so || return 1
  echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib/libcursesw.so || return 1
  ln -sf libncurses.so ${pkgdir}/usr/lib/libcurses.so || return 1
  ln -sf libncursesw.a ${pkgdir}/usr/lib/libcursesw.a || return 1
  ln -sf libncurses.a ${pkgdir}/usr/lib/libcurses.a || return 1
 
  ############################################################################# 
  # Install libncurses.so.5 for external binary support 
  cd ${srcdir}/${pkgname}-${pkgver}-libncurses.so.5 || return 1
  install -Dm755 lib/libncurses.so.${pkgver} ${pkgdir}/usr/lib/libncurses.so.${pkgver} || return 1
  ln -sf libncurses.so.${pkgver} ${pkgdir}/usr/lib/libncurses.so.5 || return 1
  
  # install license, rip it from the readme
  cd ${srcdir}/${pkgname}-${pkgver} || return 1
  install -dm755 ${pkgdir}/usr/share/licenses/$pkgname || return 1
  grep -B 100 '$Id' README > ${pkgdir}/usr/share/licenses/${pkgname}/license.txt || return 1
}

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