Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib 2, stdenv 3, fetchgit 4, alsa-lib 5, gtk3 6, libGL 7, libGLU 8, libX11 9, pkg-config 10, upx 11, xcbutil 12}: 13 14stdenv.mkDerivation { 15 name = "c64-debugger"; 16 version = "0.64.58.6"; 17 18 src = fetchgit { 19 url = "https://git.code.sf.net/p/c64-debugger/code"; 20 rev = "f97772e3f5c8b4fa99e8ed212ed1c4cb1e2389f1"; 21 sha256 = "sha256-3SR73AHQlYSEYpJLtQ/aJ1UITZGq7aA9tQKxBsn/yuc="; 22 }; 23 24 buildInputs = [ 25 alsa-lib 26 gtk3 27 libGL 28 libGLU 29 libX11 30 xcbutil 31 ]; 32 33 nativeBuildInputs = [ 34 upx 35 pkg-config 36 ]; 37 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 ''; 42 43 buildPhase = '' 44 runHook preBuild 45 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 54 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 63 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 71 72 runHook postBuild 73 ''; 74 75 installPhase = '' 76 runHook preInstall 77 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" 83 84 runHook postInstall 85 ''; 86 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 }; 101}