summaryrefslogtreecommitdiffstats
path: root/tools/buildsteps/android
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tools/buildsteps/android-arm64-v8a/configure-depends18
-rw-r--r--tools/buildsteps/android-arm64-v8a/configure-xbmc5
-rw-r--r--tools/buildsteps/android-arm64-v8a/make-binary-addons29
-rw-r--r--tools/buildsteps/android-arm64-v8a/make-depends9
-rw-r--r--tools/buildsteps/android-arm64-v8a/make-native-depends9
-rw-r--r--tools/buildsteps/android-arm64-v8a/make-xbmc5
-rw-r--r--tools/buildsteps/android-arm64-v8a/package14
-rw-r--r--tools/buildsteps/android-arm64-v8a/prepare-depends15
-rw-r--r--tools/buildsteps/android-arm64-v8a/prepare-xbmc9
-rw-r--r--tools/buildsteps/android-x86_64/configure-depends17
-rw-r--r--tools/buildsteps/android-x86_64/configure-xbmc5
-rw-r--r--tools/buildsteps/android-x86_64/make-binary-addons29
-rw-r--r--tools/buildsteps/android-x86_64/make-depends9
-rw-r--r--tools/buildsteps/android-x86_64/make-native-depends9
-rw-r--r--tools/buildsteps/android-x86_64/make-xbmc5
-rw-r--r--tools/buildsteps/android-x86_64/package14
-rw-r--r--tools/buildsteps/android-x86_64/prepare-depends15
-rw-r--r--tools/buildsteps/android-x86_64/prepare-xbmc9
-rw-r--r--tools/buildsteps/android/configure-depends18
-rw-r--r--tools/buildsteps/android/configure-xbmc5
-rw-r--r--tools/buildsteps/android/make-binary-addons29
-rw-r--r--tools/buildsteps/android/make-depends9
-rw-r--r--tools/buildsteps/android/make-native-depends9
-rw-r--r--tools/buildsteps/android/make-xbmc5
-rw-r--r--tools/buildsteps/android/package14
-rw-r--r--tools/buildsteps/android/prepare-depends15
-rw-r--r--tools/buildsteps/android/prepare-xbmc9
-rw-r--r--tools/buildsteps/androidx86/configure-depends17
-rw-r--r--tools/buildsteps/androidx86/configure-xbmc5
-rw-r--r--tools/buildsteps/androidx86/make-binary-addons29
-rw-r--r--tools/buildsteps/androidx86/make-depends9
-rw-r--r--tools/buildsteps/androidx86/make-native-depends9
-rw-r--r--tools/buildsteps/androidx86/make-xbmc5
-rw-r--r--tools/buildsteps/androidx86/package14
-rw-r--r--tools/buildsteps/androidx86/prepare-depends15
-rw-r--r--tools/buildsteps/androidx86/prepare-xbmc9
36 files changed, 450 insertions, 0 deletions
diff --git a/tools/buildsteps/android-arm64-v8a/configure-depends b/tools/buildsteps/android-arm64-v8a/configure-depends
new file mode 100644
index 0000000..cec12b7
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/configure-depends
@@ -0,0 +1,18 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#the following path must exist on the slave and use the defined scheme here!
+NDK_PATH=$ANDROID_DEV_ROOT/android-ndk-r$NDK_VERSION
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;./configure \
+ --with-tarballs=$TARBALLS \
+ --host=aarch64-linux-android \
+ --with-sdk-path=$SDK_PATH \
+ --with-ndk-path=$NDK_PATH \
+ $(if [ "$NDK_API" != "Default" ]; then echo --with-ndk-api=$NDK_API;fi) \
+ --prefix=$XBMC_DEPENDS_ROOT \
+ $DEBUG_SWITCH
+fi
diff --git a/tools/buildsteps/android-arm64-v8a/configure-xbmc b/tools/buildsteps/android-arm64-v8a/configure-xbmc
new file mode 100644
index 0000000..81c0d3c
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/configure-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+make -C $WORKSPACE/tools/depends/target/cmakebuildsys
diff --git a/tools/buildsteps/android-arm64-v8a/make-binary-addons b/tools/buildsteps/android-arm64-v8a/make-binary-addons
new file mode 100644
index 0000000..3bb9e74
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/make-binary-addons
@@ -0,0 +1,29 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends
+
+#clear the build failed file
+rm -f $WORKSPACE/cmake/$FAILED_BUILD_FILENAME
+
+ALL_BINARY_ADDONS_BUILT="1"
+#only build binary addons when requested by env/jenkins
+if [ "$BUILD_BINARY_ADDONS" == "true" ]
+then
+ for addon in $BINARY_ADDONS
+ do
+ echo "building $addon"
+ git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon
+
+ cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS V=99 VERBOSE=1 || ALL_BINARY_ADDONS_BUILT="0"
+ done
+fi
+
+if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ]
+then
+ tagSuccessFulBuild $WORKSPACE/cmake
+else
+ #mark the build failure in the filesystem but leave jenkins running
+ tagFailedBuild $WORKSPACE/cmake
+fi
diff --git a/tools/buildsteps/android-arm64-v8a/make-depends b/tools/buildsteps/android-arm64-v8a/make-depends
new file mode 100644
index 0000000..c5869b2
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/make-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
+
diff --git a/tools/buildsteps/android-arm64-v8a/make-native-depends b/tools/buildsteps/android-arm64-v8a/make-native-depends
new file mode 100644
index 0000000..c327180
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/make-native-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
+then
+ git clean -xffd $WORKSPACE/tools/depends/native
+ cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
diff --git a/tools/buildsteps/android-arm64-v8a/make-xbmc b/tools/buildsteps/android-arm64-v8a/make-xbmc
new file mode 100644
index 0000000..11d8d70
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/make-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS || make
diff --git a/tools/buildsteps/android-arm64-v8a/package b/tools/buildsteps/android-arm64-v8a/package
new file mode 100644
index 0000000..d1ddf48
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/package
@@ -0,0 +1,14 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+TARGET=apk
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS $TARGET
+
+cd $WORKSPACE
+
+#rename for upload
+#e.x. xbmc-20130314-8c2fb31-Frodo-arm64-v8a.apk
+UPLOAD_FILENAME="kodi-$(getBuildRevDateStr)-arm64-v8a"
+mv kodiapp-arm64-v8a-*.apk $UPLOAD_FILENAME.apk
diff --git a/tools/buildsteps/android-arm64-v8a/prepare-depends b/tools/buildsteps/android-arm64-v8a/prepare-depends
new file mode 100644
index 0000000..b4d02b7
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/prepare-depends
@@ -0,0 +1,15 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#clean without depends for skipping depends build if possible
+#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree
+cd $WORKSPACE;git clean -xfd -e "cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS}
+
+# if depends path has changed - cleanout everything and do a full rebuild
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ #clean up the rest too
+ cd $WORKSPACE;git clean -xffd
+ cd $WORKSPACE/tools/depends/;./bootstrap
+fi
diff --git a/tools/buildsteps/android-arm64-v8a/prepare-xbmc b/tools/buildsteps/android-arm64-v8a/prepare-xbmc
new file mode 100644
index 0000000..29e374b
--- /dev/null
+++ b/tools/buildsteps/android-arm64-v8a/prepare-xbmc
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/android-x86_64/configure-depends b/tools/buildsteps/android-x86_64/configure-depends
new file mode 100644
index 0000000..c27d6d8
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/configure-depends
@@ -0,0 +1,17 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#the following path must exist on the slave and use the defined scheme here!
+NDK_PATH=$ANDROID_DEV_ROOT/android-ndk-r$NDK_VERSION
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;./configure \
+ --with-tarballs=$TARBALLS \
+ --host=x86_64-linux-android \
+ --with-sdk-path=$SDK_PATH \
+ --with-ndk-path=$NDK_PATH \
+ $(if [ "$NDK_API" != "Default" ]; then echo --with-ndk-api=$NDK_API;fi) \
+ --prefix=$XBMC_DEPENDS_ROOT $DEBUG_SWITCH
+fi
diff --git a/tools/buildsteps/android-x86_64/configure-xbmc b/tools/buildsteps/android-x86_64/configure-xbmc
new file mode 100644
index 0000000..81c0d3c
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/configure-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+make -C $WORKSPACE/tools/depends/target/cmakebuildsys
diff --git a/tools/buildsteps/android-x86_64/make-binary-addons b/tools/buildsteps/android-x86_64/make-binary-addons
new file mode 100644
index 0000000..3bb9e74
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/make-binary-addons
@@ -0,0 +1,29 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends
+
+#clear the build failed file
+rm -f $WORKSPACE/cmake/$FAILED_BUILD_FILENAME
+
+ALL_BINARY_ADDONS_BUILT="1"
+#only build binary addons when requested by env/jenkins
+if [ "$BUILD_BINARY_ADDONS" == "true" ]
+then
+ for addon in $BINARY_ADDONS
+ do
+ echo "building $addon"
+ git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon
+
+ cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS V=99 VERBOSE=1 || ALL_BINARY_ADDONS_BUILT="0"
+ done
+fi
+
+if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ]
+then
+ tagSuccessFulBuild $WORKSPACE/cmake
+else
+ #mark the build failure in the filesystem but leave jenkins running
+ tagFailedBuild $WORKSPACE/cmake
+fi
diff --git a/tools/buildsteps/android-x86_64/make-depends b/tools/buildsteps/android-x86_64/make-depends
new file mode 100644
index 0000000..c5869b2
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/make-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
+
diff --git a/tools/buildsteps/android-x86_64/make-native-depends b/tools/buildsteps/android-x86_64/make-native-depends
new file mode 100644
index 0000000..c327180
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/make-native-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
+then
+ git clean -xffd $WORKSPACE/tools/depends/native
+ cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
diff --git a/tools/buildsteps/android-x86_64/make-xbmc b/tools/buildsteps/android-x86_64/make-xbmc
new file mode 100644
index 0000000..11d8d70
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/make-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS || make
diff --git a/tools/buildsteps/android-x86_64/package b/tools/buildsteps/android-x86_64/package
new file mode 100644
index 0000000..b477126
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/package
@@ -0,0 +1,14 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+TARGET=apk
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS $TARGET
+
+cd $WORKSPACE
+
+#rename for upload
+#e.x. xbmc-20130314-8c2fb31-Frodo-x86_64.apk
+UPLOAD_FILENAME="kodi-$(getBuildRevDateStr)-x86_64"
+mv kodiapp-x86_64-*.apk $UPLOAD_FILENAME.apk
diff --git a/tools/buildsteps/android-x86_64/prepare-depends b/tools/buildsteps/android-x86_64/prepare-depends
new file mode 100644
index 0000000..b4d02b7
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/prepare-depends
@@ -0,0 +1,15 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#clean without depends for skipping depends build if possible
+#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree
+cd $WORKSPACE;git clean -xfd -e "cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS}
+
+# if depends path has changed - cleanout everything and do a full rebuild
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ #clean up the rest too
+ cd $WORKSPACE;git clean -xffd
+ cd $WORKSPACE/tools/depends/;./bootstrap
+fi
diff --git a/tools/buildsteps/android-x86_64/prepare-xbmc b/tools/buildsteps/android-x86_64/prepare-xbmc
new file mode 100644
index 0000000..29e374b
--- /dev/null
+++ b/tools/buildsteps/android-x86_64/prepare-xbmc
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/android/configure-depends b/tools/buildsteps/android/configure-depends
new file mode 100644
index 0000000..649ff6d
--- /dev/null
+++ b/tools/buildsteps/android/configure-depends
@@ -0,0 +1,18 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#the following path must exist on the slave and use the defined scheme here!
+NDK_PATH=$ANDROID_DEV_ROOT/android-ndk-r$NDK_VERSION
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;./configure \
+ --with-tarballs=$TARBALLS \
+ --host=arm-linux-androideabi \
+ --with-sdk-path=$SDK_PATH \
+ --with-ndk-path=$NDK_PATH \
+ $(if [ "$NDK_API" != "Default" ]; then echo --with-ndk-api=$NDK_API;fi) \
+ --prefix=$XBMC_DEPENDS_ROOT \
+ $DEBUG_SWITCH
+fi
diff --git a/tools/buildsteps/android/configure-xbmc b/tools/buildsteps/android/configure-xbmc
new file mode 100644
index 0000000..81c0d3c
--- /dev/null
+++ b/tools/buildsteps/android/configure-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+make -C $WORKSPACE/tools/depends/target/cmakebuildsys
diff --git a/tools/buildsteps/android/make-binary-addons b/tools/buildsteps/android/make-binary-addons
new file mode 100644
index 0000000..3bb9e74
--- /dev/null
+++ b/tools/buildsteps/android/make-binary-addons
@@ -0,0 +1,29 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends
+
+#clear the build failed file
+rm -f $WORKSPACE/cmake/$FAILED_BUILD_FILENAME
+
+ALL_BINARY_ADDONS_BUILT="1"
+#only build binary addons when requested by env/jenkins
+if [ "$BUILD_BINARY_ADDONS" == "true" ]
+then
+ for addon in $BINARY_ADDONS
+ do
+ echo "building $addon"
+ git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon
+
+ cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS V=99 VERBOSE=1 || ALL_BINARY_ADDONS_BUILT="0"
+ done
+fi
+
+if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ]
+then
+ tagSuccessFulBuild $WORKSPACE/cmake
+else
+ #mark the build failure in the filesystem but leave jenkins running
+ tagFailedBuild $WORKSPACE/cmake
+fi
diff --git a/tools/buildsteps/android/make-depends b/tools/buildsteps/android/make-depends
new file mode 100644
index 0000000..c5869b2
--- /dev/null
+++ b/tools/buildsteps/android/make-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
+
diff --git a/tools/buildsteps/android/make-native-depends b/tools/buildsteps/android/make-native-depends
new file mode 100644
index 0000000..c327180
--- /dev/null
+++ b/tools/buildsteps/android/make-native-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
+then
+ git clean -xffd $WORKSPACE/tools/depends/native
+ cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
diff --git a/tools/buildsteps/android/make-xbmc b/tools/buildsteps/android/make-xbmc
new file mode 100644
index 0000000..11d8d70
--- /dev/null
+++ b/tools/buildsteps/android/make-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS || make
diff --git a/tools/buildsteps/android/package b/tools/buildsteps/android/package
new file mode 100644
index 0000000..cbe3607
--- /dev/null
+++ b/tools/buildsteps/android/package
@@ -0,0 +1,14 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+TARGET=apk
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS $TARGET
+
+cd $WORKSPACE
+
+#rename for upload
+#e.x. xbmc-20130314-8c2fb31-Frodo-armeabi-v7a.apk
+UPLOAD_FILENAME="kodi-$(getBuildRevDateStr)-armeabi-v7a"
+mv kodiapp-armeabi-*.apk $UPLOAD_FILENAME.apk
diff --git a/tools/buildsteps/android/prepare-depends b/tools/buildsteps/android/prepare-depends
new file mode 100644
index 0000000..b4d02b7
--- /dev/null
+++ b/tools/buildsteps/android/prepare-depends
@@ -0,0 +1,15 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#clean without depends for skipping depends build if possible
+#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree
+cd $WORKSPACE;git clean -xfd -e "cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS}
+
+# if depends path has changed - cleanout everything and do a full rebuild
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ #clean up the rest too
+ cd $WORKSPACE;git clean -xffd
+ cd $WORKSPACE/tools/depends/;./bootstrap
+fi
diff --git a/tools/buildsteps/android/prepare-xbmc b/tools/buildsteps/android/prepare-xbmc
new file mode 100644
index 0000000..29e374b
--- /dev/null
+++ b/tools/buildsteps/android/prepare-xbmc
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/androidx86/configure-depends b/tools/buildsteps/androidx86/configure-depends
new file mode 100644
index 0000000..9fb0e20
--- /dev/null
+++ b/tools/buildsteps/androidx86/configure-depends
@@ -0,0 +1,17 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#the following path must exist on the slave and use the defined scheme here!
+NDK_PATH=$ANDROID_DEV_ROOT/android-ndk-r$NDK_VERSION
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;./configure \
+ --with-tarballs=$TARBALLS \
+ --host=i686-linux-android \
+ --with-sdk-path=$SDK_PATH \
+ --with-ndk-path=$NDK_PATH \
+ $(if [ "$NDK_API" != "Default" ]; then echo --with-ndk-api=$NDK_API;fi) \
+ --prefix=$XBMC_DEPENDS_ROOT $DEBUG_SWITCH
+fi
diff --git a/tools/buildsteps/androidx86/configure-xbmc b/tools/buildsteps/androidx86/configure-xbmc
new file mode 100644
index 0000000..81c0d3c
--- /dev/null
+++ b/tools/buildsteps/androidx86/configure-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+make -C $WORKSPACE/tools/depends/target/cmakebuildsys
diff --git a/tools/buildsteps/androidx86/make-binary-addons b/tools/buildsteps/androidx86/make-binary-addons
new file mode 100644
index 0000000..3bb9e74
--- /dev/null
+++ b/tools/buildsteps/androidx86/make-binary-addons
@@ -0,0 +1,29 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends
+
+#clear the build failed file
+rm -f $WORKSPACE/cmake/$FAILED_BUILD_FILENAME
+
+ALL_BINARY_ADDONS_BUILT="1"
+#only build binary addons when requested by env/jenkins
+if [ "$BUILD_BINARY_ADDONS" == "true" ]
+then
+ for addon in $BINARY_ADDONS
+ do
+ echo "building $addon"
+ git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon
+
+ cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS V=99 VERBOSE=1 || ALL_BINARY_ADDONS_BUILT="0"
+ done
+fi
+
+if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ]
+then
+ tagSuccessFulBuild $WORKSPACE/cmake
+else
+ #mark the build failure in the filesystem but leave jenkins running
+ tagFailedBuild $WORKSPACE/cmake
+fi
diff --git a/tools/buildsteps/androidx86/make-depends b/tools/buildsteps/androidx86/make-depends
new file mode 100644
index 0000000..c5869b2
--- /dev/null
+++ b/tools/buildsteps/androidx86/make-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi
+
diff --git a/tools/buildsteps/androidx86/make-native-depends b/tools/buildsteps/androidx86/make-native-depends
new file mode 100644
index 0000000..33cc579
--- /dev/null
+++ b/tools/buildsteps/androidx86/make-native-depends
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
+then
+ git clean -xffd $WORKSPACE/tools/depends/native
+ cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
+fi \ No newline at end of file
diff --git a/tools/buildsteps/androidx86/make-xbmc b/tools/buildsteps/androidx86/make-xbmc
new file mode 100644
index 0000000..11d8d70
--- /dev/null
+++ b/tools/buildsteps/androidx86/make-xbmc
@@ -0,0 +1,5 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS || make
diff --git a/tools/buildsteps/androidx86/package b/tools/buildsteps/androidx86/package
new file mode 100644
index 0000000..4e8ca13
--- /dev/null
+++ b/tools/buildsteps/androidx86/package
@@ -0,0 +1,14 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+TARGET=apk
+
+cd $WORKSPACE/build;make -j$BUILDTHREADS $TARGET
+
+cd $WORKSPACE
+
+#rename for upload
+#e.x. xbmc-20130314-8c2fb31-Frodo-x86.apk
+UPLOAD_FILENAME="kodi-$(getBuildRevDateStr)-x86"
+mv kodiapp-x86-*.apk $UPLOAD_FILENAME.apk
diff --git a/tools/buildsteps/androidx86/prepare-depends b/tools/buildsteps/androidx86/prepare-depends
new file mode 100644
index 0000000..b4d02b7
--- /dev/null
+++ b/tools/buildsteps/androidx86/prepare-depends
@@ -0,0 +1,15 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#clean without depends for skipping depends build if possible
+#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree
+cd $WORKSPACE;git clean -xfd -e "cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS}
+
+# if depends path has changed - cleanout everything and do a full rebuild
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+then
+ #clean up the rest too
+ cd $WORKSPACE;git clean -xffd
+ cd $WORKSPACE/tools/depends/;./bootstrap
+fi
diff --git a/tools/buildsteps/androidx86/prepare-xbmc b/tools/buildsteps/androidx86/prepare-xbmc
new file mode 100644
index 0000000..29e374b
--- /dev/null
+++ b/tools/buildsteps/androidx86/prepare-xbmc
@@ -0,0 +1,9 @@
+WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
+XBMC_PLATFORM_DIR=android
+. $WORKSPACE/tools/buildsteps/defaultenv
+
+#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
+. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons