Home | History | Annotate | Download | only in tools
      1 #!/bin/bash
      2 #
      3 # Copyright (C) 2011 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #     http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 
     17 lib=-XXlib:libart.so
     18 invoke_with=
     19 
     20 while true; do
     21   if [ "$1" = "--invoke-with" ]; then
     22     shift
     23     invoke_with="$1"
     24     shift
     25   elif [ "$1" = "-d" ]; then
     26     lib="-XXlib:libartd.so"
     27     shift
     28   elif expr "$1" : "--" >/dev/null 2>&1; then
     29     echo "unknown option: $1" 1>&2
     30     exit 1
     31   else
     32     break
     33   fi
     34 done
     35 
     36 function follow_links() {
     37   file="$1"
     38   while [ -h "$file" ]; do
     39     # On Mac OS, readlink -f doesn't work.
     40     file="$(readlink "$file")"
     41   done
     42   echo "$file"
     43 }
     44 
     45 PROG_NAME="$(follow_links "$BASH_SOURCE")"
     46 PROG_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
     47 ANDROID_BUILD_TOP="$(cd "${PROG_DIR}/../../../../" ; pwd -P)/"
     48 ANDROID_HOST_OUT=$PROG_DIR/..
     49 ANDROID_DATA=$PWD/android-data$$
     50 DALVIKVM_EXECUTABLE=$ANDROID_HOST_OUT/bin/dalvikvm
     51 
     52 function find_libdir() {
     53   if [ "$(readlink "$DALVIKVM_EXECUTABLE")" = "dalvikvm64" ]; then
     54     echo "lib64"
     55   else
     56     echo "lib"
     57   fi
     58 }
     59 
     60 LD_LIBRARY_PATH=$ANDROID_HOST_OUT/"$(find_libdir)"
     61 
     62 mkdir -p $ANDROID_DATA/dalvik-cache/{x86,x86_64}
     63 ANDROID_DATA=$ANDROID_DATA \
     64   ANDROID_ROOT=$ANDROID_HOST_OUT \
     65   LD_LIBRARY_PATH=$LD_LIBRARY_PATH \
     66   $invoke_with $DALVIKVM_EXECUTABLE $lib \
     67     -Ximage:$ANDROID_HOST_OUT/framework/core.art \
     68      "$@"
     69 EXIT_STATUS=$?
     70 rm -rf $ANDROID_DATA
     71 exit $EXIT_STATUS
     72