18e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#!/bin/bash
28e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#
38e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# Copyright (C) 2012 The Android Open Source Project
48e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#
58e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# Licensed under the Apache License, Version 2.0 (the "License");
68e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# you may not use this file except in compliance with the License.
78e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# You may obtain a copy of the License at
88e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#
98e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#      http://www.apache.org/licenses/LICENSE-2.0
108e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#
118e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# Unless required by applicable law or agreed to in writing, software
128e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# distributed under the License is distributed on an "AS IS" BASIS,
138e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
148e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# See the License for the specific language governing permissions and
158e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# limitations under the License.
168e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell#
178e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
188e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# This script is useful for learning the path of the active toolchain
198e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# components within the ndk.
208e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# Run this script without parameters, for usage hints.
218e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
228e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# show usage if no parameter given
238e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. BissellWHICH=$1
248e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissellif [ "$WHICH" == "" ]; then
258e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell  echo "USAGE: ndk-which <tool>"
268e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell  echo "where tool is 'gdb', 'gcc', 'objdump', etc."
278e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell  exit 1
288e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissellfi
298e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
308e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. BissellMYNDKDIR=`dirname $0`
318e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
328e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# create a temporary skeleton project so that we can leverage build-local.mk
332826d4ee20f857e066761fe76b05931c4a1bc2f6Jamey HicksTMPDIR=/tmp/ndk-which-$$
342826d4ee20f857e066761fe76b05931c4a1bc2f6Jamey Hicksmkdir -p $TMPDIR/jni
352826d4ee20f857e066761fe76b05931c4a1bc2f6Jamey Hickscat >$TMPDIR/jni/Android.mk << "END_OF_FILE"
368e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissellinclude $(CLEAR_VARS)
378e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. BissellEND_OF_FILE
388e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
398e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# 'get_build_var_for_abi' was copied from ndk-gdb
408e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissellget_build_var_for_abi ()
418e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell{
428e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell    if [ -z "$GNUMAKE" ] ; then
438e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell        GNUMAKE=make
448e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell    fi
452826d4ee20f857e066761fe76b05931c4a1bc2f6Jamey Hicks    NDK_PROJECT_PATH=$TMPDIR $GNUMAKE --no-print-dir -f $MYNDKDIR/build/core/build-local.mk DUMP_$1 APP_ABI=$2
468e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell}
478e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
488e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. BissellTOOLCHAIN_PREFIX=`get_build_var_for_abi TOOLCHAIN_PREFIX armeabi`
492826d4ee20f857e066761fe76b05931c4a1bc2f6Jamey Hicksrm -Rf $TMPDIR
508e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
518e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# fully qualified file name
528e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. BissellFQFN=${TOOLCHAIN_PREFIX}$WHICH
538e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
548e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell# use the host system's 'which' to decide/report if the file exists or not, and is executable
558e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissellwhich "$FQFN"
568e181482ef8e4a11e64f3ecee2df9d08baf6bafeRyan V. Bissell
57