void-packages/srcpkgs/binutils/template

155 lines
3.7 KiB
Bash

# Template file for 'binutils'
pkgname=binutils
version=2.35.1
revision=3
bootstrap=yes
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
patch_args="-Np1"
makedepends="zlib-devel"
if [ "$CHROOT_READY" ]; then
hostmakedepends="flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
fi
_get_triplet() {
if [ -z "$XBPS_TRIPLET" ]; then
echo $(
source "${XBPS_COMMONDIR}/build-profiles/${XBPS_MACHINE}.sh"
echo "$XBPS_TRIPLET"
)
else
echo "$XBPS_TRIPLET"
fi
}
do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
conf+=" --with-debuginfod"
else
conf+=" --without-debuginfod"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
;;
x86_64*)
conf+=" --enable-targets=x86_64-pep"
;;
i686*)
conf+=" --enable-targets=x86_64-linux-gnu,x86_64-pep"
;;
esac
# enable multilib on x86_64 glibc
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
conf+=" --enable-multilib"
else
conf+=" --disable-multilib"
fi
# ensure softfloat on sf mips targets and set the default hash style
case "$XBPS_TARGET_MACHINE" in
mips*hf*) conf+=" --enable-default-hash-style=sysv" ;;
mips*) conf+=" --without-fp --enable-default-hash-style=sysv" ;;
*) conf+=" --enable-default-hash-style=gnu";;
esac
mkdir build && cd build
../configure --build=$(_get_triplet) \
--prefix=/usr \
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-werror \
--disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
--enable-install-libiberty \
--with-system-zlib \
--with-mmap \
--with-pic \
$conf
}
do_build() {
cd ${wrksrc}/build && make ${makejobs}
}
# there is a testsuite now, but e.g. ifunc tests all fail on musl and
# also there are other tests that fail on different targets for fairly
# harmless reasons and it's just too much effort to fix it all
do_check() {
[ "$CHROOT_READY" ] || return 0
: # cba for now
}
do_install() {
cd ${wrksrc}/build
local _triplet=$(_get_triplet)
make DESTDIR=${DESTDIR} tooldir=/usr install
cd ..
# Remove ld (hardlink) and make a symlink to ld.bfd.
rm -f ${DESTDIR}/usr/bin/ld
ln -sfr ${DESTDIR}/usr/bin/ld.bfd ${DESTDIR}/usr/bin/ld
# Remove these symlinks, they are not ABI stable.
# Programs should compile static to the .a file.
rm -f ${DESTDIR}/usr/lib/lib{bfd,opcodes}.so
echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" \
>${DESTDIR}/usr/lib/libbfd.so
echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" \
>${DESTDIR}/usr/lib/libopcodes.so
# Remove useless manpages.
for f in dlltool nlmconv windres windmc; do
rm -f ${DESTDIR}/usr/share/man/man1/${f}.1
done
# Create triplet symlinks
for f in ${DESTDIR}/usr/bin/*; do
ln -s ${f##*/} ${DESTDIR}/usr/bin/${XBPS_CROSS_TRIPLET:-${_triplet}}-${f##*/}
done
}
binutils-devel_package() {
depends="zlib-devel"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
vmove "usr/lib/*.so"
}
}
binutils-doc_package() {
short_desc+=" - info files"
pkg_install() {
vmove usr/share/info
# Remove info file that conflicts with autoconf.
rm -f ${PKGDESTDIR}/usr/share/info/standards.info
}
}