biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / emulators / c64-debugger / default.nix
blobad0da506b4ffbac6db5f2615446439d97ea55054
1 { lib
2 , stdenv
3 , fetchgit
4 , alsa-lib
5 , gtk3
6 , libGL
7 , libGLU
8 , libX11
9 , pkg-config
10 , upx
11 , xcbutil
14 stdenv.mkDerivation {
15   pname = "c64-debugger";
16   version = "0.64.58.6";
18   src = fetchgit {
19     url = "https://git.code.sf.net/p/c64-debugger/code";
20     rev = "f97772e3f5c8b4fa99e8ed212ed1c4cb1e2389f1";
21     sha256 = "sha256-3SR73AHQlYSEYpJLtQ/aJ1UITZGq7aA9tQKxBsn/yuc=";
22   };
24   buildInputs = [
25     alsa-lib
26     gtk3
27     libGL
28     libGLU
29     libX11
30     xcbutil
31   ];
33   nativeBuildInputs = [
34     upx
35     pkg-config
36   ];
38   postPatch = ''
39     # Disable default definition of RUN_COMMODORE64
40     sed -i 's|^#define RUN_COMMODORE64|//#define RUN_COMMODORE64|' MTEngine/Games/c64/C64D_Version.h
41   '';
43   buildPhase = ''
44     runHook preBuild
46     # Build C64 debugger
47     make -C MTEngine \
48       CFLAGS="-w -O2 -fcommon" \
49       CXXFLAGS="-w -O2 --std=c++11" \
50       DEFINES="-DRUN_COMMODORE64" \
51       -j$NIX_BUILD_CORES
52     mv MTEngine/c64debugger c64debugger
53     make -C MTEngine clean
55     # Build 65XE debugger
56     make -C MTEngine \
57       CFLAGS="-w -O2 -fcommon" \
58       CXXFLAGS="-w -O2 --std=c++11" \
59       DEFINES="-DRUN_ATARI" \
60       -j$NIX_BUILD_CORES
61     mv MTEngine/c64debugger 65xedebugger
62     make -C MTEngine clean
64     # Build NES debugger
65     make -C MTEngine \
66       CFLAGS="-w -O2 -fcommon" \
67       CXXFLAGS="-w -O2 --std=c++11" \
68       DEFINES="-DRUN_NES" \
69       -j$NIX_BUILD_CORES
70     mv MTEngine/c64debugger nesdebugger
72     runHook postBuild
73   '';
75   installPhase = ''
76     runHook preInstall
78     install -d "$out/bin"
79     install -d "$out/share/doc"
80     install -m 755 c64debugger 65xedebugger nesdebugger "$out/bin"
81     install -m 644 MTEngine/Assets/*.txt "$out/share/doc"
82     install -m 644 MTEngine/Assets/*.pdf "$out/share/doc"
84     runHook postInstall
85   '';
87   meta = with lib; {
88     homepage = "https://sourceforge.net/projects/c64-debugger";
89     description = "Commodore 64, Atari XL/XE and NES code and memory debugger that works in real time";
90     license = with licenses; [
91       gpl3Only # c64-debugger
92       mit # MTEngine
93       # emulators included in c64-debugger
94       gpl2Plus # VICE, atari800
95       gpl2 # nestopiaue
96     ];
97     mainProgram = "c64debugger";
98     maintainers = [ maintainers.detegr ];
99     platforms = platforms.linux;
100   };