gnu: sbcl-cl-cffi-gtk: Update to 20200417.
[jackhill/guix/guix.git] / gnu / packages / assembly.scm
index 7f42d22..c775603 100644 (file)
@@ -3,10 +3,11 @@
 ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
 ;;; Copyright © 2019 Andy Tai <atai@atai.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages assembly)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -44,6 +46,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages xml)
   #:use-module ((guix utils)
                 #:select (%current-system)))
@@ -109,7 +112,7 @@ has strong support for macros.")
     (inputs
      `(("python" ,python-wrapper)
        ("xmlto" ,xmlto)))
-    (home-page "http://yasm.tortall.net/")
+    (home-page "https://yasm.tortall.net/")
     (synopsis "Rewrite of the NASM assembler")
     (description
      "Yasm is a complete rewrite of the NASM assembler.
@@ -146,14 +149,14 @@ to the clients.")
 (define-public fasm
   (package
     (name "fasm")
-    (version "1.73.11")
+    (version "1.73.22")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://flatassembler.net/fasm-"
                            version ".tgz"))
        (sha256
-        (base32 "1zhbs72qc8bw5158zh6mvzznfamcx5a1bsmbmq9ci0d7wb58sxmg"))))
+        (base32 "1pb0rcfdsb0h89khjjrbikz5wjdllavj3ajim0rcyh7x12xr1hw5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests exist
@@ -177,9 +180,9 @@ to the clients.")
     (supported-systems '("x86_64-linux" "i686-linux"))
     (synopsis "Assembler for x86 processors")
     (description
-     "FASM is an assembler that supports x86 and IA-64 Intel architectures.
-It does multiple passes to optimize machine code.  It has macro abilities and
-focuses on operating system portability.")
+     "@acronym{FASM, the Flat ASseMbler} is an assembler that supports x86 and
+IA-64 Intel architectures.  It does multiple passes to optimize machine code.
+It has macro abilities and focuses on operating system portability.")
     (home-page "https://flatassembler.net/")
     (license license:bsd-2)))
 
@@ -230,7 +233,7 @@ assembler, a C compiler and a linker.  The assembler uses Intel syntax
                 (uri (git-reference
                       (url "https://git.savannah.gnu.org/r/libjit.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0p6wklslkkp3s4aisj3w5a53bagqn5fy4m6088ppd4fcfxgqkrcd"))))
@@ -256,7 +259,7 @@ runtime")
 (define-public rgbds
   (package
     (name "rgbds")
-    (version "0.3.9")
+    (version "0.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -265,7 +268,7 @@ runtime")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pzd9ig3ahpgq7jbj82grllxx1v01d620insr2m8h0c6jj25n5hv"))))
+                "15680964nlsa83nqgxk7knxajn98lddz2hg6jnn8ffmnms5wdam7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -299,3 +302,72 @@ package for the Game Boy and Game Boy Color.  It consists of:
 @item rgbgfx (PNG-to-Game Boy graphics converter)
 @end itemize")
     (license license:expat)))
+
+(define-public wla-dx
+  (package
+    (name "wla-dx")
+    (version "9.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vhelin/wla-dx.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "022isf7s9q5i0j4xj69zpp0lgw8p9n37sn7ii25v68r15zaahk2w"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("sphinx" ,python-sphinx)))      ; to generate man pages
+    (arguments
+     `(#:tests? #f)) ; no tests
+    (home-page "https://github.com/vhelin/wla-dx")
+    (synopsis "Assemblers for various processors")
+    (description "WLA DX is a set of tools to assemble assembly files to
+object or library files (@code{wla-ARCH}) and link them together (@code{wlalink}).
+Supported architectures are:
+
+@itemize @bullet
+@item z80
+@item gb (z80-gb)
+@item 6502
+@item 65c02
+@item 6510
+@item 65816
+@item 6800
+@item 6801
+@item 6809
+@item 8008
+@item 8080
+@item huc6280
+@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"))
+              (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 "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)))