# -*- 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 91029 2012-03-22 13:31:50Z hum@macports.org $

PortSystem          1.0

name                julius
version             4.2.1
revision            1
categories          audio japanese
platforms           darwin
maintainers         hum openmaintainer
license             BSD

description         Large Vocabulary Continuous Speech Recognition (LVCSR) Engine

long_description    Julius is an open-source high-performance large vocabulary \
                    continuous speech recognition (LVCSR) decoder software for \
                    speech-related researchers and developers. \
                    Based on word N-gram and triphone context-dependent HMM, \
                    it can perform almost real-time decoding on most current \
                    PCs with small amount of memory.

homepage            http://julius.sourceforge.jp/
master_sites        sourceforge_jp:julius/54278/

checksums           ${distname}${extract.suffix} \
                    rmd160  9a3a3af38f4a9e1f66ec63879b18d08f29ade26f \
                    sha256  4e6f69f33967d7a958672a6b6d216405dcae8a3f008ae73cd115428923aed57a \

patchfiles          patch-configure.diff \
                    patch-Makefile.in.diff \
                    patch-clang.diff

depends_lib         port:libiconv

# Note: '--enable-words-int' should be declared ahead of '--with-mictype'.
variant words_int description {Use integer for word ID to extend vocabulary limit} {
    # http://sourceforge.jp/cvs/view/julius/julius4/libsent/src/ngram/ngram_read_bin.c?r1=1.8&r2=1.9
    patchfiles-append          patch-ngram_read_bin.c.diff
    configure.pre_args-append  --enable-words-int
}

platform darwin 10 {
    depends_lib-append      port:portaudio
    configure.args-append   --with-mictype=portaudio
}

platform darwin 11 {
    depends_lib-append      port:portaudio
    configure.args-append   --with-mictype=portaudio
}

destroot.target-append  install.man
destroot.destdir        prefix=${destroot}${prefix}

post-destroot {
    xinstall -d ${destroot}${prefix}/share/doc/${name}
    xinstall -m 644 -W ${worksrcpath} \
        00readme-ja.txt \
        00readme.txt \
        ChangeLog \
        LICENSE.txt \
        Release-ja.txt \
        Release.txt \
        Sample.jconf \
        ${destroot}${prefix}/share/doc/${name}
}

default_variants    +kit

set kit_name        dictation-kit
set kit_version     v4.1
set dictation_kit   ${kit_name}-${kit_version}
set kit_distfile    ${dictation_kit}${extract.suffix}

variant kit description {Add dictation kit and a demo script} {
    distfiles-append    ${kit_distfile}:kit
    master_sites-append sourceforge_jp:julius/51930/:kit
    checksums-append    ${kit_distfile} \
                        sha1    7fd6fd6de13cd18c9ab811266da9d548d57c422a \
                        rmd160  9f8603f95cbb363cb8a92189198837f81c4968dd

    post-destroot {
        # copy the dictation kit.
        set lib_dest     ${destroot}${prefix}/lib/${name}
        xinstall -d ${lib_dest}
        xinstall -m 644 -W ${workpath}/${dictation_kit} \
            fast.jconf \
            light.jconf \
            ${lib_dest}
        copy ${workpath}/${dictation_kit}/model ${lib_dest}
        # configure the dictation kit.
        set conf_dest    ${lib_dest}/fast.jconf
        reinplace "s| model/| ${prefix}/lib/${name}/model/|g"    ${conf_dest}
        reinplace "s|#-charconv from to|-charconv EUC-JP UTF-8|" ${conf_dest}
        # configure an executable demo script file.
        set script_name  julius_demo
        set script_dest  ${destroot}${prefix}/bin/${script_name}
        xinstall -m 755  ${filespath}/${script_name} ${script_dest}
        reinplace "s|@prefix@|${prefix}|g"           ${script_dest}
        # copy documentation.
        set kit_docdir   ${destroot}${prefix}/share/doc/${name}/${kit_name}
        xinstall -d ${kit_docdir}
        xinstall -m 644 -W ${workpath}/${dictation_kit} \
            00readme.txt \
            HOWTO.txt \
            TROUBLE.txt \
            ${kit_docdir}
    }
}

livecheck.type      regex
livecheck.url       http://sourceforge.jp/projects/${name}/releases/rss
livecheck.regex     <title>${name}.* - (\[0-9.a-z\-\]+)</title>
