# $Id: Portfile 57375 2009-09-10 08:16:41Z ryandesign@macports.org $

PortSystem      1.0

name            chasen
version         2.4.4
set ipa         ipadic-2.7.0
categories      textproc japanese
maintainers     takanori openmaintainer
description     Japanese morphological analysis system
long_description \
                ChaSen is a tool to analyze a text according to a set of dictionaries that \
                specifies grammer, part of speech of words, and so on. Because ChaSen itself \
                has no dictionaries, we need explicit dictionaries to use. IPADIC is such a \
                set of dictionaries that specifies Japanese language. \
                \
                This version of chasen treats encoding of input as EUC-JP, and its output is \
                encoded as EUC-JP by default.
platforms       darwin
homepage        http://chasen-legacy.sourceforge.jp/
#master_sites   sourceforge_jp:chasen-legacy/32224/:chasen \
#               sourceforge_jp:ipadic/24435/:ipadic
set sfjpid_chasen   32224
set sfjpid_ipadic   24435
master_sites    http://keihanna.dl.sourceforge.jp/chasen-legacy/${sfjpid_chasen}/:chasen \
                http://osdn.dl.sourceforge.jp/chasen-legacy/${sfjpid_chasen}/:chasen \
                http://keihanna.dl.sourceforge.jp/ipadic/${sfjpid_ipadic}/:ipadic \
                http://osdn.dl.sourceforge.jp/ipadic/${sfjpid_ipadic}/:ipadic \
                http://chasen.naist.jp/stable/ipadic/:ipadic
distfiles       ${distname}.tar.gz:chasen
patchfiles      patch-configure.diff
checksums       ${name}-${version}.tar.gz md5 42b20d41a33e1f5e7a05cc56aaa548b0 \
                                          sha1 3328e6667d6b74955b6c4b1b49a7d97805e4de8c \
                                          rmd160 ceb4a7c064ba5bf0d356d6db0e64b644b88dbc54 \
                ${ipa}.tar.gz md5 f36d315cae25b086a889b7090c674977 \
                              sha1 52784d8abb3361eafec83ab543be63cf087f9eb2 \
                              rmd160 5e37c750801df63439032be4954c4b63a44012cb

depends_lib     port:darts \
                port:libiconv
depends_build   port:nkf

default_variants    +ipadic

post-extract {
    foreach f {tests/test-chasen.sh tests/test-dic.sh} {
        file attributes ${worksrcpath}/${f} -permissions 0755
    }
}

configure.args  --libexecdir=${prefix}/lib --with-darts=${prefix}/include --with-libiconv=${prefix}

use_parallel_build  yes

test.run        yes
test.target     check

post-destroot {
    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}/doc

    xinstall -m 644 -W ${worksrcpath} AUTHORS COPYING ChangeLog INSTALL NEWS README ${destroot}${prefix}/share/doc/${name}
    xinstall -m 644 ${worksrcpath}/doc/manual-j.pdf ${destroot}${prefix}/share/doc/${name}/doc
}

variant ipadic description {Install ipadic} {
    # Japanese dictionaries for ChaSen
    distfiles-append ${ipa}.tar.gz:ipadic
    post-destroot {
        foreach {enc c} {UTF-8 w EUC-JP e Shift_JIS s} {
            file mkdir ${workpath}/${ipa}-${enc}
            system "(cd ${workpath}/${ipa}; tar cf - .) | (cd ${workpath}/${ipa}-${enc}; tar xf -)"
            reinplace "s|PACKAGE=ipadic|PACKAGE=ipadic-${enc}|" ${workpath}/${ipa}-${enc}/configure
            reinplace "s|/makemat|/makemat -i ${c}|" ${workpath}/${ipa}-${enc}/Makefile.in
            reinplace "s|/makeda|/makeda -i ${c}|" ${workpath}/${ipa}-${enc}/Makefile.in
            foreach f [glob ${workpath}/${ipa}-${enc}/*.cha ${workpath}/${ipa}-${enc}/*.dic ${workpath}/${ipa}-${enc}/chasenrc.in] {
                system "mv ${f} ${f}_ && ${prefix}/bin/nkf --ic=EUC-JP --oc=${enc} ${f}_ > ${f}"
            }
            system "cd ${workpath}/${ipa}-${enc} && ./configure --with-dicdir=${prefix}/lib/chasen/dic --with-mkchadic=${destroot}${prefix}/lib/chasen --with-chasenrc-path=${destroot}${prefix}/etc/chasenrc-${enc} && DYLD_LIBRARY_PATH=${destroot}${prefix}/lib make && make install DESTDIR=${destroot}"
        }
        ln -s chasenrc-EUC-JP ${destroot}${prefix}/etc/chasenrc

        xinstall -m 755 -d ${destroot}${prefix}/share/doc/chasen-ipadic/doc

        xinstall -m 644 -W ${workpath}/${ipa} AUTHORS COPYING ChangeLog INSTALL INSTALL-ja NEWS README ${destroot}${prefix}/share/doc/chasen-ipadic
        xinstall -m 644 ${workpath}/${ipa}/doc/ipadic-ja.pdf ${destroot}${prefix}/share/doc/chasen-ipadic/doc
    }

    post-activate {
        ui_msg "\nDue to historical reasons, the default encoding of ChaSen is set to EUC-JP."
        ui_msg "If you'd like to handle text files written in UTF-8 or Shift_JIS, you may use -r and -i options.\n"
        ui_msg "  UTF-8)     chasen -r ${prefix}/etc/chasenrc-UTF-8 -i w <input>"
        ui_msg "  Shift_JIS) chasen -r ${prefix}/etc/chasenrc-Shift_JIS -i s <input>\n"
    }
}

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