# -*- coding: utf-8; mode: tcl; tab-width: 4; truncate-lines: t; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
# $Id: Portfile 75115 2011-01-15 20:49:51Z blair@macports.org $

PortSystem 1.0

name                maven
version             1.0.2

categories          java devel
maintainers         yahoo.com:jendave
platforms           darwin

description         A java-based build and project management environment.
long_description    Maven is a Java project management and project comprehension \
                    tool. Maven is based on the concept of a project object model (POM) \
                    in that all the artifacts produced by Maven are a result of consulting \
                    a well defined model for your project. Builds, documentation, source \
                    metrics, and source  cross-references are all controlled by your POM.

homepage            http://maven.apache.org/

master_sites        apache:maven/binaries
checksums           md5 81a6b4393e550635efe19e95cea38718

depends_build       bin:java:kaffe \
                    bin:ant:apache-ant

patchfiles          patch-maven

use_configure       no
use_bzip2           yes

# Source builds of maven are not possible, except using the cvs head as in the
# devel variant below, because there is no available source archive or correctly
# tagged source for the project. So the default build is a binary install of the
# jars.
build.cmd           true

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 \
        ${worksrcpath}/plugins \
        ${worksrcpath}/maven-navigation-1.0.xsd \
        ${destroot}${prefix}/share/java/${name}

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

    # Fix permissions on shell scripts
    foreach f { maven install_repo.sh } {
        if [file exists ${destroot}${prefix}/share/java/${name}/bin/$f] {
            file attributes ${destroot}${prefix}/share/java/${name}/bin/$f -permissions +x
        }
    }

    # Symlink maven into the bin directory
    system "cd ${destroot}${prefix}/bin && ln -s ../share/java/${name}/bin/${name}"
}

# The devel variant builds from source using cvs head
variant devel {
    worksrcdir      ${name}

    fetch.type      cvs
    cvs.root        :pserver:anoncvs@cvs.apache.org:/home/cvspublic
    cvs.module      maven maven-plugins

    build.env       MAVEN_HOME=${worksrcpath}
    build.cmd       ant
    build.pre_args  -f build-bootstrap.xml
}

livecheck.type  regex
livecheck.regex {Get Maven (\d+(?:\.\d+)*)}
