diff --git a/build-package.sh b/build-package.sh index f6f9620f43..b1033f0319 100755 --- a/build-package.sh +++ b/build-package.sh @@ -107,6 +107,10 @@ source "$TERMUX_SCRIPTDIR/scripts/build/termux_get_repo_files.sh" # shellcheck source=scripts/build/termux_step_get_dependencies.sh source "$TERMUX_SCRIPTDIR/scripts/build/termux_step_get_dependencies.sh" +# Handle config scripts that needs to be run during build. Not to be overridden by packages. +# shellcheck source=scripts/build/termux_step_override_config_scripts.sh +source "$TERMUX_SCRIPTDIR/scripts/build/termux_step_override_config_scripts.sh" + # Remove old src and build folders and create new ones # shellcheck source=scripts/build/termux_step_setup_build_folders.sh source "$TERMUX_SCRIPTDIR/scripts/build/termux_step_setup_build_folders.sh" @@ -437,6 +441,7 @@ for ((i=0; i<${#PACKAGE_LIST[@]}; i++)); do if [ "$TERMUX_CONTINUE_BUILD" == "false" ]; then termux_step_get_dependencies + termux_step_override_config_scripts fi termux_step_create_timestamp_file diff --git a/scripts/build/termux_step_override_config_scripts.sh b/scripts/build/termux_step_override_config_scripts.sh new file mode 100644 index 0000000000..f6af023d61 --- /dev/null +++ b/scripts/build/termux_step_override_config_scripts.sh @@ -0,0 +1,23 @@ +termux_step_override_config_scripts() { + if [ "$TERMUX_INSTALL_DEPS" == true ] && [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libllvm/}" ]; then + LLVM_DEFAULT_TARGET_TRIPLE=$TERMUX_HOST_PLATFORM + if [ $TERMUX_ARCH = "arm" ]; then + LLVM_TARGET_ARCH=ARM + elif [ $TERMUX_ARCH = "aarch64" ]; then + LLVM_TARGET_ARCH=AArch64 + elif [ $TERMUX_ARCH = "i686" ]; then + LLVM_TARGET_ARCH=X86 + elif [ $TERMUX_ARCH = "x86_64" ]; then + LLVM_TARGET_ARCH=X86 + fi + LIBLLVM_VERSION=$(. $TERMUX_SCRIPTDIR/packages/libllvm/build.sh; echo $TERMUX_PKG_VERSION) + sed $TERMUX_SCRIPTDIR/packages/libllvm/llvm-config.in \ + -e "s|@TERMUX_PKG_VERSION@|$LIBLLVM_VERSION|g" \ + -e "s|@TERMUX_PREFIX@|$TERMUX_PREFIX|g" \ + -e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_TOPDIR/libllvm/src|g" \ + -e "s|@LLVM_TARGET_ARCH@|$LLVM_TARGET_ARCH|g" \ + -e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|$LLVM_DEFAULT_TARGET_TRIPLE|g" \ + -e "s|@TERMUX_ARCH@|$TERMUX_ARCH|g" > $TERMUX_PREFIX/bin/llvm-config + chmod 755 $TERMUX_PREFIX/bin/llvm-config + fi +} diff --git a/scripts/build/termux_step_start_build.sh b/scripts/build/termux_step_start_build.sh index c263ede4ac..7580cd6bd9 100644 --- a/scripts/build/termux_step_start_build.sh +++ b/scripts/build/termux_step_start_build.sh @@ -71,28 +71,6 @@ termux_step_start_build() { return fi - if [ "$TERMUX_INSTALL_DEPS" == true ] && [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libllvm/}" ]; then - LLVM_DEFAULT_TARGET_TRIPLE=$TERMUX_HOST_PLATFORM - if [ $TERMUX_ARCH = "arm" ]; then - LLVM_TARGET_ARCH=ARM - elif [ $TERMUX_ARCH = "aarch64" ]; then - LLVM_TARGET_ARCH=AArch64 - elif [ $TERMUX_ARCH = "i686" ]; then - LLVM_TARGET_ARCH=X86 - elif [ $TERMUX_ARCH = "x86_64" ]; then - LLVM_TARGET_ARCH=X86 - fi - LIBLLVM_VERSION=$(. $TERMUX_SCRIPTDIR/packages/libllvm/build.sh; echo $TERMUX_PKG_VERSION) - sed $TERMUX_SCRIPTDIR/packages/libllvm/llvm-config.in \ - -e "s|@TERMUX_PKG_VERSION@|$LIBLLVM_VERSION|g" \ - -e "s|@TERMUX_PREFIX@|$TERMUX_PREFIX|g" \ - -e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_TOPDIR/libllvm/src|g" \ - -e "s|@LLVM_TARGET_ARCH@|$LLVM_TARGET_ARCH|g" \ - -e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|$LLVM_DEFAULT_TARGET_TRIPLE|g" \ - -e "s|@TERMUX_ARCH@|$TERMUX_ARCH|g" > $TERMUX_PREFIX/bin/llvm-config - chmod 755 $TERMUX_PREFIX/bin/llvm-config - fi - # Make $TERMUX_PREFIX/bin/sh executable on the builder, so that build # scripts can assume that it works on both builder and host later on: [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && ln -sf /bin/sh "$TERMUX_PREFIX/bin/sh"