1{ lib, gccStdenv, fetchFromGitHub }:
2
3gccStdenv.mkDerivation rec {
4 pname = "cc65";
5 version = "2.19";
6
7 src = fetchFromGitHub {
8 owner = "cc65";
9 repo = pname;
10 rev = "V${version}";
11 sha256 = "01a15yvs455qp20hri2pbg2wqvcip0d50kb7dibi9427hqk9cnj4";
12 };
13
14 makeFlags = [ "PREFIX=${placeholder "out"}" ];
15
16 enableParallelBuilding = true;
17
18 meta = with lib; {
19 homepage = "https://cc65.github.io/";
20 description = "C compiler for processors of 6502 family";
21 longDescription = ''
22 cc65 is a complete cross development package for 65(C)02 systems,
23 including a powerful macro assembler, a C compiler, linker, librarian and
24 several other tools.
25
26 cc65 has C and runtime library support for many of the old 6502 machines,
27 including the following Commodore machines:
28
29 - VIC20
30 - C16/C116 and Plus/4
31 - C64
32 - C128
33 - CBM 510 (aka P500)
34 - the 600/700 family
35 - newer PET machines (not 2001).
36 - the Apple ][+ and successors.
37 - the Atari 8-bit machines.
38 - the Atari 2600 console.
39 - the Atari 5200 console.
40 - GEOS for the C64, C128 and Apple //e.
41 - the Bit Corporation Gamate console.
42 - the NEC PC-Engine (aka TurboGrafx-16) console.
43 - the Nintendo Entertainment System (NES) console.
44 - the Watara Supervision console.
45 - the VTech Creativision console.
46 - the Oric Atmos.
47 - the Oric Telestrat.
48 - the Lynx console.
49 - the Ohio Scientific Challenger 1P.
50
51 The libraries are fairly portable, so creating a version for other 6502s
52 shouldn't be too much work.
53 '';
54 license = licenses.zlib;
55 maintainers = with maintainers; [ AndersonTorres ];
56 platforms = platforms.unix;
57 };
58}