| #! /bin/bash | 
 | # | 
 | # Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file | 
 | # for details. All rights reserved. Use of this source code is governed by a | 
 | # BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | set -e | 
 |  | 
 | if [ -z "$R8_HOME" ]; then | 
 |   R8_HOME="$(realpath $(dirname ${BASH_SOURCE[0]})/..)" | 
 | fi | 
 |  | 
 | TOOLSDIR=$R8_HOME/tools/linux | 
 |  | 
 | function usage { | 
 |   echo "Usage: $(basename $0) <dex files>" | 
 |   exit 1 | 
 | } | 
 |  | 
 | # Process options. | 
 | while [ $# -gt 0 ]; do | 
 |   case $1 in | 
 |     -h) | 
 |       usage | 
 |       ;; | 
 |     *) | 
 |       break | 
 |       ;; | 
 |   esac | 
 | done | 
 |  | 
 | if [ $# -eq 0 ]; then | 
 |   usage | 
 | fi | 
 |  | 
 | TMPDIR=$(mktemp -d "${TMP:-/tmp/}$(basename $0).XXXXXXXXXXXX") | 
 | OATFILE=$TMPDIR/all.oat | 
 |  | 
 | if [ $# -gt 1 ]; then | 
 |   JARFILE="$TMPDIR/all.jar" | 
 |   for f in "$@"; do | 
 |     IR=$(dirname "$f") | 
 |     BASE=$(basename "$f") | 
 |     EXT=$(echo "$BASE" | cut -d '.' -f 2) | 
 |     if [ "$EXT" = "dex" ]; then | 
 |       (cd "$DIR" && zip "$JARFILE" "$BASE") | 
 |     else | 
 |       echo "Warning: ignoring non-dex file argument when dex2oat'ing multiple files." | 
 |     fi | 
 |   done | 
 | else | 
 |   JARFILE="$1" | 
 | fi | 
 |  | 
 | LD_LIBRARY_PATH=$TOOLSDIR/art/lib $TOOLSDIR/art/bin/dex2oat \ | 
 |   --android-root=$TOOLSDIR/art/product/angler \ | 
 |   --runtime-arg -Xnorelocate \ | 
 |   --boot-image=$TOOLSDIR/art/product/angler/system/framework/boot.art \ | 
 |   --dex-file=$JARFILE \ | 
 |   --oat-file=$OATFILE \ | 
 |   --instruction-set=arm64 | 
 |  | 
 | rm -rf $TMPDIR |