1 #!/bin/sh 2 # 3 # Copyright (C) 2010 The Android Open Source Project 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 # 17 # This shell script is a wrapper to launch the NDK build from the 18 # command-line inside an application project path. 19 # 20 # Typical usage is: 21 # 22 # cd $PROJECT_PATH 23 # ndk-build 24 # 25 # Assuming that the Android NDK root path is in your PATH. However, 26 # you can also invoke it directly as: 27 # 28 # $NDK_ROOT/ndk-build 29 # 30 # This really is a tiny wrapper around GNU Make. 31 # 32 33 # Ensure we get the full path of this script's directory 34 # this is needed if the caller uses the -C <path> GNU Make 35 # option, as in: 36 # 37 # cd ndk 38 # ./ndk-build -C <project-path> 39 # 40 PROGDIR=`dirname $0` 41 PROGDIR=`cd $PROGDIR && pwd` 42 43 # if GNUMAKE is not defined in the environment, use 'make' 44 if [ -z "$GNUMAKE" ] ; then 45 GNUMAKE=make 46 fi 47 48 # On Windows, when running under cygwin, check that we are 49 # invoking a cygwin-compatible GNU Make binary. It is unfortunately 50 # common for app developers to have another non-cygwin compatible 51 # 52 if [ "$OSTYPE" = "cygwin" ] ; then 53 PROGDIR_MIXED=`cygpath -m $PROGDIR` 54 GNUMAKE=`cygpath -u $GNUMAKE` 55 CYGWIN_GNUMAKE=`$GNUMAKE -f $PROGDIR_MIXED/build/core/check-cygwin-make.mk 2>&1` 56 if [ $? != 0 ] ; then 57 echo "ERROR: You are using a non-Cygwin compatible Make program." 58 echo "Currently using: `cygpath -m $GNUMAKE`" 59 echo "" 60 echo "To solve the issue, follow these steps:" 61 echo "" 62 echo "1. Ensure that the Cygwin 'make' package is installed." 63 echo " NOTE: You will need GNU Make 3.81 or later!" 64 echo "" 65 echo "2. Define the GNUMAKE environment variable to point to it, as in:" 66 echo "" 67 echo " export GNUMAKE=/usr/bin/make" 68 echo "" 69 echo "3. Call 'ndk-build' again." 70 echo "" 71 exit 1 72 fi 73 fi 74 75 $GNUMAKE -f $PROGDIR/build/core/build-local.mk $@ 76