# -*- 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
PortGroup               github 1.0

github.setup            omniti-labs portableumem 1.0.1
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from     tarball
revision                2

name                    umem
description             userland slab allocator
long_description        Libumem is a library used to detect memory management bugs in applications. \
It is based on the Slab allocator concept. Functions in this library provide fast, scalable \
object-caching memory allocation with multithreaded application support. In addition to the \
standard malloc(3C) family of functions and the more flexible umem_alloc(3MALLOC) family, \
libumem provides powerful object-caching services as described in umem_cache_create(3MALLOC). \
This slab allocator is designed for systems with many threads and many CPUs. Memory allocation \
with naive allocators can be a serious bottleneck. There are other highly scalable allocators \
out there, but libumem is about the same or better in terms of performance, and has compelling \
debugging features.

categories              devel
license                 CDDL-1
maintainers             nomaintainer
master_sites            https://web.archive.org/web/20151129071107/https://labs.omniti.com/portableumem/releases/1.0/
distname                ${name}-${version}
use_bzip2               yes

checksums               sha1    cdb2a7d3c29df21fc2ca85bcff6d2367c89c5bbe \
                        rmd160  ddfe124cc5e8494bf73e7bcec2aec09b1bbbe745 \
                        sha256  d6148d236c6e49f0243c712b939f08d654498f3bea80b2319c74247220972cf2 \
                        size    305999

depends_build-append    port:automake

patchfiles              atomic.patch \
                        implicit.patch \
                        vmem_sbrk.c.patch

post-patch {
    # Use newer config.guess and config.sub to support Apple Silicon.
    set automake_dirs [glob -directory ${prefix}/share automake-*]
    set automake_dir [lindex [lsort -command vercmp $automake_dirs] end]
    copy -force ${automake_dir}/config.guess ${automake_dir}/config.sub \
        ${worksrcpath}
}

configure.args          --mandir=${prefix}/share/man

use_parallel_build      no
