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

pkgname=gdb
pkgver=7.12.1
pkgrel=1
_gcc_ver=7.3.0
pkgdesc="GNU Debugger (MSYS2 version)"
arch=('i686' 'x86_64')
license=('GPL3')
url="https://www.gnu.org/software/gdb/"
groups=('base-devel')
depends=("libiconv" "zlib" "expat" "python2" "libexpat" "libreadline")
#checkdepends=('dejagnu' 'bc')
makedepends=("libiconv-devel" "zlib-devel" "ncurses-devel" "liblzma-devel" "libexpat-devel" "libreadline-devel")
options=('staticlibs' '!distcc' '!ccache')
source=("https://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz"{,.sig}
        'gdbinit'
        0001-Teach-gdb-how-to-unwind-cygwin-_sigbe-and-sigdelayed.patch
        0002-7.8-windows-nat-cygwin.patch
        0003-Better-handling-for-realpath-failures-in-windows_mak.patch
        0004-7.8-symtab-cygwin.patch
        0005-Remove-a-spurious-target_terminal_ours-from-windows_.patch
        0006-PR-build-21187-Static-linking-of-libstdc-and-libgcc-.patch
        0010-Support-settings-thread-name-MS-Windows.patch
        'gdb-7.11.1-msysize.patch')
validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3')
sha256sums=('4607680b973d3ec92c30ad029f1b7dbde3876869e6b3a117d8a7e90081113186'
            'SKIP'
            '2bbe7eddb1828c394d0ff99777058df79b1a596172603bb0e30d983fc1ea8785'
            '2bdd02d6dc46d1186a3fa4485922d277686ca9ff827dde6b9fa1a90e9345c953'
            '735b3f030a97c6f9d23dbddfbaa1b0b98ecaf131f951340defabd596bf92c7cf'
            '91994d62047bb76688a785c9a911f8deda6e7b7aa258aade0a6b29904a9e9b58'
            '41a5f72e2ac5838d853b906e1611e844e164e05f18bf2be4674a3a47ca41a875'
            '7114888df25032880c939ce43e18309370b6b2892c39728d088d28015ae858b1'
            '5c45beefb8c889f00e5d34cf0f4ed9f9ed8e96830c9c291a88eab5bbaffc0734'
            '6aff49a910e592b4af2e79707f6e4d281fbaa2a357bd79f43b8dc5f01dfa44ef'
            'b81e0c574185daeb1c5eaa9e741abfbbac2d54430879a0744fcb98762de3b894')

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

  patch -p1 -i ${srcdir}/0001-Teach-gdb-how-to-unwind-cygwin-_sigbe-and-sigdelayed.patch
  patch -p1 -i ${srcdir}/0002-7.8-windows-nat-cygwin.patch
  patch -p1 -i ${srcdir}/0003-Better-handling-for-realpath-failures-in-windows_mak.patch
  patch -p1 -i ${srcdir}/0004-7.8-symtab-cygwin.patch
  patch -p1 -i ${srcdir}/0005-Remove-a-spurious-target_terminal_ours-from-windows_.patch
  
  patch -p1 -i ${srcdir}/0010-Support-settings-thread-name-MS-Windows.patch
  patch -p1 -i ${srcdir}/gdb-7.11.1-msysize.patch

  # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS"
  sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure
}

build() {
  cd ${srcdir}/${pkgname}-${pkgver}
  ./configure \
    --build=${CHOST} \
    --host=${CHOST} \
    --prefix=/usr \
    --enable-64-bit-bfd \
    --disable-werror \
    --disable-staticlib \
    --with-system-gdbinit=/etc/gdbinit \
    --with-python=/usr/bin/python2 \
    --without-tcl \
    --without-tk \
    --without-guile \
    --with-expat \
    --with-lzma \
    --with-system-readline \
    --with-libiconv-prefix=/usr \
    --with-zlib \
    --enable-tui
  make
}

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

package() {
  cd ${srcdir}/${pkgname}-${pkgver}
  make DESTDIR=${pkgdir} install

  # install "custom" system gdbinit
  install -D -m644 ${srcdir}/gdbinit ${pkgdir}/etc/gdbinit
  sed -i 's|%GCC_NAME%|gcc-'${_gcc_ver}'|g' ${pkgdir}/etc/gdbinit

  # these are shipped by binutils
  rm -fr ${pkgdir}/usr/{include,lib}/ ${pkgdir}/usr/share/locale/
  rm -f ${pkgdir}/usr/share/info/{bfd,configure,standards}.info
}
