jack: Download ant and use that one
[termux-packages] / packages / jack / build.sh
index 35584fd..fba779f 100755 (executable)
@@ -1,22 +1,46 @@
-# Issue:
-# java.lang.NoClassDefFoundError: org.eclipse.jdt.internal.compiler.apt.dispatch.BatchProcessingEnvImpl
-# perhaps because BatchProcessingEnvImpl uses javax.tools which does not exist on android?
 TERMUX_PKG_HOMEPAGE=http://tools.android.com/tech-docs/jackandjill
 TERMUX_PKG_DESCRIPTION="Java Android Compiler Kit"
-TERMUX_PKG_VERSION="1.1-mr2"
-TERMUX_PKG_BUILD_REVISION=3
+# Use the date of the below git commit as the version number:
+TERMUX_PKG_VERSION=20161003
+TERMUX_PKG_SRCURL=https://android.googlesource.com/toolchain/jack/+archive/08a4eb10dafa25e2d9be4026010bd41714ed0b31.tar.gz
 TERMUX_PKG_PLATFORM_INDEPENDENT=true
 
+termux_step_extract_package() {
+       mkdir -p $TERMUX_PKG_SRCDIR
+       cd $TERMUX_PKG_SRCDIR
+
+       filename=`basename $TERMUX_PKG_SRCURL`
+       file=$TERMUX_PKG_CACHEDIR/$filename
+       test ! -f $file && termux_download $TERMUX_PKG_SRCURL $file $TERMUX_PKG_SHA256
+       tar xf $file
+
+       rm sched/src/com/android/sched/util/log/tracer/probe/GcDurationProbe.java
+}
+
 termux_step_make () {
-       JACK_JAR=$ANDROID_HOME/build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/jack.jar
-       JILL_JAR=$ANDROID_HOME/build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/jill.jar
+       local ANT_VERSION=1.9.7
+       local ANT_TAR=$TERMUX_PKG_CACHEDIR/ant-${ANT_VERSION}.bin.tar.bz2
+       if [ ! -f $ANT_TAR ]; then
+               termux_download http://apache.mirrors.spacedump.net//ant/binaries/apache-ant-1.9.7-bin.tar.bz2 \
+                               $ANT_TAR \
+                               be2ff3026cc655dc002bbcce100bd6724d448c63f702aa82b6d9899b22db7808
+       fi
+       cd $TERMUX_PKG_TMPDIR
+       tar xf $ANT_TAR
+       local ANT=$PWD/apache-ant-${ANT_VERSION}/bin/ant
+
+       cd $TERMUX_PKG_SRCDIR
+       $ANT jack jill
+       TERMUX_JACK=$PWD/jack/dist/jack.jar
+       TERMUX_JILL=$PWD/jill/dist/jill.jar
 
        # Create $USR/share/dex for dex files, and $USR/share/jack for .jack library files produced by jill:
-        mkdir -p $TERMUX_PREFIX/share/{dex,jack}
-       $ANDROID_HOME/build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/dx \
+       mkdir -p $TERMUX_PREFIX/share/{dex,jack}
+       $TERMUX_DX \
+               -JXmx4096M --num-threads=4 \
                --dex \
                --output=$TERMUX_PREFIX/share/dex/jack.jar \
-               $JACK_JAR
+               $TERMUX_JACK
 
        cd $TERMUX_PKG_TMPDIR
        rm -rf android-jar
@@ -24,13 +48,13 @@ termux_step_make () {
        cd android-jar
 
         # We need the android.jar clases in jill format (.jack extension) for jack to compile against.
-       cp $ANDROID_HOME/platforms/android-21/android.jar .
+       cp $ANDROID_HOME/platforms/android-23/android.jar .
        # Remove resources not needed for compilation to reduce size:
-       unzip android.jar
+       unzip -q android.jar
        rm -Rf android.jar resources.arsc res assets
-       zip -r android.jar .
+       zip -r -q android.jar .
 
-       java -jar $JILL_JAR $TERMUX_PKG_TMPDIR/android-jar/android.jar --output $TERMUX_PREFIX/share/jack/android.jack
+       java -jar $TERMUX_JILL $TERMUX_PKG_TMPDIR/android-jar/android.jar --output $TERMUX_PREFIX/share/jack/android.jack
        mkdir -p $TERMUX_PREFIX/bin
        install $TERMUX_PKG_BUILDER_DIR/jack.sh $TERMUX_PREFIX/bin/jack
        perl -p -i -e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PREFIX/bin/jack