From 9a2e4c5db3d2cfa5a88231f1d90fec50408cc1a9 Mon Sep 17 00:00:00 2001 From: guy fleury iteriteka Date: Sat, 5 Jan 2019 20:24:08 +0100 Subject: gnu: Add fasm. * gnu/packages/assembly.scm (fasm): New variable. Signed-off-by: Kei Kebreau --- gnu/packages/assembly.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'gnu/packages/assembly.scm') diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 763d183cf9..813eea466f 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Guy Fleury Iteriteka ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +31,9 @@ #:use-module (gnu packages perl) #:use-module (gnu packages texinfo) #: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 (package @@ -122,3 +125,46 @@ abstracts over the target CPU by exposing a standardized RISC instruction set to the clients.") (home-page "https://www.gnu.org/software/lightning/") (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))) -- cgit 1.4.1