gnu: ruby-listen: Update to 3.1.5.
[jackhill/guix/guix.git] / gnu / packages / assembly.scm
CommitLineData
8472bdec
JN
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
c283b22e 3;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
15a3fffc
LC
4;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
5;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
8472bdec
JN
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages assembly)
23 #:use-module (guix build-system gnu)
24 #:use-module (guix download)
25 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (guix packages)
a837997c 27 #:use-module (gnu packages)
b6e08049 28 #:use-module (gnu packages compression)
8472bdec 29 #:use-module (gnu packages perl)
15a3fffc
LC
30 #:use-module (gnu packages texinfo)
31 #:use-module (gnu packages python)
32 #:use-module (gnu packages xml))
8472bdec
JN
33
34(define-public nasm
35 (package
36 (name "nasm")
3f56740d 37 (version "2.13.01")
8472bdec
JN
38 (source (origin
39 (method url-fetch)
40 (uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/"
41 version "/" name "-" version ".tar.xz"))
42 (sha256
43 (base32
3f56740d 44 "0plsvcwxc7q3llr3bz10prwq1gn4ll38aqmv0yzfqcq4iw0160ma"))))
8472bdec 45 (build-system gnu-build-system)
a837997c 46 (native-inputs `(("perl" ,perl) ;for doc and test target
8472bdec
JN
47 ("texinfo" ,texinfo)))
48 (arguments
49 `(#:test-target "test"
161fb9be
EF
50 #:phases
51 (modify-phases %standard-phases
52 (add-after 'unpack 'dont-build-ps-pdf-outputs
53 (lambda _
54 (substitute* "doc/Makefile.in"
3f56740d
MB
55 (("html nasmdoc.txt nasmdoc.pdf")
56 "html nasmdoc.txt")
57 (("\\$\\(INSTALL_DATA\\) nasmdoc.pdf")
58 "$(INSTALL_DATA)"))
161fb9be
EF
59 #t))
60 (add-after 'install 'install-info
61 (lambda _
62 (zero? (system* "make" "install_doc")))))))
8472bdec
JN
63 (home-page "http://www.nasm.us/")
64 (synopsis "80x86 and x86-64 assembler")
65 (description
66 "NASM, the Netwide Assembler, is an 80x86 and x86-64 assembler designed
67for portability and modularity. It supports a range of object file formats,
68including Linux and *BSD a.out, ELF, COFF, Mach-O, Microsoft 16-bit OBJ,
69Windows32 and Windows64. It will also output plain binary files. Its syntax
70is designed to be simple and easy to understand, similar to Intel's but less
71complex. It supports all currently known x86 architectural extensions, and
72has strong support for macros.")
8472bdec 73 (license license:bsd-3)))
15a3fffc
LC
74
75(define-public yasm
76 (package
77 (name "yasm")
78 (version "1.3.0")
79 (source (origin
80 (method url-fetch)
81 (uri (string-append
82 "http://www.tortall.net/projects/yasm/releases/yasm-"
83 version ".tar.gz"))
84 (sha256
85 (base32
86 "0gv0slmm0qpq91za3v2v9glff3il594x5xsrbgab7xcmnh0ndkix"))))
87 (build-system gnu-build-system)
88 (inputs
89 `(("python" ,python-wrapper)
90 ("xmlto" ,xmlto)))
91 (home-page "http://yasm.tortall.net/")
92 (synopsis "Rewrite of the NASM assembler")
93 (description
94 "Yasm is a complete rewrite of the NASM assembler.
95
96Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM
97and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit
98Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source
99debugging information in STABS, DWARF 2, and CodeView 8 formats.")
100 (license (license:non-copyleft "file://COPYING"
101 "See COPYING in the distribution."))))
c283b22e
AK
102
103(define-public lightning
104 (package
105 (name "lightning")
106 (version "2.1.0")
107 (source (origin
108 (method url-fetch)
109 (uri (string-append "mirror://gnu/lightning/lightning-"
110 version ".tar.gz"))
111 (sha256
112 (base32
113 "19j9nwl88k660045s40cbz5zrl1wpd2mcxnnc8qqnnaj311a58qz"))))
114 (build-system gnu-build-system)
b6e08049 115 (native-inputs `(("zlib" ,zlib)))
c283b22e
AK
116 (synopsis "Library for generating assembly code at runtime")
117 (description
118 "GNU Lightning is a library that generates assembly language code at
119run-time. Thus, it is useful in creating Just-In-Time compilers. It
120abstracts over the target CPU by exposing a standardized RISC instruction set
121to the clients.")
6fd52309 122 (home-page "https://www.gnu.org/software/lightning/")
da0cef6a 123 (license license:gpl3+)))