about summary refs log tree commit diff
path: root/nixpkgs/pkgs/misc/emulators/uxn/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/misc/emulators/uxn/default.nix')
-rw-r--r--nixpkgs/pkgs/misc/emulators/uxn/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/emulators/uxn/default.nix b/nixpkgs/pkgs/misc/emulators/uxn/default.nix
new file mode 100644
index 000000000000..3e4928412b11
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/uxn/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "uxn";
+  version = "0.0.0+unstable=2021-08-30";
+
+  src = fetchFromSourcehut {
+    owner = "~rabbits";
+    repo = pname;
+    rev = "a2e40d9d10c11ef48f4f93d0dc86f5085b4263ce";
+    hash = "sha256-/hxDYi814nQydm2iQk4NID4vpJ3BcBcM6NdL0iuZk5M=";
+  };
+
+  buildInputs = [
+    SDL2
+  ];
+
+  dontConfigure = true;
+
+  # It is easier to emulate build.sh script
+  buildPhase = ''
+    runHook preBuild
+
+    cc -std=c89 -Wall -Wno-unknown-pragmas src/uxnasm.c -o uxnasm
+    cc -std=c89 -Wall -Wno-unknown-pragmas src/uxn.c src/uxncli.c -o uxncli
+    cc -std=c89 -Wall -Wno-unknown-pragmas src/uxn.c src/devices/ppu.c \
+       src/devices/apu.c src/uxnemu.c $(sdl2-config --cflags --libs) -o uxnemu
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -d $out/bin/ $out/share/${pname}/
+
+    cp uxnasm uxncli uxnemu $out/bin/
+    cp -r projects $out/share/${pname}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://wiki.xxiivv.com/site/uxn.html";
+    description = "An assembler and emulator for the Uxn stack machine";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}