summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnderson Torres <torres.anderson.85@protonmail.com>2023-02-14 20:32:22 -0300
committerGitHub <noreply@github.com>2023-02-14 20:32:22 -0300
commit0621648513a20d6e6a3be974f396c0cebc1cb48d (patch)
tree1572c91fa520d433ffc50251b5cb49ae50aef169
parent7308f2de5b7af6e48ba8c7ffc9f50ead742b61a3 (diff)
parenta80aad7a10c352d77f571bbcc557d50f92fa33fe (diff)
downloadnixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.tar
nixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.tar.gz
nixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.tar.bz2
nixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.tar.lz
nixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.tar.xz
nixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.tar.zst
nixpkgs-0621648513a20d6e6a3be974f396c0cebc1cb48d.zip
Merge pull request #216123 from Detegr/c64-debugger
c64-debugger: init at 0.64.58.6
-rw-r--r--pkgs/applications/emulators/c64-debugger/default.nix101
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 103 insertions, 0 deletions
diff --git a/pkgs/applications/emulators/c64-debugger/default.nix b/pkgs/applications/emulators/c64-debugger/default.nix
new file mode 100644
index 00000000000..b7c357ca270
--- /dev/null
+++ b/pkgs/applications/emulators/c64-debugger/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchgit
+, alsa-lib
+, gtk3
+, libGL
+, libGLU
+, libX11
+, pkg-config
+, upx
+, xcbutil
+}:
+
+stdenv.mkDerivation {
+  name = "c64-debugger";
+  version = "0.64.58.6";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/c64-debugger/code";
+    rev = "f97772e3f5c8b4fa99e8ed212ed1c4cb1e2389f1";
+    sha256 = "sha256-3SR73AHQlYSEYpJLtQ/aJ1UITZGq7aA9tQKxBsn/yuc=";
+  };
+
+  buildInputs = [
+    alsa-lib
+    gtk3
+    libGL
+    libGLU
+    pkg-config
+    libX11
+    xcbutil
+  ];
+
+  nativeBuildInputs = [
+    upx
+  ];
+
+  postPatch = ''
+    # Disable default definition of RUN_COMMODORE64
+    sed -i 's|^#define RUN_COMMODORE64|//#define RUN_COMMODORE64|' MTEngine/Games/c64/C64D_Version.h
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    # Build C64 debugger
+    make -C MTEngine \
+      CFLAGS="-w -O2 -fcommon" \
+      CXXFLAGS="-w -O2 --std=c++11" \
+      DEFINES="-DRUN_COMMODORE64" \
+      -j$NIX_BUILD_CORES
+    mv MTEngine/c64debugger c64debugger
+    make -C MTEngine clean
+
+    # Build 65XE debugger
+    make -C MTEngine \
+      CFLAGS="-w -O2 -fcommon" \
+      CXXFLAGS="-w -O2 --std=c++11" \
+      DEFINES="-DRUN_ATARI" \
+      -j$NIX_BUILD_CORES
+    mv MTEngine/c64debugger 65xedebugger
+    make -C MTEngine clean
+
+    # Build NES debugger
+    make -C MTEngine \
+      CFLAGS="-w -O2 -fcommon" \
+      CXXFLAGS="-w -O2 --std=c++11" \
+      DEFINES="-DRUN_NES" \
+      -j$NIX_BUILD_CORES
+    mv MTEngine/c64debugger nesdebugger
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -d "$out/bin"
+    install -d "$out/share/doc"
+    install -m 755 c64debugger 65xedebugger nesdebugger "$out/bin"
+    install -m 644 MTEngine/Assets/*.txt "$out/share/doc"
+    install -m 644 MTEngine/Assets/*.pdf "$out/share/doc"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://sourceforge.net/projects/c64-debugger";
+    description = "Commodore 64, Atari XL/XE and NES code and memory debugger that works in real time";
+    license = with licenses; [
+      gpl3Only # c64-debugger
+      mit # MTEngine
+      # emulators included in c64-debugger
+      gpl2Plus # VICE, atari800
+      gpl2 # nestopiaue
+    ];
+    mainProgram = "c64debugger";
+    maintainers = [ maintainers.detegr ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3e63a9dfdd7..485d8beb2c5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -368,6 +368,8 @@ with pkgs;
 
   buildMaven = callPackage ../build-support/build-maven.nix {};
 
+  c64-debugger = callPackage ../applications/emulators/c64-debugger { };
+
   caroline = callPackage ../development/libraries/caroline { };
 
   castget = callPackage ../applications/networking/feedreaders/castget { };