112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden#!/bin/bash 212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# 312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# Copyright (C) 2009 The Android Open Source Project 412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# 512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# Licensed under the Apache License, Version 2.0 (the "License"); 612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# you may not use this file except in compliance with the License. 712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# You may obtain a copy of the License at 812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# 912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# http://www.apache.org/licenses/LICENSE-2.0 1012d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# 1112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# Unless required by applicable law or agreed to in writing, software 1212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# distributed under the License is distributed on an "AS IS" BASIS, 1312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# See the License for the specific language governing permissions and 1512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# limitations under the License. 1612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden 1712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# Set up prog to be the path of this script, including following symlinks, 1812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# and set up progdir to be the fully-qualified pathname of its directory. 1912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenprog="$0" 2012d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenwhile [ -h "${prog}" ]; do 2112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden newProg=`/bin/ls -ld "${prog}"` 2212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden newProg=`expr "${newProg}" : ".* -> \(.*\)$"` 2312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden if expr "x${newProg}" : 'x/' >/dev/null; then 2412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden prog="${newProg}" 2512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden else 2612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden progdir=`dirname "${prog}"` 2712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden prog="${progdir}/${newProg}" 2812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden fi 2912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddendone 3012d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenoldwd=`pwd` 3112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenprogdir=`dirname "${prog}"` 3212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddencd "${progdir}" 3312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenprogdir=`pwd` 3412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenprog="${progdir}"/`basename "${prog}"` 3512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddencd "${oldwd}" 3612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden 3712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenjarfile=dexdeps.jar 3812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenlibdir="$progdir" 3912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenif [ ! -r "$libdir/$jarfile" ] 4012d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenthen 4112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden libdir=`dirname "$progdir"`/tools/lib 4212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenfi 4312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenif [ ! -r "$libdir/$jarfile" ] 4412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenthen 4512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden libdir=`dirname "$progdir"`/framework 4612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenfi 4712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenif [ ! -r "$libdir/$jarfile" ] 4812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenthen 4912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden echo `basename "$prog"`": can't find $jarfile" 5012d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden exit 1 5112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenfi 5212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden 5312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenjavaOpts="" 5412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden 5512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# Alternatively, this will extract any parameter "-Jxxx" from the command line 5612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden# and pass them to Java (instead of to dexdeps). 5712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenwhile expr "x$1" : 'x-J' >/dev/null; do 5812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden opt=`expr "$1" : '-J\(.*\)'` 5912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden javaOpts="${javaOpts} -${opt}" 6012d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden shift 6112d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddendone 6212d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden 6312d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenif [ "$OSTYPE" = "cygwin" ] ; then 6412d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden jarpath=`cygpath -w "$libdir/$jarfile"` 6512d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenelse 6612d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden jarpath="$libdir/$jarfile" 6712d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenfi 6812d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFadden 6912d6d4c0ea192b6a924df0df1e3b14ce1ed5793bAndy McFaddenexec java $javaOpts -jar "$jarpath" "$@" 70