# -*- 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$

PortSystem              1.0
PortGroup               python 1.0
PortGroup               github 1.0

github.setup            named-data PyCCN v0.3
checksums               rmd160  9a14b55a30b6ab762dfb28035d468bfab116b765 \
                        sha256  c17f9cb6aa1670f967e8190a3ebdc98e594429feb7f447b252c82f96a75d6676

name                    py-ndn
homepage                https://github.com/named-data/py-ndn
license                 BSD
version                 0.3

python.versions         27
python.default_version  27

categories	            net ccnx python
platforms	            darwin
maintainers             ucla.edu:alexander.afanasyev

description	            py-ndn - NDN bindings for Python

long_description        A "thin" implementation, which supports Python \
                        objects corresponding to the major NDNx entities - Interest, ContentObject, and \
                        so on, as well as some support objects.  The C code is mostly just responsible \
                        for marshaling data back and forth between the formats, though there are some \
                        useful functions for key generation/access included.

depends_lib-append	    port:ccnx

use_configure           yes

configure.cmd           ./waf configure

pre-configure {
    configure.env-append    PYTHONDIR=${python.pkgd} \
                            PYTHONARCHDIR=${python.pkgd}
    configure.python        ${python.bin}
}

configure.args-append   --ndnx=${prefix}

build.cmd               ./waf
build.target            build

destroot.cmd            ./waf
destroot.target         install
destroot.destdir        --destdir=${destroot}

