#!/usr/bin/env bash

# common variables used in build.xml script

#
#
#

# It is required to specify a top level directory, that will contain all else involved with build, control and output
BUILD_HOME=/shared/galileo/buckyBuild


# SKIP_MODEL_RETRIEVE should never be set (not even to false) 
# on production machine. You can set when testing local 
# versions you don't want them overwritten by HEAD version.  
# SKIP_MODEL_RETRIEVE=true


# Java should be configured per machine, 
# so this variable point to valid installs

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


# typically the remaining variables not have to be 
# changed on a local, non-production machine,
# as they just "compute" variables based on others

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

# platform install. One level above what will contain the 'eclipse' directory.
ECLIPSE_INSTALL=${BUILD_HOME}/prereqs
# the directory that contains the eclipse executable
ECLIPSE_HOME=${ECLIPSE_INSTALL}/eclipse

ECLIPSE_EXE=${ECLIPSE_HOME}/eclipse


# Holds the results of the build
BUILD_RESULTS=${BUILD_HOME}/buildresults
