# -*- 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
# $Id: Portfile 117998 2014-03-18 18:32:52Z jeremyhu@macports.org $

# TODO: Improve atomics by using libkern/OSAtomics.h
#       https://bugs.freedesktop.org/show_bug.cgi?id=67795

PortSystem      1.0

name            pulseaudio
version         5.0
license         LGPL-2.1
categories      audio
maintainers     devans openmaintainer
platforms       darwin
description     A sound server for POSIX OSes

long_description \
                PulseAudio is a sound server for POSIX OSes, meaning that it is a proxy \
                for your sound applications. It allows you to do advanced operations \
                on your sound data as it passes between your application and your hardware. \
                Things like transferring the audio to a different machine, changing the \
                sample format or channel count and mixing several sounds into one are \
                easily achieved using a sound server.

homepage        http://www.freedesktop.org/wiki/Software/PulseAudio/
master_sites    http://freedesktop.org/software/${name}/releases/

use_xz          yes

checksums       rmd160  4ba13e92c58f8ada4542d521131094a55e3b6991 \
                sha256  99c13a8b1249ddbd724f195579df79484e9af6418cecf6a15f003a7f36caf939

depends_build   port:pkgconfig \
                port:intltool \
                port:autoconf \
                port:automake \
                port:libtool \
                port:p5.16-xml-parser

depends_lib     port:libiconv \
                port:json-c \
                port:libsndfile \
                port:libsamplerate \
                port:libtool \
                port:gdbm \
                path:lib/pkgconfig/glib-2.0.pc:glib2 \
                port:gtk3 \
                port:dbus \
                port:fftw-3-single \
                port:speex \
                port:orc

# configure falls back to libatomic_ops as last resort
# if no linux kernel support and inline asm snippet fails to build
# likely to fail on Leopard and older
# https://trac.macports.org/ticket/42052

platform darwin {
    if {${os.major} < 10} {
        depends_lib-append  port:libatomic_ops
    }
}

patchfiles      patch-man-Makefile.am.diff i386.patch

# reconfigure with our intltool.m4 using upstream autogen.sh

post-patch {
    xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath}
    reinplace "s|@@MP_PERL@@|${prefix}/bin/perl5.16|" ${worksrcpath}/man/Makefile.am
}

configure.cmd   ./autogen.sh

configure.args  --with-mac-sysroot=/ \
                --with-mac-version-min=$macosx_deployment_target \
                --without-caps \
                --disable-silent-rules \
                --disable-tests \
                --disable-x11 \
                --disable-oss-output \
                --disable-alsa \
                --disable-esound \
                --disable-solaris \
                --disable-waveout \
                --disable-avahi \
                --disable-gconf \
                --disable-jack \
                --disable-asyncns \
                --disable-tcpwrap \
                --disable-lirc \
                --disable-bluez4 \
                --disable-bluez5 \
                --disable-udev \
                --disable-hal-compat \
                --disable-openssl \
                --disable-xen \
                --disable-systemd \
                --enable-neon-opt=no \
                --enable-orc

add_users       pulse group=pulse realname=Pulse\ Audio

variant x11 {
    configure.args-delete   --disable-x11
    depends_lib-append      port:xorg-libX11 \
                            port:xorg-libxcb \
                            port:xorg-libice \
                            port:xorg-libsm \
                            port:xorg-libXtst
}

variant jack description {Enable Jack support } {
    configure.args-delete   --disable-jack
    depends_lib-append      port:jack
}

default_variants +x11

livecheck.type  regex
livecheck.url   ${master_sites}
livecheck.regex "${name}-(\\d+(?:\\.\\d+)*)${extract.suffix}"
