# Maintainer: Alexander Foremny <alexanderforemny@gmail.com>

# toolchain build order:
# kernel-headers -> glibc -> binutils -> gcc-libs -> gcc -> binutils -> glibc

pkgname=glibc
pkgver=2.10.1
pkgrel=2
install=glibc.install
backup=(opt/etc/locale.gen
        opt/etc/nscd.conf)
pkgdesc="GNU C Library"
arch=('arm')
license=('GPL' 'LGPL')
url="http://www.gnu.org/software/libc"
groups=('base' 'small-base')
depends=('tzdata')
makedepends=('gcc>=4.4.0')
source=(http://ftp.gnu.org/gnu/glibc/glibc-ports-$pkgver.tar.gz
        http://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.gz
        nscd
        locale.gen.txt
        locale-gen)

build() {
  cd $srcdir/glibc-$pkgver
  ln -s $srcdir/glibc-ports-$pkgver .

  install -dm755 $pkgdir/opt/etc
  touch $pkgdir/opt/etc/ld.so.conf

  # Remove timezone from build targets. This is supplied by the tzdata
  # package.
  sed -i '/^all-subdirs =/,/^$/s/timezone //' Makeconfig

  mkdir opt/glibc-build
  cd opt/glibc-build

  echo "slibdir=/opt/lib" >> configparms

  ../configure --prefix=/opt \
      --host=arm-unknown-linux-gnueabi \
      --build=arm-unknown-linux-gnueabi \
      --enable-add-ons \
      --enable-kernel=2.6.18 \
      --enable-bind-now \
      --disable-profile \
      --disable-debug \
      --disable-gd \
      --libexecdir=/opt/lib \
      --libdir=/opt/lib \
      --with-tls \
      --with-__thread \
      --with-headers=/opt/include \
      --without-cvs \
      --without-gd \
      --without-fp \
      --without-selinux || return 1

  make || return 1
  make install_root="$pkgdir" install || return 1

  rm -f "$pkgdir/opt/etc/ld.so.cache" "$pkgdir/opt/etc/ld.so.conf" \
        "$pkgdir/opt/etc/localtime"

  install -dm755 ${pkgdir}/opt/etc/rc.d
  install -dm755 ${pkgdir}/opt/sbin
  install -dm755 ${pkgdir}/opt/lib/locale
  install -Dm644 "$srcdir/opt/glibc-$pkgver/nscd/nscd.conf" \
                 "$pkgdir/opt/etc/nscd.conf"
  install -Dm755 "$srcdir/nscd" "$pkgdir/opt/etc/rc.d/nscd"
  install -Dm755 "$srcdir/locale-gen" "$pkgdir/opt/sbin/locale-gen"

  sed -i -e 's/^\tserver-user/#\tserver-user/' \
            "$pkgdir/opt/etc/nscd.conf" || return 1

  # Create /etc/locale.gen
  install -m644 "$srcdir/locale.gen.txt" "$pkgdir/opt/etc/locale.gen"
  sed -i 's|/| |g' "$srcdir/libc/localedata/SUPPORTED"
  sed -i 's|\\| |g' "$srcdir/libc/localedata/SUPPORTED"
  sed -i 's|SUPPORTED-LOCALES=||' "$srcdir/libc/localedata/SUPPORTED"
  cat "$srcdir/libc/localedata/SUPPORTED" >> "$pkgdir/opt/etc/locale.gen"
  sed -i 's|^|#|g' "$pkgdir/opt/etc/locale.gen"
}

md5sums=('3daabbcd79f88866cdce4e7a93388459'
         'f95368cff696baa854fd41ba69d70f3a'
         '49e7f3fce28f6fb6345119ade3d982f8'
         '76717f17e9edcc3808069715017a76dc'
         '92cb4ae5ffda5ef9f62b2f4659a163ac')