mtr: Update build.sh (work in progress)
[termux-packages] / build-package.sh
index eb21183..0941f10 100755 (executable)
@@ -17,7 +17,7 @@ test -f $HOME/.termuxrc && . $HOME/.termuxrc
 : ${TERMUX_DEBUG:=""}
 : ${TERMUX_PROCESS_DEB:=""}
 : ${TERMUX_API_LEVEL:="21"}
-: ${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="23.0.3"}
+: ${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="24.0.1"}
 : ${TERMUX_NDK_VERSION:="12"}
 
 # Handle command-line arguments:
@@ -90,13 +90,12 @@ if [ $TERMUX_ARCH = 'all' ]; then
        exit
 fi
 
-echo "termux - building $1 for arch $TERMUX_ARCH..."
-test -t 1 && printf "\033]0;$1...\007"
-
 # We do not put all of build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/ into PATH
 # to avoid stuff like arm-linux-androideabi-ld there to conflict with ones from
 # the standalone toolchain.
 TERMUX_DX=$ANDROID_HOME/build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/dx
+TERMUX_JACK=$ANDROID_HOME/build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/jack.jar
+TERMUX_JILL=$ANDROID_HOME/build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/jill.jar
 
 # We put this after system PATH to avoid picking up toolchain stripped python
 export PATH=$PATH:$TERMUX_STANDALONE_TOOLCHAIN/bin
@@ -150,7 +149,7 @@ elif [ $TERMUX_ARCH = "aarch64" ]; then
        LDFLAGS+=" -Wl,-rpath-link,$TERMUX_PREFIX/lib"
        LDFLAGS+=" -Wl,-rpath-link,$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib"
 elif [ $TERMUX_ARCH = "x86_64" ]; then
-       continue
+       :
 else
        echo "Error: Invalid arch '$TERMUX_ARCH' - support arches are 'arm', 'i686', 'aarch64', 'x86_64'"
        exit 1
@@ -237,6 +236,7 @@ TERMUX_PKG_ESSENTIAL=""
 TERMUX_PKG_CONFLICTS="" # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
 TERMUX_PKG_CONFFILES=""
 TERMUX_PKG_INCLUDE_IN_DEVPACKAGE=""
+TERMUX_PKG_DEVPACKAGE_DEPENDS=""
 # Set if a host build should be done in TERMUX_PKG_HOSTBUILD_DIR:
 TERMUX_PKG_HOSTBUILD=""
 TERMUX_PKG_MAINTAINER="Fredrik Fornwall <fredrik@fornwall.net>"
@@ -275,13 +275,13 @@ termux_download() {
         DESTINATION="$2"
 
         TMPFILE=`mktemp $TERMUX_PKG_TMPDIR/download.XXXXXXXXX`
-        for i in 1 2 3; do
+        for i in 1 2 3 4 5 6; do
                 if curl -L --fail --retry 2 -o "$TMPFILE" "$URL"; then
                         mv "$TMPFILE" "$DESTINATION"
                         return
                 else
                         echo "Download of $1 failed (attempt $i/3)" 1>&2
-                        sleep 6
+                        sleep 45
                 fi
         done
         echo "Failed to download $1 - exiting" 1>&2
@@ -351,8 +351,7 @@ termux_step_extract_package () {
        cd $TERMUX_PKG_TMPDIR
        filename=`basename $TERMUX_PKG_SRCURL`
        file=$TERMUX_PKG_CACHEDIR/$filename
-       # Set "TERMUX_PKG_NO_SRC_CACHE=yes" in package to never cache packages, such as in git builds:
-       test -n ${TERMUX_PKG_NO_SRC_CACHE-""} -o ! -f $file && termux_download $TERMUX_PKG_SRCURL $file
+       test ! -f $file && termux_download $TERMUX_PKG_SRCURL $file
        if [ "x$TERMUX_PKG_FOLDERNAME" = "x" ]; then
                folder=`basename $filename .tar.bz2` && folder=`basename $folder .tar.gz` && folder=`basename $folder .tar.xz` && folder=`basename $folder .tar.lz` && folder=`basename $folder .tgz` && folder=`basename $folder .zip`
                folder=`echo $folder | sed 's/_/-/'` # dpkg uses _ in tar filename, but - in folder
@@ -361,7 +360,7 @@ termux_step_extract_package () {
        fi
        rm -Rf $folder
        if [ ${file##*.} = zip ]; then
-               unzip $file
+               unzip -q $file
        else
                $TERMUX_TAR xf $file
        fi
@@ -557,7 +556,11 @@ termux_step_massage () {
                 _DEVEL_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-dev.subpackage.sh
                 echo TERMUX_SUBPKG_INCLUDE=\"include share/man/man3 lib/pkgconfig share/aclocal $TERMUX_PKG_INCLUDE_IN_DEVPACKAGE\" > $_DEVEL_SUBPACKAGE_FILE
                 echo TERMUX_SUBPKG_DESCRIPTION=\"Development files for ${TERMUX_PKG_NAME}\" >> $_DEVEL_SUBPACKAGE_FILE
-                echo TERMUX_SUBPKG_DEPENDS=\"$TERMUX_PKG_NAME\" >> $_DEVEL_SUBPACKAGE_FILE
+               if [ -n "$TERMUX_PKG_DEVPACKAGE_DEPENDS" ]; then
+                       echo TERMUX_SUBPKG_DEPENDS=\"$TERMUX_PKG_NAME,$TERMUX_PKG_DEVPACKAGE_DEPENDS\" >> $_DEVEL_SUBPACKAGE_FILE
+               else
+                       echo TERMUX_SUBPKG_DEPENDS=\"$TERMUX_PKG_NAME\" >> $_DEVEL_SUBPACKAGE_FILE
+               fi
                if [ x$TERMUX_PKG_CONFLICTS != x ]; then
                        # Assume that dev packages conflicts as well.
                        echo "TERMUX_SUBPKG_CONFLICTS=${TERMUX_PKG_CONFLICTS}-dev" >> $_DEVEL_SUBPACKAGE_FILE
@@ -676,6 +679,14 @@ termux_setup_golang () {
 
 source $TERMUX_PKG_BUILDER_SCRIPT
 
+if [ -n "${TERMUX_PKG_BLACKLISTED_ARCHES:=""}" -a "$TERMUX_PKG_BLACKLISTED_ARCHES" != "${TERMUX_PKG_BLACKLISTED_ARCHES/$TERMUX_ARCH/}" ]; then
+       echo "Skipping building $TERMUX_PKG_NAME for arch $TERMUX_ARCH"
+       exit 0
+fi
+
+echo "termux - building $1 for arch $TERMUX_ARCH..."
+test -t 1 && printf "\033]0;$1...\007"
+
 # Compute full version:
 TERMUX_PKG_FULLVERSION=$TERMUX_PKG_VERSION
 if [ "$TERMUX_PKG_BUILD_REVISION" != "0" -o "$TERMUX_PKG_FULLVERSION" != "${TERMUX_PKG_FULLVERSION/-/}" ]; then