# -*- 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
name        ccnx
version     0.6.1
revision    1
epoch       1
categories  net
platforms   darwin
license     GPL LGPL
maintainers ucla.edu:alexander.afanasyev
description ProjectCCNx implementation of Content Centric Networking (CCN) / \
            Named Data Networking (NDN) architecture
long_description Project CCNx® exists to develop, promote, and evaluate a new \
            approach to communication architecture we call content-centric \
            networking.  We seek to carry out this mission by creating and \
            publishing open protocol specifications and an open source \
            software reference implementation of those protocols.  We provide \
            support for a community of people interested in experimentation, \
            research, and building applications with this technology, all \
            contributing to its evolution. 
homepage    http://www.ccnx.org/

fetch.type git
git.url    https://github.com/ProjectCCNx/ccnx.git
git.branch ccnx-0.6.1

# master_sites http://www.ccnx.org/releases/
# checksums   rmd160 9c8eb49aa8d2edfe5eb873312f6273ca469255a4 \
#             sha256 7ac8f2ac3b6bcda85e9b4df34c025f68d576d98dcadf16eea2ed1c3dcee4d557

# use_parallel_build  yes

depends_lib port:openssl \
            port:expat \
            port:libpcap \
            port:libxml2

# default_variants   +java

configure.env-append OPENSSL_CFLAGS=-I${prefix}/include
configure.env-append OPENSSL_LIBS=-L${prefix}/lib
configure.env-append INSTALL_BASE=${prefix}
configure.cflags -DCCNX_DIR=\\\"${prefix}/etc/ccnx\\\" 

pre-build {
    reinplace "s|\$HOME/.ccnx/|${prefix}/etc/ccnx/|g" ${worksrcpath}/csrc/util/ccndstart.sh 
}

build.env-append OPENSSL_CFLAGS=-I${prefix}/include
build.env-append OPENSSL_LIBS=-L${prefix}/lib
build.env-append INSTALL_BASE=${destroot}${prefix}
build.env-append CCNX_DIR=${destroot}${prefix}/etc/ccnx

destroot.env-append INSTALL_BASE=${destroot}${prefix}
destroot.env-append CCNX_DIR=${destroot}${prefix}/etc/ccnx

patchfiles    patch-macports-customizations.diff

startupitem.pidfile     none
startupitem.start       "${prefix}/bin/ccndstart"
startupitem.stop        "${prefix}/bin/ccndstop"
startupitem.restart     "${prefix}/bin/ccndstop && sleep 3 && ${prefix}/bin/ccndstart"

startupitem.create      yes
startupitem.name        ccnx

startupitem.netchange   yes
startupitem.logevents   yes
startupitem.logfile     ${prefix}/var/log/ccnx.log

notes "
In order repo to work, you need to add the following lines at the end of your \[~/.bash_profile\]:

  export CCNR_DIRECTORY=${prefix}/etc/ccnx/repo

To configure environment variables for ccnd, edit your \[${prefix}/etc/ccnx/ccndrc\]. For example,
  
  CCND_LOG=${prefix}/var/log/ccnd.log
  CCND_DEBUG=16

To add static FIB entries, edit your \[${prefix}/etc/ccnx/ccnd.conf\]. For example,

  add ccnx:/ccnx.org udp 224.0.23.170 59695

For more information and documentation, refer to man pages and http://www.ccnx.org website.
"
