Skip to content
Snippets Groups Projects
Unverified Commit 149c6523 authored by Federico Beffa's avatar Federico Beffa
Browse files

gnu: Add chez-scmutils.

* gnu/packages/chez.scm (chez-scmutils): New variable.
parent 53b9684e
No related branches found
No related tags found
No related merge requests found
...@@ -498,3 +498,69 @@ (define-public chez-mit ...@@ -498,3 +498,69 @@ (define-public chez-mit
libraries for Chez Scheme. The main goal was to provide the functionality libraries for Chez Scheme. The main goal was to provide the functionality
required to port the program 'Scmutils' to Chez Scheme.") required to port the program 'Scmutils' to Chez Scheme.")
(license gpl3+))) (license gpl3+)))
(define-public chez-scmutils
(package
(name "chez-scmutils")
(version "0.1")
(home-page "https://github.com/fedeinthemix/chez-scmutils")
(source
(origin
(method url-fetch)
(uri (string-append home-page "/archive/v" version ".tar.gz"))
(sha256
(base32 "1a5j61pggaiwl1gl6m038rcy5n8r2sj5nyjmz86jydx97mm5i8hj"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(inputs
`(("chez-srfi" ,chez-srfi))) ; for tests
(native-inputs
`(("chez-scheme" ,chez-scheme)))
(propagated-inputs
`(("chez-mit" ,chez-mit)
("chez-srfi" ,chez-srfi)))
(arguments
`(#:make-flags ,(chez-make-flags name version)
#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(replace 'configure ,chez-configure)
;; Since the documentation is lacking, we install the source
;; code. For things to work correctly we have to replace
;; relative paths by absolute ones in 'include' forms. This
;; in turn requires us to compile the files in the final
;; destination.
(delete 'build)
(add-after 'install 'install-src
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install-src" make-flags))))
(add-after 'install-src 'absolute-path-in-scm-files
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (file)
(substitute* file
(("include +\"\\./scmutils")
(string-append "include \"" (dirname file)))))
(find-files out "\\.sls"))
(for-each (lambda (file)
(substitute* file
(("include +\"\\./scmutils/simplify")
(string-append "include \"" (dirname file)))))
(find-files out "fbe-syntax\\.scm"))
#t)))
(add-after 'absolute-path-in-scm-files 'build
(lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(mk-file (car (find-files out "Makefile"))))
(with-directory-excursion (dirname mk-file)
(zero? (apply system* "make" "build" make-flags))))))
(add-after 'build 'clean-up
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(for-each delete-file
(find-files out "Makefile|compile-all\\.ss"))))))))
(synopsis "Port of MIT/GNU Scheme Scmutils to Chez Scheme")
(description "This package provides a port of the MIT/GNU Scheme
Scmutils program to Chez Scheme. The port consists of a set of
libraries providing most of the functionality of the original.")
(license gpl3+)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment