8 if [[ $# -ge 2 ]]; then
12 MKSOURCES="$MKSOURCES $(basename $src)"
19 MKSOURCES="$MKSOURCES $(basename $src)"
24 if [ -z "$1" ] || [ -z "$SOURCES" ]; then
25 echo "Usage: androidbuild.sh com.yourcompany.yourapp < sources.list"
26 echo "Usage: androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c"
27 echo "To copy SDL source instead of symlinking: COPYSOURCE=1 androidbuild.sh ... "
28 echo "You can pass additional arguments to ndk-build with the NDKARGS variable: NDKARGS=\"-s\" androidbuild.sh ..."
34 SDLPATH="$( cd "$(dirname "$0")/.." ; pwd -P )"
36 NDKBUILD=`which ndk-build`
37 if [ -z "$NDKBUILD" ];then
38 echo "Could not find the ndk-build utility, install Android's NDK and add it to the path"
42 ANDROID=`which android`
43 if [ -z "$ANDROID" ];then
44 echo "Could not find the android utility, install Android's SDK and add it to the path"
51 echo "Could not find the ant utility, install Android's SDK and add it to the path"
58 NCPU=`sysctl -n hw.ncpu`
61 if [ -n `which nproc` ]; then
70 BUILDPATH="$SDLPATH/build/$APP"
77 cp -r $SDLPATH/android-project/* $BUILDPATH
80 mkdir -p $BUILDPATH/jni/SDL
81 if [ -z "$COPYSOURCE" ]; then
82 ln -s $SDLPATH/src $BUILDPATH/jni/SDL
83 ln -s $SDLPATH/include $BUILDPATH/jni/SDL
85 cp -r $SDLPATH/src $BUILDPATH/jni/SDL
86 cp -r $SDLPATH/include $BUILDPATH/jni/SDL
89 cp -r $SDLPATH/Android.mk $BUILDPATH/jni/SDL
90 sed -i "s|YourSourceHere.c|$MKSOURCES|g" $BUILDPATH/jni/src/Android.mk
91 sed -i "s|org\.libsdl\.app|$APP|g" $BUILDPATH/AndroidManifest.xml
94 for src in "${SOURCES[@]}"
96 cp $src $BUILDPATH/jni/src
99 # Create an inherited Activity
101 for folder in "${APPARR[@]}"
107 ACTIVITY="${folder}Activity"
108 sed -i "s|SDLActivity|$ACTIVITY|g" $BUILDPATH/AndroidManifest.xml
109 sed -i "s|SDLActivity|$APP|g" $BUILDPATH/build.xml
111 # Fill in a default Activity
112 echo "package $APP;" > "$ACTIVITY.java"
113 echo "import org.libsdl.app.SDLActivity;" >> "$ACTIVITY.java"
114 echo "public class $ACTIVITY extends SDLActivity {}" >> "$ACTIVITY.java"
116 # Update project and build
118 $ANDROID update project --path $BUILDPATH
119 $NDKBUILD -j $NCPUS $NDKARGS
124 APK="$BUILDPATH/bin/$APP-debug.apk"
126 if [ -f "$APK" ]; then
127 echo "Your APK is ready at $APK"
128 echo "To install to your device: "
130 echo "ant debug install"
134 echo "There was an error building the APK"