summaryrefslogtreecommitdiff
path: root/dev-util/duma/duma-2.5.15-r2.ebuild
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-util/duma/duma-2.5.15-r2.ebuild
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-util/duma/duma-2.5.15-r2.ebuild')
-rw-r--r--dev-util/duma/duma-2.5.15-r2.ebuild93
1 files changed, 93 insertions, 0 deletions
diff --git a/dev-util/duma/duma-2.5.15-r2.ebuild b/dev-util/duma/duma-2.5.15-r2.ebuild
new file mode 100644
index 000000000000..5f6cbd88a61c
--- /dev/null
+++ b/dev-util/duma/duma-2.5.15-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit 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
+ mirror://gentoo/${P}-GNUmakefile.patch.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ "${WORKDIR}"/${P}-GNUmakefile.patch
+ "${FILESDIR}"/${P}-gcc6.patch
+)
+
+src_configure() {
+ # other flags will break duma
+ export CFLAGS="-O0 -Wall -Wextra -U_FORTIFY_SOURCE"
+ tc-export AR CC CXX LD RANLIB
+
+ case "${CHOST}" in
+ *-linux-gnu)
+ OS=linux;;
+ *-solaris*)
+ OS=solaris;;
+ *-darwin*)
+ OS=osx;;
+ *-freebsd*)
+ OS=freebsd;;
+ *-netbsd*)
+ OS=netbsd;;
+ *-cygwin*)
+ OS=cygwin;;
+ **-irix**)
+ OS=irix;;
+ esac
+ export OS="${OS}"
+ elog "Detected OS is: ${OS}"
+
+ if use amd64 && ! [ -n "${DUMA_ALIGNMENT}" ]; then
+ export DUMA_ALIGNMENT=16
+ elog "Exported DUMA_ALIGNMENT=${DUMA_ALIGNMENT} for x86_64,"
+ fi
+
+}
+
+src_compile() {
+ # The below must be run first if distcc is enabled, otherwise
+ # the real build breaks on parallel makes.
+ emake reconfig
+ emake
+}
+
+src_test() {
+ emake test
+
+ elog "Please, see the output above to verify all tests have passed."
+ elog "Both static and dynamic confidence tests should say PASSED."
+}
+
+src_install(){
+ emake prefix="${D}/usr" libdir="${D}/usr/$(get_libdir)" \
+ docdir="${D}/usr/share/doc/${PF}" install
+
+ sed -i "s|LD_PRELOAD=./libduma|LD_PRELOAD=libduma|" "${D}"/usr/bin/duma \
+ || die "sed failed"
+
+ dodoc CHANGELOG TODO GNUmakefile
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins example[1-6].cpp example_makes/ex6/Makefile
+ fi
+}
+
+pkg_postinst() {
+ elog "See the GNUmakefile which will be also installed at"
+ elog "/usr/share/doc/${PF} for more options. You can now export"
+ elog "varibles to the build system easily, e.g.:"
+ elog "# export CPPFLAGS=\"-DFLAG\" (or by using append-cppflags)"
+ elog "# export DUMA_ALIGNMENT=${DUMA_ALIGNMENT} (Default is 16 for x86_64)"
+ elog "See more information about DUMA_ALIGNMENT from Readme.txt"
+}