#!/usr/bin/env bash

# common variables used in utility scripts
# (note: at this point, not all are necessarily used)

# the top level directory, that should "contain" all else involved with build, control and output
export BUILD_HOME=/shared/galileo/buckyBuild
# a common variation for someone doing a local build on their own machine
#export BUILD_HOME=${HOME}/buckyBuild


RELENG_TOOLS=org.eclipse.galileo.tools
RELENG_TESTS=org.eclipse.galileo.tests

# platform install. One level above what will contain the 'eclipse' directory.
export ECLIPSE_INSTALL=${BUILD_HOME}/prereqs
export ECLIPSE_HOME=${ECLIPSE_INSTALL}/eclipse
export ECLIPSE_INSTALL_TEST=${BUILD_HOME}/tests
export ECLIPSE_HOME_TEST=${ECLIPSE_INSTALL_TEST}/eclipse

# common location to store pre-reqs to avoid re-downloading Platforms, etc.
export PREREQS_CACHE=${BUILD_HOME}/prereqsCache


export ANT_HOME=/shared/common/apache-ant-1.7.1

export JAVA_5_HOME=/shared/common/ibm-java2-ppc-50
export JAVA_6_HOME=/shared/common/ibm-java-ppc-60

export JAVA_HOME=${JAVA_5_HOME}

export JAVA_EXEC_DIR=${JAVA_HOME}/jre/bin/

stagingDirectory=/home/data/httpd/download.eclipse.org/releases/maintenance
releaseDirectory=/home/data/httpd/download.eclipse.org/releases/galileo

# Holds a list of dated directories, each with a build result
BUILD_RESULTS=${BUILD_HOME}/buildresults

#Note: this directory on build.eclipse.org has an alias so that
#it is accessible as a pseudo update site via this URL: 
#http://build.eclipse.org/galileo/maintenance/

#It can not really be used as an update site
#as an update site, since the mirror URLs in the 
#artifacts.jar and content.jar are set to the 
#eventual /releases/galileo. 
#It can be used, however, to make sure categories are 
#showing up correctly. 
