from waflib import Logs
from waftools import tool

def build(bld):
    source = """
    collection.c
    collparser.c
    bindata.c
    config.c
    ipc.c
    medialib.c
    playback.c
    playlist.c
    result.c
    stats.c
    xmmsclient.c
    xform.c
    xqueue.c
    visualization/client.c
    visualization/udp.c
    """.split()

    if bld.env.HAVE_SEMTIMEDOP:
        source.extend(["visualization/unixshm.c"])
    else:
        source.extend(["visualization/dummy.c"])

    obj = bld(features = 'c cshlib',
        target = 'xmmsclient',
        includes = '../../../.. ../../../include ../../../includepriv',
        source = source,
        uselib = 'socket time',
        use = 'xmmsipc xmmssocket xmmsutils xmmstypes xmmsvisualization',
        vnum = '6.0.0'
        )

    tool.add_install_flag(bld, obj)

def configure(conf):
    conf.env.XMMS_PKGCONF_FILES.append(("xmms2-client", "-lxmmsclient"))

    conf.check_cc(function_name="semtimedop",
            header_name=["sys/types.h", "sys/ipc.h", "sys/sem.h"],
            defines=["_GNU_SOURCE=1"], mandatory=False)
    if not conf.env.HAVE_SEMTIMEDOP:
        Logs.warn("Compiling visualization without shm support!")

    return True

def options(opt):
    pass
