From e285d3b3624f4ecab267154d1dfc269feb80fcf1 Mon Sep 17 00:00:00 2001 From: Sean Buckley Date: Mon, 28 Sep 2020 23:44:29 -0400 Subject: [PATCH] add Commander X16 --- pkgs/commander-x16/cc65.nix | 20 +++++++++++++++ pkgs/commander-x16/default.nix | 9 +++++++ pkgs/commander-x16/emulator.nix | 45 +++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 pkgs/commander-x16/cc65.nix create mode 100644 pkgs/commander-x16/default.nix create mode 100644 pkgs/commander-x16/emulator.nix diff --git a/pkgs/commander-x16/cc65.nix b/pkgs/commander-x16/cc65.nix new file mode 100644 index 0000000..f87f43c --- /dev/null +++ b/pkgs/commander-x16/cc65.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "cc65"; + + src = fetchFromGitHub { + owner = name; + repo = name; + rev = "b525554bfee3c3ddc5ddd7e58b4a20728f6c9cb1"; + sha256 = "0san7n092bx823pliypvvsbhhzq9q39n1qqivjcyc2xab2dwir84"; + }; + + buildPhase = '' + make PREFIX="$out" + ''; + + installPhase = '' + make install PREFIX="$out" + ''; +} diff --git a/pkgs/commander-x16/default.nix b/pkgs/commander-x16/default.nix new file mode 100644 index 0000000..71d29a8 --- /dev/null +++ b/pkgs/commander-x16/default.nix @@ -0,0 +1,9 @@ +{ callPackage, symlinkJoin }: + +symlinkJoin { + name = "commander-x16-tools"; + paths = [ + (callPackage ./cc65.nix { }) + (callPackage ./emulator.nix { }) + ]; +} diff --git a/pkgs/commander-x16/emulator.nix b/pkgs/commander-x16/emulator.nix new file mode 100644 index 0000000..225e956 --- /dev/null +++ b/pkgs/commander-x16/emulator.nix @@ -0,0 +1,45 @@ +{ stdenv, callPackage, fetchFromGitHub, SDL2 }: +let + rev = "r38"; + owner = "commanderx16"; + cc65 = callPackage ./cc65.nix { }; + + x16rom = stdenv.mkDerivation rec { + name = "x16-rom"; + + src = fetchFromGitHub { + inherit owner rev; + repo = name; + sha256 = "10m6v0xpjkbrnjspsn7z0r22wphbvcrxw8f59z98xv21kb98ban5"; + }; + + buildInputs = [ cc65 ]; + + preBuild = '' + patchShebangs scripts + ''; + + installPhase = '' + cp ./build/x16/rom.bin "$out" + ''; + }; + +in +stdenv.mkDerivation rec { + name = "x16-emulator"; + + src = fetchFromGitHub { + inherit owner rev; + repo = name; + sha256 = "10cidc825bz3bniwascn472a9a8087f9lfl9b20r6dkvdzz6mm2q"; + }; + + buildInputs = [ SDL2.dev ]; + + installPhase = '' + mkdir -p "$out/bin" + cp x16emu "$out/" + ln -s "${x16rom}" "$out/rom.bin" + ln -s "$out/x16emu" "$out/bin/x16emu" + ''; +}