# Maintainer: Alexey Pavlov <alexpux@gmail.com>

pkgbase=gettext
pkgname=('gettext' 'gettext-devel' 'libgettextpo' 'libasprintf' 'libintl')
pkgver=0.21
pkgrel=1
pkgdesc="GNU internationalization library"
arch=('i686' 'x86_64')
url="https://www.gnu.org/software/gettext/"
license=('GPL')
makedepends=('libiconv-devel' 'autotools' 'gcc')
options=(!docs)
source=(https://ftp.gnu.org/pub/gnu/gettext/${pkgname}-${pkgver}.tar.gz{,.sig}
        gettext-0.18.1.1-autopoint-V.patch
        gettext-0.19.8.1-no-woe32dll.patch
        gettext-localename.patch
        gettext-tests-cygwin.patch
        gettext-0.19.8.1-cygwin-ftm.patch
        gettext-0.19.8.1-have_wprintf.patch
        gettext-0.21-disable-libtextstyle.patch
        gettext-0.19.8.1-msys2.patch
        gettext-0.19.7-archive.patch
        gnulib-cygwin-weak-bug.patch)
sha256sums=('c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12'
            'SKIP'
            '9fe8e25783ea629db3c64ce4d8e4d7912e01e6c3b7391cd48c0843b448576c25'
            'b182af5d1e60c520fc6e716565c58a5f7497f608b5d4b07e3a58500fec54cdc5'
            '8eaf41ecf774501155a7684e64249bd6b668f2e9b05b6ce5383a22b71ff23ba3'
            '7439a9e86628c6f85cc0ff639f7ff46d487e0ffb4c43139a49c6d85775819f45'
            '22cfaca417f04507a901cba93a7eb219183d5e681b7459d8c0e9660621a9a696'
            'ec5e9ca3c85163d9f7e2ee19aee0c312bdda9db7be6de4ec7757ee40568aa1e6'
            '544ce0589e9c70f4f75d77c76fd36f88d009ac9cfecb4812a67f878e38ac6418'
            '42276af94b61339f24ed2b184cb6bae85e8d32fae4f3cc8d51776e9db146c446'
            '047b74d6240205c21fa3a6cb3d8bfeeb5721064c3ea5a318542d74e0378ab97a'
            '1233eb631779fa7dfd13313c955080b8e2cd8db4c352a4878db1edc40be7d40b')
validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871'  # Daiki Ueno
              '9001B85AF9E1B83DF1BDA942F5BE8B267C6A406D') # Bruno Haible (Open Source Development)

prepare() {
  cd "${srcdir}/${pkgname}-${pkgver}"

  # Cygwin patches
  patch -p2 -i $srcdir/gettext-0.18.1.1-autopoint-V.patch
  patch -p2 -i $srcdir/gettext-0.19.8.1-no-woe32dll.patch
  patch -p1 -i $srcdir/gettext-localename.patch
  patch -p1 -i $srcdir/gettext-tests-cygwin.patch
  patch -p2 -i $srcdir/gettext-0.19.8.1-cygwin-ftm.patch
  patch -p2 -i $srcdir/gettext-0.19.8.1-have_wprintf.patch
  patch -p1 -i $srcdir/gettext-0.21-disable-libtextstyle.patch

  # MSYS2 patch
  patch -p1 -i $srcdir/gnulib-cygwin-weak-bug.patch
  patch -p1 -i $srcdir/gettext-0.19.8.1-msys2.patch

  pushd gettext-tools/misc > /dev/null
    mkdir archive
    tar -xvf archive.dir.tar -C archive
    rm -f archive.dir.tar
    pushd archive > /dev/null
      patch -p1 -i ${srcdir}/gettext-0.19.7-archive.patch
      tar -cvf ../archive.dir.tar *
    popd > /dev/null
    rm -rf archive
  popd > /dev/null

  libtoolize --copy --force
  ./autogen.sh --skip-gnulib
}

build() {
	cd "${srcdir}/${pkgname}-${pkgver}"

  local CYGWIN_CHOST="$(echo "${CHOST}" | sed 's|-msys$|-cygwin|')"

  ./configure \
    --build=${CYGWIN_CHOST} \
    --host=${CYGWIN_CHOST} \
    --prefix=/usr \
    --with-included-libcroco \
    --with-included-libunistring \
    --with-included-libxml \
    --with-included-glib \
    --with-included-gettext \
    --without-emacs \
    --enable-shared \
    --enable-static \
    --disable-java \
    --disable-native-java \
    --disable-csharp \
    --disable-openmp

  make

  make DESTDIR="${srcdir}/dest" install
  rm -f ${srcdir}/dest/usr/lib/charset.alias
}

check() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  make check
}

package_gettext() {
  depends=('libintl' 'libgettextpo' 'libasprintf')
  groups=('base-devel')

  mkdir -p ${pkgdir}/usr/{bin,lib,share}

  cp -rf ${srcdir}/dest/usr/lib/gettext ${pkgdir}/usr/lib/

  cp -rf ${srcdir}/dest/usr/bin ${pkgdir}/usr/
  rm -rf ${pkgdir}/usr/bin/msys-asprintf-0.dll
  rm -rf ${pkgdir}/usr/bin/msys-gettextpo-0.dll
  rm -rf ${pkgdir}/usr/bin/msys-intl-8.dll

  cp -rf ${srcdir}/dest/usr/share/aclocal ${pkgdir}/usr/share/
  cp -rf ${srcdir}/dest/usr/share/doc ${pkgdir}/usr/share/
  cp -rf ${srcdir}/dest/usr/share/info ${pkgdir}/usr/share/
  cp -rf ${srcdir}/dest/usr/share/locale ${pkgdir}/usr/share/
  cp -rf ${srcdir}/dest/usr/share/man ${pkgdir}/usr/share/

}

package_gettext-devel() {
  pkgdesc="GNU Internationalization development utilities"
  groups=('development' 'base-devel')
  depends=("gettext=${pkgver}" "libiconv-devel")
  options=('staticlibs')
  optdepends=('cvs: for autopoint tool')

  mkdir -p ${pkgdir}/usr/{bin,include,lib,share}

  cp -rf ${srcdir}/dest/usr/include ${pkgdir}/usr/
  cp -rf ${srcdir}/dest/usr/lib ${pkgdir}/usr/
  rm -rf ${pkgdir}/usr/lib/gettext
  cp -rf ${srcdir}/dest/usr/share/gettext ${pkgdir}/usr/share/
}

package_libintl() {
  pkgdesc="GNU Internationalization runtime library"
  groups=('libraries')
  depends=('gcc-libs' 'libiconv')

  mkdir -p ${pkgdir}/usr/bin
  cp -f ${srcdir}/dest/usr/bin/msys-intl-8.dll ${pkgdir}/usr/bin/
}

package_libgettextpo() {
  pkgdesc="GNU Internationalization runtime library"
  groups=('libraries')
  depends=('gcc-libs')

  mkdir -p ${pkgdir}/usr/bin
  cp -f ${srcdir}/dest/usr/bin/msys-gettextpo-0.dll ${pkgdir}/usr/bin/
}

package_libasprintf() {
  pkgdesc="C-style formatted output in C++ (runtime)"
  groups=('libraries')
  depends=('gcc-libs')

  mkdir -p ${pkgdir}/usr/bin
  cp -f ${srcdir}/dest/usr/bin/msys-asprintf-0.dll ${pkgdir}/usr/bin/
}
