# -*- 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                jruby-devel
version             1.7.0.RC2
epoch               1
                    
categories          lang ruby
maintainers         ciserlohn
platforms           darwin
                    
description         JRuby is an 100% pure-Java implementation of the Ruby \
                    programming language.
                    long_description  JRuby provides a complete set of core "builtin" classes \
                    and syntax for the Ruby language, as well as most of the \
                    Ruby Standard Libraries. The standard libraries are mostly \
                    Ruby's own complement of .rb files, but a few that depend \
                    on C language-based extensions have been reimplemented.

conflicts           jruby
                    
homepage            http://jruby.org/
                    
master_sites        http://jruby.org.s3.amazonaws.com/downloads/${version}/
distname            jruby-src-${version}
worksrcdir          jruby-${version}
                    
checksums           rmd160  884b17ef595159c2e4c84cb355b0ec61f215ee6a \
                    sha256  b6d35ff087843f4c835b49897c7e1cc8f76fb8f0e45b38b408fe9d1eb337edf7
                    
depends_build       port:apache-ant
depends_lib         bin:java:kaffe
                    
use_configure       no
universal_variant   no
                    
build.cmd           ant
build.target        jar
                    
build.asroot        yes

variant apidocs description "include API documentation" {
    build.target-append  apidocs
}

variant nailgun description "include Nailgun support" {
    build.target-append  build-ng
    post-destroot {
        xinstall -m 755 -d ${destroot}${prefix}/share/java/${name}/tool/nailgun
        copy ${worksrcpath}/tool/nailgun/ng ${destroot}${prefix}/share/java/${name}/tool/nailgun
    }
}

variant default_ruby description "build without j prefix" {}


destroot {
    # Create the target java directory exists
    xinstall -m 755 -d ${destroot}${prefix}/share/java/${name}

    # Copy over the needed elements of our directory tree
    file copy \
        ${worksrcpath}/bin \
        ${worksrcpath}/lib \
        ${destroot}${prefix}/share/java/${name}

    if { [variant_isset apidocs] } {
        file copy ${worksrcpath}/docs ${destroot}${prefix}/share/java/${name}
    }

    # Remove extraneous .bat, .exe and .dll files
    foreach f [glob -directory ${destroot}${prefix}/share/java/${name}/bin *.bat] {
        file delete $f
    }
    foreach f [glob -directory ${destroot}${prefix}/share/java/${name}/bin *.exe] {
        file delete $f
    }
    foreach f [glob -directory ${destroot}${prefix}/share/java/${name}/bin *.dll] {
        file delete $f
    }

    set jruby_prefix ""

    if { ![variant_isset default_ruby] } {
        set jruby_prefix "j"
    }

    foreach f { jruby jirb jrubyc jirb_swing } {
        regsub {^j} $f $jruby_prefix dest
        if { ${dest} != ${f} } {
            ln -s ${prefix}/share/java/${name}/bin/${f} ${destroot}${prefix}/bin/${dest}
        }
        ln -s ${prefix}/share/java/${name}/bin/${f} ${destroot}${prefix}/bin/
    }

    foreach f { ast gem rdoc ri testrb } {
        ln -s ${prefix}/share/java/${name}/bin/${f} \
            ${destroot}${prefix}/bin/${jruby_prefix}${f}
    }
}

livecheck.type      regex
livecheck.url       ${homepage}
livecheck.regex     {Download the latest release.*<strong>(.*)</strong>}