void-packages/srcpkgs/binutils/template

95 lines
3.1 KiB
Text
Raw Normal View History

# Template file for 'binutils'
pkgname=binutils
2012-10-25 05:21:23 +00:00
version=2.23.51.0.3
revision=1
2012-06-12 08:44:04 +00:00
makedepends="flex perl"
subpackages="$pkgname-devel"
short_desc="GNU binary utilities"
maintainer="Juan RP <xtraeme@gmail.com>"
2011-07-11 21:14:09 +00:00
homepage="http://www.gnu.org/software/binutils/"
license="GPL-3"
2012-06-12 08:44:04 +00:00
distfiles="${KERNEL_SITE}/devel/binutils/$pkgname-$version.tar.xz"
2012-10-25 05:21:23 +00:00
checksum=2162905dabf191a2a803eab8d31e7be52d96d6ccd1e0ce42e25d82c6be918cd0
long_desc="
The GNU binutils package contains essential tools to assemble, link and
manipulate binary and object files. They are often used with a compiler
and additional libraries for building software.
It includes the GNU linker, the portable GNU assembler, ar for modifying
archives (such as libraries), nm for listing symbols from object files,
objdump for displaying object file information, ranlib for generating
archive indexes, size for listing section sizes of object files,
strings for outputing the printable characters in files, strip for
stripping out symbols (like debugging information) from object files,
and other tools."
2011-11-22 09:59:32 +00:00
do_configure() {
2011-07-11 21:14:09 +00:00
./configure ${CONFIGURE_SHARED_ARGS} --enable-threads \
--enable-64-bit-bfd --enable-multilib --enable-plugins \
--enable-secureplt --with-mmap --enable-shared
2011-11-22 09:59:32 +00:00
}
2011-07-11 21:14:54 +00:00
2011-11-22 09:59:32 +00:00
do_build() {
2011-07-11 21:14:09 +00:00
make ${makejobs}
2012-06-12 08:44:04 +00:00
# Rebuild libiberty.a with -fPIC
cp -a libiberty libiberty-pic
make -C libiberty-pic clean
make CFLAGS="$CFLAGS -fPIC" -C libiberty-pic
# Rebuild libbfd.a with -fPIC
# hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
cp -a bfd bfd-pic
make -C bfd-pic clean
make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd-pic
# Rebuild libopcodes.a with -fPIC
cp -a opcodes opcodes-pic
make -C opcodes-pic clean
make CFLAGS="$CFLAGS -fPIC" -C opcodes-pic
2011-07-11 21:14:09 +00:00
}
2011-11-22 09:59:32 +00:00
do_install() {
if [ "$XBPS_MACHINE" = "x86_64" ]; then
2010-12-10 15:12:36 +00:00
mkdir -p ${SRCPKGDESTDIR}/usr/lib
cd ${SRCPKGDESTDIR}/usr && ln -s lib lib64 && cd ${wrksrc}
fi
2011-07-11 21:14:09 +00:00
make DESTDIR=${DESTDIR} tooldir=/usr install
2012-06-12 08:44:04 +00:00
# Add some useful headers
install -m644 include/libiberty.h ${DESTDIR}/usr/include
install -m644 include/demangle.h ${DESTDIR}/usr/include
# install libraries rebuilt with -fPIC
install -m644 libiberty-pic/libiberty.a ${DESTDIR}/usr/lib
install -m644 bfd-pic/libbfd.a ${DESTDIR}/usr/lib
install -m644 opcodes-pic/libopcodes.a ${DESTDIR}/usr/lib
# 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 info file that conflicts with autoconf.
rm -f ${DESTDIR}/usr/share/info/standards.info
rm -f ${DESTDIR}/usr/lib64
2010-05-20 23:14:19 +00:00
2011-07-11 21:14:09 +00:00
# Remove useless manpages.
for f in dlltool nlmconv windres windmc; do
rm -f ${DESTDIR}/usr/share/man/man1/${f}.1
done
2010-05-20 23:14:19 +00:00
# Fix for multilib builds.
if [ -d ${DESTDIR}/usr/lib32 ]; then
2011-07-11 21:14:09 +00:00
mv ${DESTDIR}/usr/lib32/* ${DESTDIR}/usr/lib
2010-05-20 23:14:19 +00:00
rmdir ${DESTDIR}/usr/lib32
fi
# Remove the requirement of PACKAGE{,_VERSION} to be defined
# from bfd.h... wth?
sed -i 35,+3d ${DESTDIR}/usr/include/bfd.h
}