summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/uxn/Manifest1
-rw-r--r--app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch20
-rw-r--r--app-emulation/uxn/uxn-0_p20230609.ebuild56
3 files changed, 77 insertions, 0 deletions
diff --git a/app-emulation/uxn/Manifest b/app-emulation/uxn/Manifest
index 5617e14f6810..b551f89079f0 100644
--- a/app-emulation/uxn/Manifest
+++ b/app-emulation/uxn/Manifest
@@ -1 +1,2 @@
DIST uxn-0_p20230501.tar.gz 285942 BLAKE2B 2ace9aba9e7c5c7cd60c8db2208e16b4af4830dee5bb10eaa228028ada8701154069423a6b920a09821f63e52dd8955c48e2f13b58061aa08256045e20aaf020 SHA512 e33ff693124d14ee94c8192adb47d940f08d37c22067264afdcae7f4f9ac713915c4daa3bbee3e38385cb71b988a30991ca8ea123dd542438367eaf3a4c88f84
+DIST uxn-0_p20230609.tar.gz 289620 BLAKE2B 35d9cdc8266012d5762641b739099aef9ecd1619dd9c650aba3fc8ad285aa80e9a77dc2d7f53a6e8d56f05936a49f561b53cc4d50720be2bf8028f7479efe4ba SHA512 862be7246597fb54e759eee39d2d4a06ca1e6f8a42c1a336c25c5e2d7657ea086a546c9346da911cc4ec73705274794879b22f6da5f7ce88b66210cc1649dc39
diff --git a/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch b/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch
new file mode 100644
index 000000000000..a8b75458da43
--- /dev/null
+++ b/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch
@@ -0,0 +1,20 @@
+--- a/build.sh
++++ b/build.sh
+@@ -52,7 +52,7 @@ fi
+
+ mkdir -p bin
+ CC="${CC:-cc}"
+-CFLAGS="${CFLAGS:--std=c89 -Wall -Wno-unknown-pragmas}"
++CFLAGS="${CFLAGS} --std=c89 "
+ case "$(uname -s 2>/dev/null)" in
+ MSYS_NT*|MINGW*) # MSYS2 on Windows
+ FILE_LDFLAGS="-liberty"
+@@ -77,7 +77,7 @@ then
+ echo "[debug]"
+ CFLAGS="${CFLAGS} -DDEBUG -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined"
+ else
+- CFLAGS="${CFLAGS} -DNDEBUG -O2 -g0 -s"
++ CFLAGS="${CFLAGS} -DNDEBUG "
+ fi
+
+ ${CC} ${CFLAGS} src/uxnasm.c -o bin/uxnasm
diff --git a/app-emulation/uxn/uxn-0_p20230609.ebuild b/app-emulation/uxn/uxn-0_p20230609.ebuild
new file mode 100644
index 000000000000..55a5c6f70c66
--- /dev/null
+++ b/app-emulation/uxn/uxn-0_p20230609.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="An assembler and emulator for the Uxn stack-machine, written in ANSI C"
+HOMEPAGE="https://wiki.xxiivv.com/site/uxn.html
+ https://git.sr.ht/~rabbits/uxn/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~rabbits/uxn.git"
+elif [[ ${PV} == *_p20230609 ]] ; then
+ COMMIT=f3674b2562e6c5557fc008edbac71d9fcfde64ff
+ SRC_URI="https://git.sr.ht/~rabbits/uxn/archive/${COMMIT}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}"/uxn-${COMMIT}
+ KEYWORDS="~amd64 ~x86"
+else
+ die "wrong package version (PV), given: ${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="media-libs/libsdl2:="
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}"/uxn-0_p20230609-build.sh.patch )
+
+src_compile() {
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" ./build.sh --no-run ||
+ die "build failed"
+
+ local f
+ local f_base
+ for f in ./projects/{examples/*,software,utils}/*.tal ; do
+ f_base="$(basename "${f}" .tal)"
+ ebegin "Assembling ROM ${f_base}"
+ ./bin/uxnasm "${f}" "$(dirname "${f}")"/"${f_base}".rom
+ eend ${?} || die "failed to assemble ${f}"
+ done
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe bin/uxn*
+
+ insinto /usr/share/uxn
+ doins bin/*.rom
+ doins -r projects
+
+ einstalldocs
+}