guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: Add fasm.


From: guix-commits
Subject: 01/01: gnu: Add fasm.
Date: Sat, 5 Jan 2019 19:26:17 -0500 (EST)

kkebreau pushed a commit to branch master
in repository guix.

commit 9a2e4c5db3d2cfa5a88231f1d90fec50408cc1a9
Author: guy fleury iteriteka <address@hidden>
Date:   Sat Jan 5 20:24:08 2019 +0100

    gnu: Add fasm.
    
    * gnu/packages/assembly.scm (fasm): New variable.
    
    Signed-off-by: Kei Kebreau <address@hidden>
---
 gnu/packages/assembly.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 763d183..813eea4 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2013 Andreas Enge <address@hidden>
 ;;; Copyright © 2016 Efraim Flashner <address@hidden>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <address@hidden>
+;;; Copyright © 2019 Guy Fleury Iteriteka <address@hidden>
 ;;;
 ;;; 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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]