diff --git a/pkgs/development/compilers/xa/xa.nix b/pkgs/development/compilers/xa/xa.nix new file mode 100644 index 000000000000..163b0bba513b --- /dev/null +++ b/pkgs/development/compilers/xa/xa.nix @@ -0,0 +1,52 @@ +{ lib +, stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + pname = "xa"; + version = "2.3.11"; + + src = fetchurl { + url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz"; + hash = "sha256-MvIWTJnjBSGOmSlwhW3Y4jCbXLasR1jXsq/jv+vJAS0="; + }; + + dontConfigure = true; + + postPatch = '' + substitueInPlace \ + --replace "DESTDIR" "PREFIX" \ + --replace "CC = gcc" "CC = cc" \ + --replace "LDD = gcc" "LDD = ld" \ + --replace "CFLAGS = -O2" "CFLAGS ?=" \ + --replace "LDFLAGS = -lc" "LDFLAGS ?= -lc" \ + Makefile + ''; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + homepage = "https://www.floodgap.com/retrotech/xa/"; + description = "Andre Fachat's open-source 6502 cross assembler"; + longDescription = '' + xa is a high-speed, two-pass portable cross-assembler. It understands + mnemonics and generates code for NMOS 6502s (such as 6502A, 6504, 6507, + 6510, 7501, 8500, 8501, 8502 ...), CMOS 6502s (65C02 and Rockwell R65C02) + and the 65816. + + Key amongst its features: + + - C-like preprocessor (and understands cpp for additional feature support) + - rich expression syntax and pseudo-op vocabulary + - multiple character sets + - binary linking + - supports o65 relocatable objects with a full linker and relocation + suite, as well as "bare" plain binary object files + - block structure for label scoping + ''; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 25d8bd207219..b97c3c4d5e90 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26217,6 +26217,8 @@ in gtk = gtk2; }; + xa = callPackage ../development/compilers/xa/xa.nix { }; + x11basic = callPackage ../development/compilers/x11basic { autoconf = buildPackages.autoconf269; };