#!/bin/sh
#
# Copyright (C) 2011 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

oatexec=oatexec
invoke_with=

while true; do
  if [ "$1" = "--invoke-with" ]; then
    shift
    invoke_with="$1"
    shift
  elif [ "$1" = "-d" ]; then
    oatexec="oatexecd"
    shift
  elif expr "$1" : "--" >/dev/null 2>&1; then
    echo "unknown option: $1" 1>&2
    exit 1
  else
    break
  fi
done

mkdir -p /tmp/android-data/art-cache
ANDROID_DATA=/tmp/android-data \
ANDROID_ROOT=$ANDROID_HOST_OUT \
LD_LIBRARY_PATH=$ANDROID_HOST_OUT/lib \
$invoke_with $ANDROID_HOST_OUT/bin/$oatexec \
-Xbootclasspath\
:$ANDROID_HOST_OUT/framework/core-hostdex.jar\
:$ANDROID_HOST_OUT/framework/core-junit-hostdex.jar\
:$ANDROID_HOST_OUT/framework/core-tests-hostdex.jar\
:$ANDROID_HOST_OUT/framework/bouncycastle-hostdex.jar\
:$ANDROID_HOST_OUT/framework/apache-xml-hostdex.jar \
$*
