Subject: Add "xa" assembler
From: Christopher Lemmer Webber <[email-masked]>
To: [email-masked]
Date: Wed, 11 Mar 2020 12:11:35 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!  New patch, new patch.  It's been a while for me.

This is for the 6502 "xa" assembler.  It's necessary for use with the
"vice" emulator, which I've been also trying to package, but is also
useful standalone.

From f9a241faa405bb695b4e13175722014f8a291410 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <[email-masked]>
Date: Wed, 11 Mar 2020 11:14:59 -0400
Subject: [PATCH] gnu: Add xa.

* gnu/packages/assembly.scm (xa): New variable.
---
 gnu/packages/assembly.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 1ad49baf8e..ec1ed50b2d 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2019 Guy Fleury Iteriteka <[email-masked]>
 ;;; Copyright © 2019 Andy Tai <[email-masked]>
 ;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
+;;; Copyright © 2020 Christopher Lemmer Webber <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -342,3 +343,32 @@ Supported architectures are:
 @item spc700
 @end itemize")
     (license license:gpl2)))
+
+(define-public xa
+  (package
+    (name "xa")
+    (version "2.3.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.floodgap.com/retrotech/xa"
+                                  "/dists/xa-" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0y5sd247g11jfk5msxy91hz2nhpy7smj125dzfyfhjsjnqk5nyw6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f   ; TODO: custom test harness, not sure how it works
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))            ; no "configure" script
+       #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))))
+    (native-inputs `(("perl" ,perl)))
+    (home-page "https://www.floodgap.com/retrotech/xa/")
+    (synopsis "High-speed, two-pass portable cross-assembler")
+    (description
+     "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.")
+    (license license:gpl2)))
-- 
2.25.1