diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 0c0b78968e..28d3e0ca9a 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2494,3 +2494,47 @@ (define-public cc65 (description "This package provides a development environment for 6502 systems, including macro assembler, C compiler, linker, librarian and several other tools.") (home-page "https://cc65.github.io/") (license license:zlib))) + +(define-public uxn + (let ((commit "1b2049e238df96f32335edf1c6db35bd09f8b42d") + (revision "1")) + (package + (name "uxn") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~rabbits/uxn") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0d3hy1db1mfk2l7q7wdxvp1z0vkmyyb9pdp81d9zm58ylpxaq2cp")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no tests + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (setenv "CC" #$(cc-for-target)) + (invoke "./build.sh" "--no-run"))) + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin")) + (share (string-append #$output + "/share/uxn"))) + (with-directory-excursion "bin" + (for-each (lambda (x) + (install-file x bin)) + '("uxnasm" "uxncli" "uxnemu")) + (for-each (lambda (x) + (install-file x share)) + '("asma.rom" "launcher.rom"))))))))) + (inputs (list sdl2)) + (home-page "https://100r.co/site/uxn.html") + (synopsis "Assembler and emulator for the Uxn stack-machine") + (description + "This package provides an assembler and emulator for the Uxn +stack-machine, written in ANSI C. Graphical output is implemented using SDL2.") + (license license:expat))))