gnu: Add guile-machine-code.

* gnu/packages/guile-xyz.scm (guile-machine-code): New variable.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This commit is contained in:
Martin Becze 2020-09-08 10:59:44 -05:00 committed by Mathieu Othacehe
parent a684e6e269
commit 199da208ed
No known key found for this signature in database
GPG key ID: 8354763531769CA6

View file

@ -3911,3 +3911,51 @@ (define files
"This is an R6RS library for working with packed byte structures. It is
similar to struct in Python or pack and unpack in Perl.")
(license license:expat)))
(define-public guile-machine-code
(package
(name "guile-machine-code")
(version "2.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/weinholt/machine-code")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wzj3caj2jypzyjqfkfqkvr3kkbjabsnhldv9kvnx9w9qnria5yd"))))
(build-system guile-build-system)
(arguments
`(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
#:modules ((guix build guile-build-system)
(guix build utils)
(srfi srfi-26)
(ice-9 ftw))
#:phases (modify-phases %standard-phases
(add-before 'build 'move-sls-files
(lambda _
;; Move files under a struct/ directory to reflect the
;; module hierarchy.
(define dst-folder "machine-code")
(define (target file)
(string-append dst-folder "/" file))
(define files
(scandir "." (negate (cut member <> '("." "..")))))
(mkdir dst-folder)
(for-each (lambda (file)
(rename-file file (target file)))
files)
#t)))))
(native-inputs
`(("guile" ,guile-3.0)))
(propagated-inputs
`(("guile-struct-pack" ,guile-struct-pack)))
(home-page "https://github.com/weinholt/machine-code")
(synopsis "Tools that relate to machine code and object formats")
(description
"This project is about the development of tools that relate to machine
code and object formats; for all architectures. Here you'll find libraries
for working with binary code: assembly, disassembly, instruction tables,
object formats and related areas.")
(license license:expat)))