From 1d504dcd8e511a74fb2d5817859960216cdcc3aa Mon Sep 17 00:00:00 2001 From: stsp Date: Sun, 15 Dec 2024 11:39:25 +0000 Subject: [PATCH] new package: smallerc This adds SmallerC C compiler. It is cross-platform, and under Termux can be used to compile for dosbox. --- packages/smallerc/build.sh | 30 +++++++++++++++++++ packages/smallerc/makefile.patch | 28 +++++++++++++++++ .../smallerc/smallerc-cross.subpackage.sh | 5 ++++ 3 files changed, 63 insertions(+) create mode 100644 packages/smallerc/build.sh create mode 100644 packages/smallerc/makefile.patch create mode 100644 packages/smallerc/smallerc-cross.subpackage.sh diff --git a/packages/smallerc/build.sh b/packages/smallerc/build.sh new file mode 100644 index 00000000000000..8e89f8bb8c230e --- /dev/null +++ b/packages/smallerc/build.sh @@ -0,0 +1,30 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/alexfru/SmallerC +TERMUX_PKG_DESCRIPTION="Simple and small C compiler for DOS, Windows, Linux and MacOS" +TERMUX_PKG_LICENSE="BSD 2-Clause" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=1.0.2 +TERMUX_PKG_SRCURL=https://github.com/alexfru/SmallerC/archive/refs/tags/v${TERMUX_PKG_VERSION}+dos.win.b120a9c.tar.gz +TERMUX_PKG_SHA256=1e26ed8da461614da26379b7be1510f0e39f52a292fd0d9e54d747664f0c7ef4 +TERMUX_PKG_BUILD_DEPENDS="nasm" +TERMUX_PKG_DEPENDS="nasm" +TERMUX_PKG_BUILD_IN_SRC=true +TERMUX_PKG_NO_STATICSPLIT=true +TERMUX_PKG_HOSTBUILD=true + +termux_step_host_build() { + local _PREFIX_FOR_BUILD=${TERMUX_PREFIX}/opt/$TERMUX_PKG_NAME/cross + cd $TERMUX_PKG_SRCDIR + make prefix=$_PREFIX_FOR_BUILD + make install prefix=$_PREFIX_FOR_BUILD + make clean + export PATH="$PATH:$_PREFIX_FOR_BUILD/bin" +} + +termux_step_make() { + local _PREFIX_FOR_BUILD=${TERMUX_PREFIX}/opt/$TERMUX_PKG_NAME/cross + make prefix=$PREFIX SMLRCC="${_PREFIX_FOR_BUILD}/bin/smlrcc" +} + +termux_step_make_install() { + make install prefix=$PREFIX +} diff --git a/packages/smallerc/makefile.patch b/packages/smallerc/makefile.patch new file mode 100644 index 00000000000000..e90672468f96ec --- /dev/null +++ b/packages/smallerc/makefile.patch @@ -0,0 +1,28 @@ +diff --git a/common.mk b/common.mk +index d1272d6..3de1c52 100644 +--- a/common.mk ++++ b/common.mk +@@ -2,6 +2,7 @@ prefix = /usr/local + bindir = $(prefix)/bin + libdir = $(prefix)/smlrc/lib + incdir = $(prefix)/smlrc/include ++SMLRCC ?= ./smlrcc + + CFLAGS ?= -pipe -Wall -O2 + CPPFLAGS += -DPATH_PREFIX='"$(prefix)"' +@@ -38,13 +39,13 @@ clean: + .SUFFIXES: .op .txt + + .op.a: +- ./smlrcc -SI $(srcdir)/include -I $(srcdir)/srclib @$< ++ $(SMLRCC) -SI $(srcdir)/include -I $(srcdir)/srclib @$< + + .txt.op: + awk -v l=$(srcdir)/srclib/ '/[.](c|asm)$$/{$$0=l$$0}{print}' $< > $@ + + $(stub): +- ./smlrcc -small $(srcdir)/srclib/dpstub.asm -o $@ ++ $(SMLRCC) -small $(srcdir)/srclib/dpstub.asm -o $@ + + smlrpp: + $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -DSTAND_ALONE -DUCPP_CONFIG \ diff --git a/packages/smallerc/smallerc-cross.subpackage.sh b/packages/smallerc/smallerc-cross.subpackage.sh new file mode 100644 index 00000000000000..f6108adead06be --- /dev/null +++ b/packages/smallerc/smallerc-cross.subpackage.sh @@ -0,0 +1,5 @@ +TERMUX_SUBPKG_DESCRIPTION="SmallerC for host (NOT for Termux)" +TERMUX_SUBPKG_PLATFORM_INDEPENDENT=true +TERMUX_SUBPKG_INCLUDE=" +opt/${TERMUX_PKG_NAME}/cross/* +"