summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/libcxxrt/libcxxrt-0.0_p20120911.ebuild')
-rw-r--r--sys-libs/libcxxrt/libcxxrt-0.0_p20120911.ebuild69
1 files changed, 69 insertions, 0 deletions
diff --git a/sys-libs/libcxxrt/libcxxrt-0.0_p20120911.ebuild b/sys-libs/libcxxrt/libcxxrt-0.0_p20120911.ebuild
new file mode 100644
index 000000000000..1e189505b82e
--- /dev/null
+++ b/sys-libs/libcxxrt/libcxxrt-0.0_p20120911.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxxrt/libcxxrt-0.0_p20120911.ebuild,v 1.1 2012/09/11 18:22:14 aballier Exp $
+
+EAPI=4
+
+EGIT_REPO_URI="git://github.com/pathscale/libcxxrt.git"
+
+[ "${PV%9999}" != "${PV}" ] && SCM="git-2" || SCM=""
+
+inherit base flag-o-matic toolchain-funcs portability ${SCM}
+
+DESCRIPTION="C++ Runtime from PathScale, FreeBSD and NetBSD."
+HOMEPAGE="https://github.com/pathscale/libcxxrt http://www.pathscale.com/node/265"
+if [ "${PV%9999}" = "${PV}" ] ; then
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+ DEPEND="app-arch/xz-utils"
+else
+ SRC_URI=""
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+if [ "${PV%9999}" = "${PV}" ] ; then
+ KEYWORDS="~amd64"
+else
+ KEYWORDS=""
+fi
+IUSE="static-libs"
+
+RDEPEND=">=sys-libs/libunwind-1.0.1-r1"
+DEPEND="${RDEPEND}
+ ${DEPEND}"
+
+src_prepare() {
+ base_src_prepare
+ cp "${FILESDIR}/Makefile" src/ || die
+ cp "${FILESDIR}/Makefile.test" test/Makefile || die
+ rm -f src/unwind* || die
+ cp -f "${FILESDIR}/unwind.h" src/ || die
+}
+
+src_compile() {
+ # Notes: we build -nodefaultlibs to avoid linking to gcc libs.
+ # libcxxrt needs: dladdr (dlopen_lib), libunwind (or libgcc_s but we build
+ # over libunwind) and the libc.
+ tc-export CC CXX AR
+ append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
+ cd "${S}/src"
+ LIBS="$(dlopen_lib) -lunwind -lc" emake shared
+ use static-libs && emake static
+}
+
+src_test() {
+ cd "${S}/test"
+ LD_LIBRARY_PATH="${S}/src:${LD_LIBRARY_PATH}" LIBS="-L${S}/src -lcxxrt -lc" emake check
+}
+
+src_install() {
+ # TODO: See README. Maybe hide it in a subdir and let only libcxx know about
+ # it. FreeBSD head installs it in /lib
+ dolib.so src/${PN}.so*
+ use static-libs && dolib.a src/${PN}.a
+
+ insinto /usr/include/libcxxrt/
+ doins src/cxxabi.h
+
+ dodoc AUTHORS COPYRIGHT README
+}