# Maintainer: Carlos Antunes <cmantunes@gmail.com>
# Maintainer: fauxpark <fauxpark@gmail.com>
# Contributed by: nanodude

_realname=binutils
_target=arm-none-eabi

pkgbase=mingw-w64-${_target}-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_target}-${_realname}")
pkgver=2.35
pkgrel=1
pkgdesc='GNU Tools for ARM Embedded Processors - Binutils (mingw-w64)'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
license=('GPL')
url='https://www.gnu.org/software/binutils/binutils.html'
groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain")
options=('staticlibs')
source=("https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.xz")
sha256sums=('1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85')

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

    mkdir binutils-build-${MINGW_CHOST}
}

build() {
    cd ${srcdir}/binutils-${pkgver}/binutils-build-${MINGW_CHOST}

    ../configure \
        --build=${MINGW_CHOST} \
        --prefix=${MINGW_PREFIX} \
        --target=${_target} \
        --enable-multilib \
        --enable-interwork \
        --with-gnu-as \
        --with-gnu-ld \
        --disable-nls \
        --enable-ld=default \
        --enable-gold \
        --enable-plugins \
        --enable-deterministic-archives
    make
}

package() {
    cd ${srcdir}/binutils-${pkgver}/binutils-build-${MINGW_CHOST}

    make DESTDIR="${pkgdir}" install

    cd ${pkgdir}${MINGW_PREFIX}

    for info in as bfd binutils gprof ld; do
      mv share/info/${info}.info share/info/arm-none-eabi-${info}.info
    done
}
