# -*- 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.1rc1
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/
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\\\" -O0 -g3

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.
"
