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