diff --git a/packages/erlang/build.sh b/packages/erlang/build.sh index 31844d3c84..f2cbf47734 100644 --- a/packages/erlang/build.sh +++ b/packages/erlang/build.sh @@ -2,9 +2,9 @@ TERMUX_PKG_HOMEPAGE=https://www.erlang.org/ TERMUX_PKG_DESCRIPTION="General-purpose concurrent functional programming language" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION="26.1.2" +TERMUX_PKG_VERSION="26.2" TERMUX_PKG_SRCURL=https://github.com/erlang/otp/archive/OTP-$TERMUX_PKG_VERSION.tar.gz -TERMUX_PKG_SHA256=56042d53b30863d4e720ebf463d777f0502f8c986957fc3a9e63dae870bbafe0 +TERMUX_PKG_SHA256=25675a40f9953f39440046b5e325cf992b29323b038d147f3533435a2be547e6 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_UPDATE_VERSION_REGEXP='\d+(\.\d+)+' TERMUX_PKG_DEPENDS="libc++, openssl, ncurses, zlib" @@ -45,4 +45,13 @@ termux_step_host_build() { termux_step_pre_configure() { # Add --build flag for erlang cross build TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --build=$(./erts/autoconf/config.guess)" + + # Use a wrapper CC to move `-I@TERMUX_PREFIX@/include` to the last include param + mkdir -p $TERMUX_PKG_TMPDIR/_fake_bin + sed -e "s|@TERMUX_PREFIX@|${TERMUX_PREFIX}|g" \ + -e "s|@COMPILER@|$(command -v ${CC})|g" \ + "$TERMUX_PKG_BUILDER_DIR"/wrapper.py.in \ + > $TERMUX_PKG_TMPDIR/_fake_bin/"$(basename ${CC})" + chmod +x $TERMUX_PKG_TMPDIR/_fake_bin/"$(basename ${CC})" + export PATH="$TERMUX_PKG_TMPDIR/_fake_bin:$PATH" } diff --git a/packages/erlang/wrapper.py.in b/packages/erlang/wrapper.py.in new file mode 100644 index 0000000000..82bb6d75dd --- /dev/null +++ b/packages/erlang/wrapper.py.in @@ -0,0 +1,32 @@ +#!/usr/bin/python3 +import os +import subprocess +import sys +import typing + +COMPLIER_PATH = "@COMPILER@" +TERMUX_PREFIX = "@TERMUX_PREFIX@" + +def main(argv: typing.List[str]): + cwd = os.getcwd() + # Move `-I@TERMUX_PREFIX@/include` to the last include param + argv_new = [] + argv_last = [] + for arg in argv[1:]: + if arg.startswith("-I@TERMUX_PREFIX@"): + argv_last.append(arg) + else: + argv_new.append(arg) + ind = -1 + for i, arg in enumerate(argv_new): + if arg.startswith("-I"): + ind = i + if ind != -1: + argv_new = argv_new[:ind + 1] + argv_last + argv_new[ind + 1:] + else: + argv_new = argv[1:] + args = [COMPLIER_PATH] + argv_new + subprocess.check_call(args, env=os.environ, cwd=cwd, text=True) + +if __name__ == '__main__': + main(sys.argv)