# $Id: Portfile,v 1.3 2004/12/09 20:06:57 jberry Exp $

PortSystem 1.0

name            	maven
version         	1.0.2

categories      	java devel
maintainers     	jberry@opendarwin.org
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	
}

