diff --git a/packages/cyclone/Makefile.config.patch b/packages/cyclone/Makefile.config.patch new file mode 100644 index 000000000000000..323290d088c93b9 --- /dev/null +++ b/packages/cyclone/Makefile.config.patch @@ -0,0 +1,16 @@ +https://github.com/termux/termux-packages/pull/20560#issuecomment-2171793305 + +--- a/Makefile.config ++++ b/Makefile.config +@@ -90,9 +90,8 @@ DATADIR ?= $(PREFIX)/share/cyclone + DESTDIR ?= + + # Automatically detect platform-specific flags, instead of using autoconf +-#CYC_PLATFORM_HAS_MEMSTREAM ?= 1 +-CYC_PLATFORM_HAS_MEMSTREAM := $(shell echo "main(){char *buf; int len; open_memstream(&buf, &len);}" | $(CC) -xc - >/dev/null 2>/dev/null && echo 1 || echo 0) +-CYC_PLATFORM_HAS_FMEMOPEN := $(shell echo "main(){char *buf; fmemopen(&buf, 0, \"r\");}" | $(CC) -xc - >/dev/null 2>/dev/null && echo 1 || echo 0) ++CYC_PLATFORM_HAS_MEMSTREAM ?= 1 ++CYC_PLATFORM_HAS_FMEMOPEN ?= 1 + + # code from chibi's makefile to detect platform + ifndef PLATFORM diff --git a/packages/cyclone/build.sh b/packages/cyclone/build.sh new file mode 100644 index 000000000000000..97edcf18d609d01 --- /dev/null +++ b/packages/cyclone/build.sh @@ -0,0 +1,22 @@ +TERMUX_PKG_HOMEPAGE=http://justinethier.github.io/cyclone/ +TERMUX_PKG_DESCRIPTION="A brand-new compiler that allows practical application development using R7RS Scheme" +TERMUX_PKG_LICENSE="MIT" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="0.36.0" +TERMUX_PKG_SRCURL=https://github.com/justinethier/cyclone-bootstrap/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=6b984f4cc336993306cfc3e6bd9e82f4fc1a008f3592d4e942b5de182f5fac20 +TERMUX_PKG_DEPENDS="libandroid-complex-math, libck" +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_BUILD_IN_SRC=true +TERMUX_PKG_NO_STATICSPLIT=true +TERMUX_PKG_BLACKLISTED_ARCHES="arm" ## follows `libck` blacklist +TERMUX_PKG_EXTRA_MAKE_ARGS=" +PREFIX=$TERMUX_PREFIX +PLATFORM=android +" + +termux_step_pre_configure() { + CFLAGS+=" -I$TERMUX_PREFIX/include" # for gc.c + CFLAGS+=" -Wno-error=int-conversion" # for i686 + LDFLAGS+=" -lm -landroid-complex-math" +} diff --git a/packages/cyclone/include-cyclone-types.h.patch b/packages/cyclone/include-cyclone-types.h.patch new file mode 100644 index 000000000000000..f200f96cc9c38b5 --- /dev/null +++ b/packages/cyclone/include-cyclone-types.h.patch @@ -0,0 +1,16 @@ +--- a/include/cyclone/types.h ++++ b/include/cyclone/types.h +@@ -22,6 +22,13 @@ + #include + #include "cyclone/bignum.h" + ++#if defined(__ANDROID__) && __ANDROID_API__ < 26 ++double complex clog(double complex); ++float complex clogf(float complex); ++double complex cpow(double complex, double complex); ++float complex cpowf(float complex, float complex); ++#endif ++ + #ifdef CYC_HIGH_RES_TIMERS + /** + * \defgroup hrt High resolution timers