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

use_configure       yes
use_autoreconf      yes
name                py-pyccn
version             0.2
python.versions     27
python.default_version   27
revision            1
description	        PyCCN - CCN bindings for Python
long_description \
	A "thin" implementation, which supports Python \
    objects corresponding to the major CCNx 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.
maintainers         ucla.edu:alexander.afanasyev
categories	        net python
platforms	        darwin
homepage            https://github.com/remap/PyCCN

fetch.type git
git.url    https://github.com/remap/PyCCN.git
git.branch fc486a1f253e937fb7de40c2a8fc900ca23c166d

depends_build	\
	port:autoconf \
    port:libtool \
	port:pkgconfig
depends_lib-append	\
    port:openssl \
    port:ccnx

pre-configure {
    file mkdir "${worksrcpath}/build-aux"

    configure.args-append --with-ccn=${prefix}
    configure.env-append OPENSSL_INCLUDES=-I${prefix}/include
    configure.env-append OPENSSL_LDFLAGS=-L${prefix}/lib
    configure.env-append OPENSSL_LIBS="-lssl -lcrypto"
    configure.env-append PYTHON_SITE_PKG=${python.pkgd}
    configure.env-append PYTHON=${python.bin}
}

build.cmd           make
build.target    

destroot.cmd        make
destroot.target     install
destroot.destdir    "DESTDIR=${destroot}"

