_target=mips _triplet="$_target-ultra64-elf" _prefix="/opt/$_triplet" _sysroot="$_prefix/sysroot" pkgname="$_triplet-binutils" pkgver=2.37 pkgrel=3 _binutils="binutils-$pkgver" pkgdesc="A set of programs to assemble and manipulate binary and object files ($_triplet)" arch=('any') license=('GPL') url='http://www.gnu.org/software/binutils/' depends=('zlib') source=("ftp://gcc.gnu.org/pub/binutils/releases/$_binutils.tar.xz") sha256sums=('820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c') options=('!emptydirs' '!strip') prepare() { cd "$srcdir/$_binutils" # Hack - see native package for details sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure # annoying oversight: sed -i 's/\/unsigned int/g' libiberty/rust-demangle.c } build() { # the programs we're compiling are really picky about flags. # it's best to keep it simple. export CFLAGS="-O2" export CXXFLAGS="-O2" export CPPFLAGS="" export LDFLAGS="" export CFLAGS_FOR_TARGET="-fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables" export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET -fno-rtti" cd "$srcdir" [ -d "build-binutils" ] || mkdir "build-binutils" cd "build-binutils" local _build= if [ -n "$MINGW_CHOST" ]; then _build="--build=$MINGW_CHOST --host=$MINGW_CHOST" fi "../$_binutils/configure" $_build \ --target=$_target \ --prefix="$_prefix" \ \ --disable-gold \ --disable-libquadmath \ --disable-libquadmath-support \ --disable-multilib \ --disable-nls \ --disable-shared \ --disable-werror \ --enable-deterministic-archives \ --enable-lto \ --enable-static \ --with-gcc \ --with-gnu-as \ --with-gnu-ld \ --with-sysroot="$_sysroot" \ --without-included-gettext \ make all } package() { local PREFIX="$pkgdir$_prefix" cd "$srcdir/build-binutils" make DESTDIR="$pkgdir" install -j1 # strip host binaries find "$PREFIX" -type f -and \( -executable \) -exec strip '{}' \; rm -r "$PREFIX/share" }