84 lines
2.1 KiB
Bash
84 lines
2.1 KiB
Bash
# Copyright 1999-2014 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
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
|
|
}
|