# The location underwhich all of the build output will be collected.
# This is a subdirectory of $buildDirectory
# Set collectingFolder and archivePrefix to . if you want to create archives without
# trailing eclipse in the paths of the included files
collectingFolder=.

# The prefix that will be used in the generated archive. 
# Does not make sense to use a different archivePrefix than collectingFolder, 
# because zip wouldn't find any files to include into the target zip otherwise
archivePrefix=.

# The list of {os, ws, arch} configurations to build.  This 
# value is a '&' separated list of ',' separate triples.  For example, 
#     configs=win32,win32,x86 & linux,motif,x86
# By default the value is *,*,*

# We specify os and ws to ensure that org.eclipse.objectteams.otequinox.sunjvm is built,
# but we don't specify arch so the build can be run on all architectures
configs=linux,gtk,* 

JavaSE-1.6=/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ppc64/default/jclSC160/vm.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/annotation.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/beans.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/java.util.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/jndi.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/logging.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/security.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/sql.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmorb.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmorbapi.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmcfw.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/rt.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/charsets.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/resources.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmpkcs.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmcertpathfw.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmjgssfw.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmjssefw.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmsaslfw.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmjcefw.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmjgssprovider.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmjsseprovider2.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmcertpathprovider.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/ibmxmlcrypto.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/management-agent.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/xml.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/jlm.jar:/opt/public/common/ibm-java-ppc64-60-SR7/jre/lib/javascript.jar

J2SE-1.5=/opt/public/common/ibm-java2-ppc64-50/jre/lib/vm.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/core.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/charsets.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/graphics.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/security.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmpkcs.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmorb.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmcfw.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmorbapi.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmjcefw.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmjgssprovider.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmjsseprovider2.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmjaaslm.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/ibmcertpathprovider.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/server.jar:/opt/public/common/ibm-java2-ppc64-50/jre/lib/xml.jar

J2SE-1.4=/shared/common/j2sdk1.4.2_19/jre/lib/rt.jar


skipBase=true
base=${build.root.dir}
# baseLocation is set from run.xml
eclipseBuildId=SDK-3.6RC3
eclipseDrop=${eclipseBuildId}-201005271700
eclipseURL=/home/data/httpd/download.eclipse.org/eclipse/downloads/drops/${eclipseDrop}
eclipseBaseURL=${eclipseURL}/eclipse-${eclipseBuildId}-linux-gtk-${basearch}.tar.gz

p2.gathering=true
#p2.build.repo is set individually in customTargets.xml
skipMirroring=true
#skipDirector=true
p2.metadata.repo.name="Object Teams Updates"

