# -*- 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: Portfile 91599 2012-04-06 18:22:51Z hum@macports.org $

PortSystem          1.0
PortGroup           github 1.0

github.setup        jubatus jubatus 0.2.2 jubatus-
categories          devel math textproc
platforms           darwin
maintainers         hum openmaintainer
license             LGPL-2.1

homepage            http://jubat.us/
description         Distributed Online Machine Learning Framework
long_description    The Jubatus library is a online machine learning framework \
                    which runs in distributed environment. Jubatus library includes \
                    these functions: multi-class/binary classification, pre-proccessing \
                    data (for natural language), and process management.

checksums           rmd160  bcb3c792b876fbd940f289a1dca2f7a1d3d49325 \
                    sha256  b84d96d89dd5fede462a96bc776a649eb1ac5943d28a27532c1b6668f19a10c2

depends_lib         port:pkgconfig \
                    port:py-msgpack \
                    port:msgpack \
                    port:pficommon \
                    port:re2 \
                    port:libevent \
                    port:google-glog \
                    port:ux-trie \
                    port:mecab-utf8 \
                    port:libzookeeper

configure.cmd       ./waf configure
configure.args-append    --enable-ux --enable-mecab
configure.universal_args

build.cmd           ./waf build
build.target

destroot.cmd        ./waf
destroot.args       --destdir=${destroot}
destroot.destdir

post-destroot {
    set libdir   ${destroot}${prefix}/lib
    foreach libname [glob -tails -directory ${libdir} *.dylib] {
        system "install_name_tool -id ${prefix}/lib/${libname} ${libdir}/${libname}"
    }
    set bindir   ${destroot}${prefix}/bin
    set builddir ${worksrcpath}/build/src
    foreach path [concat [glob ${libdir}/*.dylib] [glob ${bindir}/*]] {
        system "install_name_tool -change ${builddir}/classifier/libjubatus_classifier.dylib      ${prefix}/lib/libjubatus_classifier.dylib  ${path}"
        system "install_name_tool -change ${builddir}/common/libjubacommon.dylib                  ${prefix}/lib/libjubacommon.dylib          ${path}"
        system "install_name_tool -change ${builddir}/common/mprpc/libjubacommon_mprpc.dylib      ${prefix}/lib/libjubacommon_mprpc.dylib    ${path}"
        system "install_name_tool -change ${builddir}/framework/libjubatus_framework.dylib        ${prefix}/lib/libjubatus_framework.dylib   ${path}"
        system "install_name_tool -change ${builddir}/fv_converter/libfilter_sample.dylib         ${prefix}/lib/libfilter_sample.dylib       ${path}"
        system "install_name_tool -change ${builddir}/fv_converter/libjubaconverter.dylib         ${prefix}/lib/libjubaconverter.dylib       ${path}"
        system "install_name_tool -change ${builddir}/fv_converter/libnum_feature_sample.dylib    ${prefix}/lib/libnum_feature_sample.dylib  ${path}"
        system "install_name_tool -change ${builddir}/fv_converter/libnum_filter_sample.dylib     ${prefix}/lib/libnum_filter_sample.dylib   ${path}"
        system "install_name_tool -change ${builddir}/fv_converter/libsplitter_sample.dylib       ${prefix}/lib/libsplitter_sample.dylib     ${path}"
        system "install_name_tool -change ${builddir}/plugin/fv_converter/libmecab_splitter.dylib ${prefix}/lib/libmecab_splitter.dylib      ${path}"
        system "install_name_tool -change ${builddir}/plugin/fv_converter/libre2_splitter.dylib   ${prefix}/lib/libre2_splitter.dylib        ${path}"
        system "install_name_tool -change ${builddir}/plugin/fv_converter/libux_splitter.dylib    ${prefix}/lib/libux_splitter.dylib         ${path}"
        system "install_name_tool -change ${builddir}/recommender/libjubatus_recommender.dylib    ${prefix}/lib/libjubatus_recommender.dylib ${path}"
        system "install_name_tool -change ${builddir}/regression/libjubatus_regression.dylib      ${prefix}/lib/libjubatus_regression.dylib  ${path}"
        system "install_name_tool -change ${builddir}/stat/libjubatus_stat.dylib                  ${prefix}/lib/libjubatus_stat.dylib        ${path}"
        system "install_name_tool -change ${builddir}/storage/libjubastorage.dylib                ${prefix}/lib/libjubastorage.dylib         ${path}"
    }
}
