gnu: Add chez-scmutils.

* gnu/packages/chez.scm (chez-scmutils): New variable.
This commit is contained in:
Federico Beffa 2016-10-22 10:58:32 +02:00
parent 53b9684e33
commit 149c652378
No known key found for this signature in database
GPG key ID: 58936E0E2F1B5A4C

View file

@ -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+)))