commit:     ccb7ff1a98f902c510ba58052a0ad428384224f0
Author:     Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  8 17:47:33 2015 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Sun Nov  8 17:47:42 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccb7ff1a

dev-cpp/tbb: Properly install debug libs

thanks Konstantin (elxa) for the patch

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=564678

Package-Manager: portage-2.2.23
Signed-off-by: Justin Lecher <jlec <AT> gentoo.org>

 dev-cpp/tbb/tbb-4.3.20150611-r1.ebuild | 141 +++++++++++++++++++++++++++++++++
 1 file changed, 141 insertions(+)

diff --git a/dev-cpp/tbb/tbb-4.3.20150611-r1.ebuild 
b/dev-cpp/tbb/tbb-4.3.20150611-r1.ebuild
new file mode 100644
index 0000000..31f7343
--- /dev/null
+++ b/dev-cpp/tbb/tbb-4.3.20150611-r1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic multilib-minimal toolchain-funcs versionator
+
+PV1="$(get_version_component_range 1)"
+PV2="$(get_version_component_range 2)"
+PV3="$(get_version_component_range 3)"
+MYP="${PN}${PV1}${PV2}_${PV3}oss"
+
+DESCRIPTION="High level abstract threading library"
+HOMEPAGE="http://www.threadingbuildingblocks.org/";
+SRC_URI="http://threadingbuildingblocks.org/sites/default/files/software_releases/source/${MYP}_src.tgz";
+LICENSE="GPL-2-with-exceptions"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+IUSE="debug doc examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+S="${WORKDIR}/${MYP}"
+
+src_prepare() {
+       epatch \
+               "${FILESDIR}"/${PN}-4.0.297-underlinking.patch \
+               "${FILESDIR}"/${P}-build.patch
+
+       find include -name \*.html -delete || die
+
+       # Give it a soname on FreeBSD
+       echo 'LIB_LINK_FLAGS += -Wl,-soname=$(BUILDING_LIBRARY)' >>     
build/FreeBSD.gcc.inc
+       # Set proper versionning on FreeBSD
+       sed -i -e '/.DLL =/s/$/.1/' build/FreeBSD.inc || die
+
+       use debug || sed -i -e '/_debug/d' Makefile
+}
+
+multilib_src_configure() {
+       # pc files are for debian and fedora compatibility
+       # some deps use them
+       cat <<-EOF > ${PN}.pc.template
+               prefix=${EPREFIX}/usr
+               libdir=\${prefix}/$(get_libdir)
+               includedir=\${prefix}/include
+               Name: ${PN}
+               Description: ${DESCRIPTION}
+               Version: ${PV}
+               URL: ${HOMEPAGE}
+               Cflags: -I\${includedir}
+       EOF
+       cp ${PN}.pc.template ${PN}.pc || die
+       cat <<-EOF >> ${PN}.pc
+               Libs: -L\${libdir} -ltbb
+               Libs.private: -lm -lrt
+       EOF
+       cp ${PN}.pc.template ${PN}malloc.pc || die
+       cat <<-EOF >> ${PN}malloc.pc
+               Libs: -L\${libdir} -ltbbmalloc
+               Libs.private: -lm -lrt
+       EOF
+       cp ${PN}.pc.template ${PN}malloc_proxy.pc || die
+       cat <<-EOF >> ${PN}malloc_proxy.pc
+               Libs: -L\${libdir} -ltbbmalloc_proxy
+               Libs.private: -lrt
+               Requires: tbbmalloc
+       EOF
+}
+
+local_src_compile() {
+       cd "${S}"
+
+       local comp arch
+
+       case ${MULTILIB_ABI_FLAG} in
+               abi_x86_64) arch=x86_64 ;;
+               abi_x86_32) arch=ia32 ;;
+       esac
+
+       case "$(tc-getCXX)" in
+               *g++*) comp="gcc" ;;
+               *ic*c) comp="icc" ;;
+               *clang*) comp="clang" ;;
+               *) die "compiler $(tc-getCXX) not supported by build system" ;;
+       esac
+
+       CXX="$(tc-getCXX)" \
+       CC="$(tc-getCC)" \
+       AS="$(tc-getAS)" \
+       arch=${arch} \
+       CPLUS_FLAGS="${CXXFLAGS}" \
+       emake compiler=${comp} work_dir="${BUILD_DIR}" tbb_root="${S}" $@
+}
+
+multilib_src_compile() {
+       local_src_compile tbb tbbmalloc
+}
+
+multilib_src_test() {
+       CXXFLAGS="${CXXFLAGS} -fabi-version=4" \
+       local_src_compile -j1 test
+}
+
+multilib_src_install() {
+       local bt
+       local buildtypes
+       if use debug ; then
+               buildtypes="release debug"
+       else
+               buildtypes="release"
+       fi
+       for bt in ${buildtypes}; do
+               cd "${BUILD_DIR}_${bt}" || die
+               local l
+               for l in $(find . -name lib\*.so.\*); do
+                       dolib.so ${l}
+                       local bl=$(basename ${l})
+                       dosym ${bl} /usr/$(get_libdir)/${bl%.*}
+               done
+       done
+
+       cd "${BUILD_DIR}" || die
+       insinto /usr/$(get_libdir)/pkgconfig
+       doins *.pc
+}
+
+multilib_src_install_all() {
+       doheader -r include/*
+
+       dodoc README CHANGES doc/Release_Notes.txt
+       use doc && dohtml -r doc/html/*
+
+       if use examples ; then
+               insinto /usr/share/doc/${PF}/examples/build
+               doins build/*.inc
+               insinto /usr/share/doc/${PF}/examples
+               doins -r examples
+       fi
+}

Reply via email to