Index: nspr-4.8.4-r1.ebuild =================================================================== RCS file: /var/cvsroot/gentoo-x86/dev-libs/nspr/nspr-4.8.4-r1.ebuild,v --- nspr-4.8.4-r1.ebuild 16 May 2010 18:39:14 -0000 1.1 +++ nspr-4.8.4-r1.ebuild 13 Jul 2010 15:49:44 -0000 @@ -2,6 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-libs/nspr/nspr-4.8.4-r1.ebuild,v 1.1 2010/05/16 18:39:14 anarchy Exp $ +EAPI=3 + inherit eutils multilib toolchain-funcs versionator MIN_PV="$(get_version_component_range 2)" @@ -12,41 +14,49 @@ LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" IUSE="debug" -src_unpack() { - unpack ${A} - cd "${S}" +src_prepare() { mkdir build inst epatch "${FILESDIR}"/${PN}-4.8-config.patch epatch "${FILESDIR}"/${PN}-4.6.1-config-1.patch epatch "${FILESDIR}"/${PN}-4.6.1-lang.patch epatch "${FILESDIR}"/${PN}-4.7.0-prtime.patch epatch "${FILESDIR}"/${PN}-4.8-pkgconfig-gentoo-3.patch + epatch "${FILESDIR}"/${PN}-4.7.1-solaris.patch + epatch "${FILESDIR}"/${PN}-4.7.4-solaris.patch + epatch "${FILESDIR}"/${PN}-4.8.3-aix-gcc.patch + epatch "${FILESDIR}"/${PN}-4.8.3-aix-soname.patch + epatch "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch + # make sure it won't find Perl out of Prefix + sed -i -e "s/perl5//g" mozilla/nsprpub/configure || die # Respect LDFLAGS sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \ mozilla/nsprpub/config/rules.mk } -src_compile() { +src_configure() { cd "${S}"/build echo > "${T}"/test.c $(tc-getCC) -c "${T}"/test.c -o "${T}"/test.o case $(file "${T}"/test.o) in - *64-bit*) myconf="${myconf} --enable-64bit";; - *32-bit*) ;; + *64-bit*|*ppc64*|*x86_64*) myconf="${myconf} --enable-64bit";; + *32-bit*|*ppc*|*i386*|*"RISC System/6000"*) ;; *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";; esac - myconf="${myconf} --libdir=/usr/$(get_libdir)" + myconf="${myconf} --libdir=${EPREFIX}/usr/$(get_libdir)" ECONF_SOURCE="../mozilla/nsprpub" econf \ $(use_enable debug) \ $(use_enable !debug optimize) \ ${myconf} || die "econf failed" +} + +src_compile() { emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" || die "failed to build" } @@ -56,15 +66,22 @@ cd "${S}"/build emake DESTDIR="${D}" install || die "emake install failed" - cd "${D}"/usr/$(get_libdir) + cd "${ED}"/usr/$(get_libdir) for file in *.a; do einfo "removing static libraries as upstream has requested!" rm -f ${file} || die "failed to remove staic libraries." done - for file in *.so; do - mv ${file} ${file}.${MINOR_VERSION} || die "failed to mv files around" - ln -s ${file}.${MINOR_VERSION} ${file} || die "failed to symlink files." + local n= + # aix-soname.patch does this already + [[ ${CHOST} == *-aix* ]] || + for file in *$(get_libname); do + n=${file%$(get_libname)}$(get_libname ${MINOR_VERSION}) + mv ${file} ${n} || die "failed to mv files around" + ln -s ${n} ${file} || die "failed to symlink files." + if [[ ${CHOST} == *-darwin* ]]; then + install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/${n}" ${n} || die + fi done # install nspr-config @@ -75,7 +92,7 @@ doins "${S}"/build/config/nspr.pc || die "failed to insall nspr pkg-config file" # Remove stupid files in /usr/bin - rm -f "${D}"/usr/bin/prerr.properties || die "failed to cleanup unneeded files" + rm -f "${ED}"/usr/bin/prerr.properties || die "failed to cleanup unneeded files" } pkg_postinst() {