| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| inherit eutils flag-o-matic multilib toolchain-funcs versionator |
| |
| MY_P="${PN}_$(replace_all_version_separators '_')" |
| |
| DESCRIPTION="DUMA (Detect Unintended Memory Access) is a memory debugging library" |
| HOMEPAGE="http://duma.sourceforge.net/" |
| |
| SRC_URI="mirror://sourceforge/duma/${MY_P}.tar.gz" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="amd64 ppc x86" |
| IUSE="examples" |
| |
| DEPEND="" |
| RDEPEND="${DEPEND} |
| app-shells/bash" |
| |
| S="${WORKDIR}/${MY_P}" |
| |
| pkg_setup() { |
| #DUMA_OPTIONS="-DDUMA_LIB_NO_LEAKDETECTION" |
| DUMA_OPTIONS="-DDUMA_USE_FRAMENO" |
| if [ -n "${DUMA_OPTIONS}" ]; then |
| ewarn "" |
| elog "Custom build options are ${DUMA_OPTIONS}." |
| else |
| ewarn "" |
| elog "Custom build options are not set!" |
| fi |
| elog "See the package Makefile for for more options (also installed" |
| elog "with package docs as Makefile.duma)." |
| ewarn "" |
| } |
| |
| src_unpack(){ |
| unpack ${A} |
| cd "${S}" |
| sed -i -e "s:(prefix)/lib:(prefix)/$(get_libdir):g" Makefile |
| sed -i -e "s:share/doc/duma:share/doc/${P}:g" Makefile |
| } |
| |
| src_compile(){ |
| replace-flags O? O0 |
| append-flags -Wall -Wextra -U_FORTIFY_SOURCE |
| tc-export AR CC CXX LD RANLIB |
| |
| use amd64 && export DUMA_ALIGNMENT=16 |
| |
| make CPPFLAGS="${DUMA_OPTIONS}" reconfig || die "make reconfig failed" |
| emake CFLAGS="${CFLAGS}" CC=$(tc-getCC) || die "make failed" |
| } |
| |
| src_test() { |
| ewarn "Control-C now if you want to disable tests..." |
| epause 5 |
| |
| cd "${S}" |
| use amd64 && export DUMA_ALIGNMENT=16 |
| make CFLAGS="${DUMA_OPTIONS} ${CFLAGS}" \ |
| CC=$(tc-getCC) test || die "make test failed" |
| |
| elog "" |
| ewarn "Check output above to verify all tests have passed. Both" |
| ewarn "static and dynamic confidence tests should say PASSED." |
| elog "" |
| } |
| |
| src_install(){ |
| # make install fails nicely here on the first file... |
| make DESTDIR="${D}" install || die "make install failed" |
| dodoc CHANGELOG TODO |
| # All the good comments on duma build options are in the Makefile |
| newdoc Makefile Makefile.duma |
| |
| if use examples; then |
| insinto /usr/share/doc/${P}/examples |
| doins example[1-6].cpp |
| doins example_makes/ex6/Makefile |
| fi |
| } |