| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/bzip2-1.0.6-r7.ebuild,v 1.2 2014/04/28 17:18:31 mgorny Exp $ |
| |
| # XXX: atm, libbz2.a is always PIC :(, so it is always built quickly |
| # (since we're building shared libs) ... |
| |
| EAPI=4 |
| |
| inherit eutils toolchain-funcs multilib multilib-minimal |
| |
| DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux" |
| HOMEPAGE="http://www.bzip.org/" |
| SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz" |
| |
| LICENSE="BZIP2" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="static static-libs" |
| |
| RDEPEND="abi_x86_32? ( |
| !<=app-emulation/emul-linux-x86-baselibs-20130224 |
| !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] |
| )" |
| |
| src_prepare() { |
| epatch "${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch |
| epatch "${FILESDIR}"/${PN}-1.0.6-saneso.patch |
| epatch "${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986 |
| epatch "${FILESDIR}"/${PN}-1.0.6-progress.patch |
| epatch "${FILESDIR}"/${PN}-1.0.3-no-test.patch |
| epatch "${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365 |
| epatch "${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573 |
| epatch "${FILESDIR}"/${PN}-1.0.6-out-of-tree-build.patch |
| |
| # - Use right man path |
| # - Generate symlinks instead of hardlinks |
| # - pass custom variables to control libdir |
| sed -i \ |
| -e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \ |
| -e 's:ln -s -f $(PREFIX)/bin/:ln -s -f :' \ |
| -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \ |
| Makefile || die |
| } |
| |
| bemake() { |
| emake \ |
| VPATH="${S}" \ |
| CC="$(tc-getCC)" \ |
| AR="$(tc-getAR)" \ |
| RANLIB="$(tc-getRANLIB)" \ |
| "$@" |
| } |
| |
| multilib_src_compile() { |
| bemake -f "${S}"/Makefile-libbz2_so all |
| # Make sure we link against the shared lib #504648 |
| ln -sf libbz2.so.${PV} libbz2.so |
| bemake -f "${S}"/Makefile all LDFLAGS="${LDFLAGS} $(usex static -static '')" |
| } |
| |
| multilib_src_install() { |
| into /usr |
| |
| # Install the shared lib manually. We install: |
| # .x.x.x - standard shared lib behavior |
| # .x.x - SONAME some distros use #338321 |
| # .x - SONAME Gentoo uses |
| dolib.so libbz2.so.${PV} |
| local v |
| for v in libbz2.so{,.{${PV%%.*},${PV%.*}}} ; do |
| dosym libbz2.so.${PV} /usr/$(get_libdir)/${v} |
| done |
| use static-libs && dolib.a libbz2.a |
| |
| if multilib_is_native_abi ; then |
| gen_usr_ldscript -a bz2 |
| |
| dobin bzip2recover |
| into / |
| dobin bzip2 |
| fi |
| } |
| |
| multilib_src_install_all() { |
| # `make install` doesn't cope with out-of-tree builds, nor with |
| # installing just non-binaries, so handle things ourselves. |
| insinto /usr/include |
| doins bzlib.h |
| into /usr |
| dobin bz{diff,grep,more} |
| doman *.1 |
| |
| dosym bzdiff /usr/bin/bzcmp |
| dosym bzdiff.1 /usr/share/man/man1/bzcmp.1 |
| |
| dosym bzmore /usr/bin/bzless |
| dosym bzmore.1 /usr/share/man/man1/bzless.1 |
| |
| local x |
| for x in bunzip2 bzcat bzip2recover ; do |
| dosym bzip2.1 /usr/share/man/man1/${x}.1 |
| done |
| for x in bz{e,f}grep ; do |
| dosym bzgrep /usr/bin/${x} |
| dosym bzgrep.1 /usr/share/man/man1/${x}.1 |
| done |
| |
| dodoc README* CHANGES manual.pdf |
| dohtml manual.html |
| |
| # move "important" bzip2 binaries to /bin and use the shared libbz2.so |
| dosym bzip2 /bin/bzcat |
| dosym bzip2 /bin/bunzip2 |
| } |