From 4c735a658038c7d894495666cd04f98c461bdbe5 Mon Sep 17 00:00:00 2001 From: Butta Date: Sun, 11 Aug 2019 14:37:03 +0530 Subject: [PATCH] on-device build: Fix up ncurses and ninja, adjust some setup scripts, and add dependency info to scripts/setup-termux.sh. --- packages/ncurses/build.sh | 1 + packages/ninja/build.sh | 8 ++++++-- scripts/build/setup/termux_setup_cmake.sh | 4 ---- scripts/build/setup/termux_setup_ninja.sh | 5 ++++- scripts/build/setup/termux_setup_protobuf.sh | 13 ------------- scripts/setup-termux.sh | 16 ++++++++++------ 6 files changed, 21 insertions(+), 26 deletions(-) diff --git a/packages/ncurses/build.sh b/packages/ncurses/build.sh index 7e4b82637..ec442fd1d 100644 --- a/packages/ncurses/build.sh +++ b/packages/ncurses/build.sh @@ -61,6 +61,7 @@ termux_step_post_make_install() { for file in lib${lib}w.so*; do ln -s $file ${file/w./.} done + rm -f lib${lib}.a for file in lib${lib}w.a; do ln -s $file ${file/w./.} done diff --git a/packages/ninja/build.sh b/packages/ninja/build.sh index 5299392dd..adb0197a6 100644 --- a/packages/ninja/build.sh +++ b/packages/ninja/build.sh @@ -12,8 +12,12 @@ termux_step_configure() { } termux_step_make() { - termux_setup_ninja - ninja -j $TERMUX_MAKE_PROCESSES + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + $TERMUX_PKG_SRCDIR/configure.py --bootstrap + else + termux_setup_ninja + ninja -j $TERMUX_MAKE_PROCESSES + fi } termux_step_make_install() { diff --git a/scripts/build/setup/termux_setup_cmake.sh b/scripts/build/setup/termux_setup_cmake.sh index aa19e1595..331fdba45 100644 --- a/scripts/build/setup/termux_setup_cmake.sh +++ b/scripts/build/setup/termux_setup_cmake.sh @@ -25,10 +25,6 @@ termux_setup_cmake() { echo echo " pkg install cmake" echo - echo "or build it from source with" - echo - echo " ./build-package.sh cmake" - echo exit 1 fi fi diff --git a/scripts/build/setup/termux_setup_ninja.sh b/scripts/build/setup/termux_setup_ninja.sh index eb95bf01b..7b17e05e4 100644 --- a/scripts/build/setup/termux_setup_ninja.sh +++ b/scripts/build/setup/termux_setup_ninja.sh @@ -14,7 +14,10 @@ termux_setup_ninja() { fi export PATH=$NINJA_FOLDER:$PATH else - if [ "$(dpkg-query -W -f '${db:Status-Status}\n' ninja 2>/dev/null)" != "installed" ]; then + local NINJA_PKG_VERSION=$(bash -c ". $TERMUX_SCRIPTDIR/packages/ninja/build.sh; echo \$TERMUX_PKG_VERSION") + if ([ ! -e "$TERMUX_BUILT_PACKAGES_DIRECTORY/ninja" ] || + [ "$(cat "$TERMUX_BUILT_PACKAGES_DIRECTORY/ninja")" != "$NINJA_PKG_VERSION" ]) && + [ "$(dpkg-query -W -f '${db:Status-Status}\n' ninja 2>/dev/null)" != "installed" ]; then echo "Package 'ninja' is not installed." echo "You can install it with" echo diff --git a/scripts/build/setup/termux_setup_protobuf.sh b/scripts/build/setup/termux_setup_protobuf.sh index 0cdf0665c..8c47592e7 100644 --- a/scripts/build/setup/termux_setup_protobuf.sh +++ b/scripts/build/setup/termux_setup_protobuf.sh @@ -17,18 +17,5 @@ termux_setup_protobuf() { fi export PATH=$_PROTOBUF_FOLDER/bin/:$PATH - else - if [ "$(dpkg-query -W -f '${db:Status-Status}\n' protobuf 2>/dev/null)" != "installed" ]; then - echo "Package 'protobuf' is not installed." - echo "You can install it with" - echo - echo " pkg install protobuf" - echo - echo "or build it from source with" - echo - echo " ./build-package.sh libprotobuf" - echo - exit 1 - fi fi } diff --git a/scripts/setup-termux.sh b/scripts/setup-termux.sh index 84e1c3d8c..912e23681 100755 --- a/scripts/setup-termux.sh +++ b/scripts/setup-termux.sh @@ -1,18 +1,22 @@ #!/data/data/com.termux/files/usr/bin/bash +# Tier 1 packages are required by the core build scripts in scripts/build/. +# Tier 2 packages are required to build many packages. +# Some packages are installed by default and aren't labeled here. PACKAGES="autoconf" PACKAGES+=" automake" PACKAGES+=" bc" PACKAGES+=" binutils-gold" PACKAGES+=" bison" PACKAGES+=" bzip2" -PACKAGES+=" clang" +PACKAGES+=" clang" # Tier 1: required to build termux-elf-cleaner, which + # is built first by the core scripts. PACKAGES+=" cmake" PACKAGES+=" coreutils" PACKAGES+=" curl" PACKAGES+=" diffutils" PACKAGES+=" ed" -PACKAGES+=" file" +PACKAGES+=" file" # Tier 1: required by a core script PACKAGES+=" findutils" PACKAGES+=" flex" PACKAGES+=" gawk" @@ -26,13 +30,13 @@ PACKAGES+=" libtool" PACKAGES+=" lzip" PACKAGES+=" lzop" PACKAGES+=" m4" -PACKAGES+=" make" -PACKAGES+=" ninja" +PACKAGES+=" make" # Tier 2: used for all Makefile projects and to build itself +PACKAGES+=" ninja" # Tier 2: used by default to build all CMake projects PACKAGES+=" patch" PACKAGES+=" perl" -PACKAGES+=" pkg-config" +PACKAGES+=" pkg-config" # Tier 2: used to build many packages PACKAGES+=" protobuf" -PACKAGES+=" python" +PACKAGES+=" python" # Tier 1: required for buildorder.py core script PACKAGES+=" python2" PACKAGES+=" rust" PACKAGES+=" sed"