gnu: Add fasm.

* gnu/packages/assembly.scm (fasm): New variable.

Signed-off-by: Kei Kebreau <kkebreau@posteo.net>
This commit is contained in:
guy fleury iteriteka 2019-01-05 20:24:08 +01:00 committed by Kei Kebreau
parent 012bf5c4c0
commit 9a2e4c5db3
No known key found for this signature in database
GPG Key ID: E6A5EE3C19467A0D
1 changed files with 47 additions and 1 deletions

View File

@ -4,6 +4,7 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -30,7 +31,9 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module ((guix utils)
#:select (%current-system)))
(define-public nasm (define-public nasm
(package (package
@ -122,3 +125,46 @@ abstracts over the target CPU by exposing a standardized RISC instruction set
to the clients.") to the clients.")
(home-page "https://www.gnu.org/software/lightning/") (home-page "https://www.gnu.org/software/lightning/")
(license license:gpl3+))) (license license:gpl3+)))
(define-public fasm
(package
(name "fasm")
(version "1.73.06")
(source
(origin
(method url-fetch)
(uri (string-append "https://flatassembler.net/fasm-"
version ".tgz"))
(sha256
(base32
"02wqkqxpn3p0iwcagsm92qd9cdfcnbx8a09qg03b3pjppp30hmp6"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;;no tests
#:strip-binaries? #f ;; fasm has no sections
#:phases
(modify-phases %standard-phases
(delete 'configure) ;;no configure script used
(replace 'build
(lambda _
;;source code are in this directory
(chdir "source/Linux/")
(if (string=? ,(%current-system) "x86_64-linux")
;;use pre-compiled binaries in top-level directory to build
;;itself
(invoke "../../fasm.x64" "fasm.asm")
(invoke "../../fasm" "fasm.asm"))))
(replace 'install
(lambda _
(let ((out (assoc-ref %outputs "out")))
(install-file "fasm" (string-append out "/bin")))
#t)))))
;;support only intel x86 family processors
(supported-systems '("x86_64-linux" "i686-linux"))
(synopsis "Assembler for x86 processors")
(description
"FASM is a assembler that supports x86, and IA-64 Intel architectures.
It does multiple passes to optimize machine code.It have macro abilities and
focus on operating system portability.")
(home-page "https://flatassembler.net/")
(license license:bsd-2)))