# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem 1.0

name            electric-fence
version         2.1.13-0.1
categories      devel
license         GPL-2
maintainers     nomaintainer
description     a library to detect memory buffers over- and \
                underruns

long_description    Electric Fence (efence) stops your program on \
                    the exact instruction that overruns (or \
                    underruns) a malloc() memory buffer. GDB will \
                    then display the source-code line that causes \
                    the bug. It works by using the virtual-memory \
                    hardware to create a red-zone at the border of \
                    each buffer - touch that, and your program \
                    stops. Catch all of those formerly \
                    impossible-to-catch overrun bugs that have \
                    been bothering you for years.
homepage        http://perens.com/FreeSoftware/
platforms       darwin
master_sites    http://perens.com/FreeSoftware/ElectricFence/
distname        ${name}_${version}
worksrcdir      ${name}-[lindex [split ${version} -] 0]
checksums       md5 59e4e7817a30aff52d8971ce00e1ad35 \
                sha1 e6765bcb1543272040b806eea706fc7ae9b60524 \
                rmd160 75e41de7bef263007f24a1053528959f9f7fe1fa
patchfiles      patch-page.c.diff

use_configure   no

build.target    libefence.a
build.args      CFLAGS="-g -DPAGE_PROTECTION_VIOLATED_SIGNAL=SIGBUS"

test.run        yes
test.target     all
test.args       CFLAGS="-g -DPAGE_PROTECTION_VIOLATED_SIGNAL=SIGBUS"

destroot.destdir LIB_INSTALL_DIR=${destroot}${prefix}/lib MAN_INSTALL_DIR=${destroot}${prefix}/share/man/man3

livecheck.version   ${name}_${version}