blob: 5a9fd5be78c285ab83a67023e6a317491da71ec5 [file] [log] [blame]
Mads Ager418d1ca2017-05-22 09:35:49 +02001#! /bin/bash
2#
3# Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
4# for details. All rights reserved. Use of this source code is governed by a
5# BSD-style license that can be found in the LICENSE file.
6
7set -e
8
9if [ -z "$R8_HOME" ]; then
10 R8_HOME="$(realpath $(dirname ${BASH_SOURCE[0]})/..)"
11fi
12
13TOOLSDIR=$R8_HOME/tools/linux
14
15function usage {
16 echo "Usage: $(basename $0) <dex files>"
17 exit 1
18}
19
20# Process options.
21while [ $# -gt 0 ]; do
22 case $1 in
23 -h)
24 usage
25 ;;
26 *)
27 break
28 ;;
29 esac
30done
31
32if [ $# -eq 0 ]; then
33 usage
34fi
35
36TMPDIR=$(mktemp -d "${TMP:-/tmp/}$(basename $0).XXXXXXXXXXXX")
37OATFILE=$TMPDIR/all.oat
38
39if [ $# -gt 1 ]; then
40 JARFILE="$TMPDIR/all.jar"
41 for f in "$@"; do
42 IR=$(dirname "$f")
43 BASE=$(basename "$f")
44 EXT=$(echo "$BASE" | cut -d '.' -f 2)
45 if [ "$EXT" = "dex" ]; then
46 (cd "$DIR" && zip "$JARFILE" "$BASE")
47 else
48 echo "Warning: ignoring non-dex file argument when dex2oat'ing multiple files."
49 fi
50 done
51else
52 JARFILE="$1"
53fi
54
55LD_LIBRARY_PATH=$TOOLSDIR/art/lib $TOOLSDIR/art/bin/dex2oat \
56 --android-root=$TOOLSDIR/art/product/angler \
57 --runtime-arg -Xnorelocate \
58 --boot-image=$TOOLSDIR/art/product/angler/system/framework/boot.art \
59 --dex-file=$JARFILE \
60 --oat-file=$OATFILE \
61 --instruction-set=arm64 \
62 --compiler-filter=interpret-only
63
64rm -rf $TMPDIR