termux_error_exit "Unsupported arch: $TERMUX_ARCH"
fi
- local TERMUX_GO_VERSION=go1.8.1
+ local TERMUX_GO_VERSION=go1.8.3
local TERMUX_GO_PLATFORM=linux-amd64
local TERMUX_BUILDGO_FOLDER=$TERMUX_COMMON_CACHEDIR/${TERMUX_GO_VERSION}
rm -Rf "$TERMUX_COMMON_CACHEDIR/go" "$TERMUX_BUILDGO_FOLDER"
termux_download https://storage.googleapis.com/golang/${TERMUX_GO_VERSION}.${TERMUX_GO_PLATFORM}.tar.gz \
"$TERMUX_BUILDGO_TAR" \
- a579ab19d5237e263254f1eac5352efcf1d70b9dacadb6d6bb12b0911ede8994
+ 1862f4c3d3907e59b04a757cfda0ea7aa9ef39274af99a784f5be843c80c6772
( cd "$TERMUX_COMMON_CACHEDIR"; tar xf "$TERMUX_BUILDGO_TAR"; mv go "$TERMUX_BUILDGO_FOLDER"; rm "$TERMUX_BUILDGO_TAR" )
}
# Utility function for cmake-built packages to setup a current cmake.
termux_setup_cmake() {
local TERMUX_CMAKE_MAJORVESION=3.8
- local TERMUX_CMAKE_MINORVERSION=1
+ local TERMUX_CMAKE_MINORVERSION=2
local TERMUX_CMAKE_VERSION=$TERMUX_CMAKE_MAJORVESION.$TERMUX_CMAKE_MINORVERSION
local TERMUX_CMAKE_TARNAME=cmake-${TERMUX_CMAKE_VERSION}-Linux-x86_64.tar.gz
local TERMUX_CMAKE_TARFILE=$TERMUX_PKG_TMPDIR/$TERMUX_CMAKE_TARNAME
if [ ! -d "$TERMUX_CMAKE_FOLDER" ]; then
termux_download https://cmake.org/files/v$TERMUX_CMAKE_MAJORVESION/$TERMUX_CMAKE_TARNAME \
"$TERMUX_CMAKE_TARFILE" \
- 10ca0e25b7159a03da0c1ec627e686562dc2a40aad5985fd2088eb684b08e491
+ 33e4851d3219b720f4b64fcf617151168f1bffdf5afad25eb4b7f5f58cee3a08
rm -Rf "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-Linux-x86_64"
tar xf "$TERMUX_CMAKE_TARFILE" -C "$TERMUX_PKG_TMPDIR"
mv "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-Linux-x86_64" \
termux_step_setup_variables() {
: "${ANDROID_HOME:="${HOME}/lib/android-sdk"}"
: "${NDK:="${HOME}/lib/android-ndk"}"
- : "${TERMUX_MAKE_PROCESSES:="4"}"
+ : "${TERMUX_MAKE_PROCESSES:="$(nproc)"}"
: "${TERMUX_TOPDIR:="$HOME/.termux-build"}"
: "${TERMUX_ARCH:="aarch64"}" # arm, aarch64, i686 or x86_64.
: "${TERMUX_PREFIX:="/data/data/com.termux/files/usr"}"
: "${TERMUX_ANDROID_HOME:="/data/data/com.termux/files/home"}"
: "${TERMUX_DEBUG:=""}"
: "${TERMUX_API_LEVEL:="21"}"
- : "${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="25.0.1"}"
- : "${TERMUX_NDK_VERSION:="14"}"
+ : "${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="25.0.3"}"
+ : "${TERMUX_NDK_VERSION:="15"}"
if [ "x86_64" = "$TERMUX_ARCH" ] || [ "aarch64" = "$TERMUX_ARCH" ]; then
TERMUX_ARCH_BITS=64
TERMUX_ELF_CLEANER=$TERMUX_COMMON_CACHEDIR/termux-elf-cleaner
TERMUX_STANDALONE_TOOLCHAIN="$TERMUX_TOPDIR/_lib/toolchain-${TERMUX_ARCH}-ndk${TERMUX_NDK_VERSION}-api${TERMUX_API_LEVEL}"
+ if [ -n "${TERMUX_UNIFIED_HEADERS:=""}" ]; then
+ TERMUX_STANDALONE_TOOLCHAIN+="-unified"
+ fi
# Bump the below version if a change is made in toolchain setup to ensure
# that everyone gets an updated toolchain:
TERMUX_STANDALONE_TOOLCHAIN+="-v17"
if test -e "$TERMUX_DATA_PREVIOUS_BACKUPDIR"; then
termux_error_exit "Directory already exists"
fi
- mv /data/data "$TERMUX_DATA_PREVIOUS_BACKUPDIR"
+ if [ -d /data/data ]; then
+ mv /data/data "$TERMUX_DATA_PREVIOUS_BACKUPDIR"
+ fi
# Restore new one (if any)
if [ -d "$TERMUX_DATA_CURRENT_BACKUPDIR" ]; then
mv "$TERMUX_DATA_CURRENT_BACKUPDIR" /data/data
termux_download "$TERMUX_PKG_SRCURL" "$file" "$TERMUX_PKG_SHA256"
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="${filename%%.t*}" && folder="${folder%%.zip}"
folder="${folder/_/-}" # dpkg uses _ in tar filename, but - in folder
else
folder=$TERMUX_PKG_FOLDERNAME
LDFLAGS+=" -landroid-support"
fi
+ if [ "$TERMUX_PKG_CLANG" = "no" ] && [ -n "${TERMUX_UNIFIED_HEADERS:=""}" ]; then
+ CPPFLAGS+=" -D__ANDROID_API__=$TERMUX_API_LEVEL"
+ fi
+
export ac_cv_func_getpwent=no
export ac_cv_func_getpwnam=no
export ac_cv_func_getpwuid=no
_NDK_ARCHNAME=x86
fi
+ local _extra_arg="--deprecated-headers"
+ if [ -n "${TERMUX_UNIFIED_HEADERS:=""}" ]; then
+ _extra_arg=""
+ fi
"$NDK/build/tools/make_standalone_toolchain.py" \
+ $_extra_arg \
--api "$TERMUX_API_LEVEL" \
--arch $_NDK_ARCHNAME \
--install-dir $_TERMUX_TOOLCHAIN_TMPDIR
termux_error_exit "No toolchain file to override: $FILE_TO_REPLACE"
fi
cp "$TERMUX_SCRIPTDIR/scripts/clang-pie-wrapper" $FILE_TO_REPLACE
- sed -i "s/COMPILER/clang38$plusplus/" $FILE_TO_REPLACE
+ if [ -n "${TERMUX_UNIFIED_HEADERS:=""}" ]; then
+ sed -i "s/COMPILER/COMPILER -D__ANDROID_API__=$TERMUX_API_LEVEL/" $FILE_TO_REPLACE
+ fi
+ sed -i "s/COMPILER/clang50$plusplus/" $FILE_TO_REPLACE
sed -i "s/CLANG_TARGET/$CLANG_TARGET/" $FILE_TO_REPLACE
done
done
cd $_TERMUX_TOOLCHAIN_TMPDIR/sysroot
- for f in $TERMUX_SCRIPTDIR/ndk_patches/*.patch; do
+ local _patches_dir=ndk_patches
+ if [ -n "${TERMUX_UNIFIED_HEADERS:=""}" ]; then
+ _patches_dir="ndk_patches_unified"
+ fi
+ for f in $TERMUX_SCRIPTDIR/$_patches_dir/*.patch; do
sed "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" "$f" | \
sed "s%\@TERMUX_HOME\@%${TERMUX_ANDROID_HOME}%g" | \
patch --silent -p1;
AVOID_GNULIB+=" gl_cv_func_working_mktime=yes"
AVOID_GNULIB+=" gl_cv_func_working_strerror=yes"
AVOID_GNULIB+=" gl_cv_header_working_fcntl_h=yes"
+ AVOID_GNULIB+=" gl_cv_C_locale_sans_EILSEQ=yes"
# NOTE: We do not want to quote AVOID_GNULIB as we want word expansion.
env $AVOID_GNULIB "$TERMUX_PKG_SRCDIR/configure" \
termux_step_setup_toolchain
termux_step_patch_package
termux_step_replace_guess_scripts
-cd "$TERMUX_PKG_BUILDDIR"
+cd "$TERMUX_PKG_SRCDIR"
termux_step_pre_configure
cd "$TERMUX_PKG_BUILDDIR"
termux_step_configure