| # Copyright 1999-2018 Gentoo Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=5 |
| |
| inherit autotools-multilib eutils flag-o-matic toolchain-funcs |
| |
| DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator" |
| HOMEPAGE="http://jemalloc.net/ https://github.com/jemalloc/jemalloc" |
| SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.bz2" |
| |
| LICENSE="BSD" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="debug static-libs stats" |
| |
| HTML_DOCS=( doc/jemalloc.html ) |
| |
| PATCHES=( "${FILESDIR}/${PN}-3.5.1-strip-optimization.patch" |
| "${FILESDIR}/${PN}-3.5.1-no-pprof.patch" |
| "${FILESDIR}/${PN}-3.5.1_fix_html_install.patch" |
| ) |
| |
| MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h ) |
| |
| # autotools-utils.eclass auto-adds configure options when static-libs is in IUSE |
| # but jemalloc doesn't implement them in its configure; need this here to |
| # supress the warnings until automagic is removed from the eclass |
| QA_CONFIGURE_OPTIONS="--enable-static --disable-static --enable-shared --disable-shared" |
| src_configure() { |
| myeconfargs=( |
| $(use_enable debug) |
| $(use_enable stats) |
| ) |
| use sparc && append-cppflags -DLG_QUANTUM=4 -mcpu=ultrasparc |
| # The configure test for page shift requires running code which fails |
| # when cross-compiling. Since it uses _SC_PAGESIZE, and the majority |
| # of systems use 4096 as the base page size, just hardcode 12 here. |
| tc-is-cross-compiler && export je_cv_static_page_shift=12 |
| autotools-multilib_src_configure |
| } |
| |
| src_install() { |
| autotools-multilib_src_install |
| |
| if [[ ${CHOST} == *-darwin* ]] ; then |
| # fixup install_name, #437362 |
| install_name_tool \ |
| -id "${EPREFIX}"/usr/$(get_libdir)/libjemalloc.1.dylib \ |
| "${ED}"/usr/$(get_libdir)/libjemalloc.1.dylib || die |
| fi |
| use static-libs || find "${ED}" -name '*.a' -delete |
| } |