155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#!/bin/bash
255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
3aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye# build script for eclipse adt build on the Linux and Mac platforms
455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
515a72769c88031145d275948318d56a827ff68c8Raphael Moll# Usage: sdk/eclipse/scripts/build_plugins <build_version>
655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# It expects environment variable ECLIPSE_HOME to be defined to point to _your_
855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# version of Eclipse RCP (must have the WTP & GEF plugins available too.)
955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
1055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# If ECLIPSE_HOME is not provided, this script will _download_ a reference version
1155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# of Eclipse RCP and install it in a specific location.
1215a72769c88031145d275948318d56a827ff68c8Raphael Moll#
1355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# Other properties, ant scripts that drive the build are defined in ./buildConfig
1455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# Currently, this script will create an update site at ${user.home}/www/no_crawl/android-build
1555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# or at the directory specified using "-d"
1655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
1755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# Known Issues:
1855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# - Build does not properly clean up after itself (build server always executes from
1955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#   a clean state.)
2055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# - Script will fail if current absolute path has spaces in it.
21aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye# - Only linux and OSX are supported for now
2215a72769c88031145d275948318d56a827ff68c8Raphael Moll# - Do NOT manually invoke this script. Instead use the build_server.sh wrapper
2315a72769c88031145d275948318d56a827ff68c8Raphael Moll#   which does some extra preliminary steps (it builds a few libs needed here.)
2455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
2555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
2655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectset -e # abort this script early if any command fails
2755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
2855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
2955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Utility methods --
3015a72769c88031145d275948318d56a827ff68c8Raphael Moll#
3155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
3255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfunction printUsage() {
3355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "Usage: $0 <build_qualifier> [-i] [-d <destination-directory>] [-a <archivePrefix>] "
3455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "<build_qualifier>: build qualifier string"
3555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "-i = build internal site. Otherwise, external site will be built"
3655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "-d = destination directory. Default is $USER/www/no_crawl/. Cannot contain spaces."
3755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "-a = archive prefix. Cannot contain spaces."
3855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project}
3955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
4055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfunction die() {
4155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo $@
4255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  exit 1
4355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project}
4455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
4555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfunction dieWithUsage() {
4655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo $@
4755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo
4855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  printUsage
4955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  exit 1
5055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project}
5155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
5255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
5355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
5455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Setup our custom version of Eclipse --
5555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
5655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
5755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# The dependency on the linux platform comes from a series of environment
5855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# variables that the eclipse ant runner expects. These are defined in the
5955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# build.properties file. We can easily support other platforms but would need
6055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# to override those values in this script.
6155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectHOST=`uname`
62aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbyeif [ "$HOST" == "Linux" ]; then
63aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  BASEOS=linux
64aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  BASEWS=gtk
65aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  BASEARCH=x86
66aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbyeelif [ "$HOST" == "Darwin" ]; then
67aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  BASEOS=macosx
68aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  BASEWS=cocoa
69aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  BASEARCH=x86
70aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbyeelse
71aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  die "ERROR: This script is currently only supported on Linux and MacOSX."
72aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbyefi
73aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye
7455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
75f1d64e2975451e3bbbcd2e62a03a717308db500aRaphael# Make sure this runs from the sdk/eclipse plugin.
7655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectD=`dirname "$0"`
7755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectcd "$D/.."
78f1d64e2975451e3bbbcd2e62a03a717308db500aRaphael[ `basename "$PWD"` == "eclipse" ] || dieWithUsage "Please run this script from the sdk/eclipse directory"
7955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
8055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# check for number of parameters
8155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project[ $# -lt 1 ] && dieWithUsage "ERROR: Not enough parameters"
8255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
8355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# check if ECLIPSE_HOME set (ECLIPSE_HOME is were the "eclipse" binary and the
8455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# "plugins" sub-directory are located)
8555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ -z "$ECLIPSE_HOME" ]; then
8655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  BASE_DIR=/buildbot/eclipse-android
8755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
8855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "ECLIPSE_HOME not set, using $BASE_DIR as default"
8955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
9055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  if [ ! -d "$BASE_DIR" ]; then
9155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    mkdir -p "$BASE_DIR" || die "Please create a directory $BASE_DIR where Eclipse will be installed, i.e. execute 'mkdir -p $BASE_DIR && chown $USER $BASE_DIR'."
9255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  fi
9355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
9455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  # download the version if not available
959c014a83a44a2a09e138d4fa9d70893fdc8ce400Raphael  VERSION="3.6.2"
9655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  BASE_DIR="$BASE_DIR/$VERSION"
9755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  scripts/setup_eclipse.sh -p "$BASE_DIR"
9855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
9955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  ECLIPSE_HOME="$BASE_DIR/eclipse"      # path to installed directory
10055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  PID_FILE="$BASE_DIR/eclipse.pid"
10155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  [ -f "$PID_FILE" ] && ECLIPSE_PID=`cat "$PID_FILE"`
10255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
10355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
10455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "PWD=`pwd`"
10555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "ECLIPSE_HOME=$ECLIPSE_HOME"
10655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
10755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
10855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Site parameters and Build version --
10955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
11055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
11155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectBUILD_VERSION="$1" ; shift
11255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
11355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# parse for build internal site flag. If set, pass in internalSite property to ant scripts
11455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ "-i" == "$1" ]; then
11555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  shift
11655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "Setting for internal site build"
11755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  SITE_PARAM="-DinternalSite=1 -DupdateSiteSource=$PWD/sites/internal"
11855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectelse
11955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  SITE_PARAM="-DupdateSiteSource=$PWD/sites/external"
12055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
12155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
12255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ "-d" == $1 ]; then
12355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  shift
12455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "Setting destination directory to $1"
12555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  SITE_PARAM="$SITE_PARAM -DupdateSiteRoot=$1"
12655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  shift
12755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
12855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
12955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ "-a" == "$1" ]; then
13055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  shift
13155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "Setting archivePrefix to $1"
13255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  SITE_PARAM="$SITE_PARAM -DarchivePrefix=$1"
13355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  shift
13455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
13555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
13655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
13755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
13855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Configuration directory --
13955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
14055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
14155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# The "configuration directory" will hold the workspace for this build.
14255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# If it contains old data the build may fail so we need to clean it first
14355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# and create it if it doesn't exist.
14455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectCONFIG_DIR="../../../out/eclipse-configuration-$BUILD_VERSION"
14555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project[ -d "$CONFIG_DIR" ] && rm -rfv "$CONFIG_DIR"
14655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectmkdir -p "$CONFIG_DIR"
14755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
14855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# The "buildConfig" directory contains our customized ant rules
14955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectBUILDCONFIG="$PWD/buildConfig"
15055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
15155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
15255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
15355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Find Eclipse Launcher --
15455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
15555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
15655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# Get the Eclipse launcher and build script to use
15755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfunction findFirst() {
15855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  for i in "$@"; do
15955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    if [ -f "$i" ]; then
16055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project      echo "$i"
16155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project      return
16255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    fi
16355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  done
16455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project}
16555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
16655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectLAUNCHER=`findFirst "$ECLIPSE_HOME"/plugins/org.eclipse.equinox.launcher_*.jar`
16755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectBUILDFILE=`findFirst "$ECLIPSE_HOME"/plugins/org.eclipse.pde.build_*/scripts/build.xml`
16855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
16955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# make sure we found valid files
17055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ ! -f "$LAUNCHER" ]; then
17155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "Installation Error: Eclipse plugin org.eclipse.equinox.launcher...jar not detected. " \
17255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project       "Found '$LAUNCHER'. Aborting."
17355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  exit 1
17455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
17555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ ! -f "$BUILDFILE" ]; then
17655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  echo "Installation Error: Eclipse build file org.eclipse.pde.build_.../scripts/build.xml " \
17755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project       "not detected. Found '$BUILDFILE'. Aborting."
17855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  exit 1
17955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
18055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
181581b1e36c0363da17c2568118c08bff040aab920Tor Norbye#
182581b1e36c0363da17c2568118c08bff040aab920Tor Norbye# Ensure that the src dir exists since it's empty
183581b1e36c0363da17c2568118c08bff040aab920Tor Norbye#
1843275196176731150a5aa088d9d56b64d99f5dfa4Raphaelmkdir -p $PWD/plugins/com.android.ide.eclipse.adt.overlay/src
18555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
18655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
18755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Print configuration used and actually execute the build --
18855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
18955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
19055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "Eclipse configuration found:"
19155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "  Eclipse Home: $ECLIPSE_HOME"
19255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "  Launcher:     $LAUNCHER"
19355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "  Build File:   $BUILDFILE"
19455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "  Build Config: $BUILDCONFIG"
19555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "  Config Dir:   $CONFIG_DIR"
1969c014a83a44a2a09e138d4fa9d70893fdc8ce400Raphaelecho "  Java:         " $(which java)
1979c014a83a44a2a09e138d4fa9d70893fdc8ce400Raphaeljava -version
19855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
19955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# clean input directories to make sure there's nothing left from previous run
20055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
20155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectrm -fv *.properties *.xml
20255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfind . -name "@*" | xargs rm -rfv
20355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
20455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# Now execute the ant runner
20555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
20658af29178216fafaf0f19d3aac0f74b733503e29Raphael Mollset +e  # don't stop on errors anymore, we want to catch them here
2079c014a83a44a2a09e138d4fa9d70893fdc8ce400Raphaelset -x
208aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye
20955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectjava \
21055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -jar $LAUNCHER \
21155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -data "$CONFIG_DIR" \
21255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -configuration "$CONFIG_DIR" \
21355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -application org.eclipse.ant.core.antRunner \
21455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -buildfile $BUILDFILE \
21555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -Dbuilder=$BUILDCONFIG \
21655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -DbuildDirectory=$PWD \
21755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -DforceContextQualifier=$BUILD_VERSION \
21855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  -DECLIPSE_HOME=$ECLIPSE_HOME \
219aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  -Dbaseos=$BASEOS \
220aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  -Dbasews=$BASEWS \
221aa80cb71bbff31f0646f6ffe78fe5c291b9d2cc3Tor Norbye  -Dbasearch=$BASEARCH \
22255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  $SITE_PARAM
22355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source ProjectRESULT=$?
2249c014a83a44a2a09e138d4fa9d70893fdc8ce400Raphaelset +x
22555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
22655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ "0" != "$RESULT" ]; then
22755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    echo "JAVA died with error code $RESULT"
22855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    echo "Dump of build config logs:"
22955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    for i in "$CONFIG_DIR"/*.log; do
23055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project        if [ -f "$i" ]; then
23155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project            echo "----------------------"
23255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project            echo "--- $i"
23355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project            echo "----------------------"
23455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project            cat "$i"
23555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project            echo
23655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project        fi
23755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project    done
23855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
23955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
24055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
24155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# -- Cleanup
24255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#
24355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
24455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectif [ -n "$ECLIPSE_PID" ] && [ -f "$PID_FILE" ]; then
24555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  rm -fv "$PID_FILE"
24655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project  kill -9 "$ECLIPSE_PID"
24755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfi
24855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
2499eed21e1e09e18f053030dfb21f3c5a7316847eaRaphael Moll# Remove build files left by Eclipse all behind
2509eed21e1e09e18f053030dfb21f3c5a7316847eaRaphael Mollrm -fv *.properties *.xml
2519eed21e1e09e18f053030dfb21f3c5a7316847eaRaphael Mollfind . -name "@*" | xargs rm -rfv
2529eed21e1e09e18f053030dfb21f3c5a7316847eaRaphael Moll
2539eed21e1e09e18f053030dfb21f3c5a7316847eaRaphael Moll
25455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project# we're done!
255