gnu: Add chez-matchable
* gnu/packages/chez.scm (chez-matchable): New variable.master
parent
74f9c19092
commit
387541907f
|
@ -352,3 +352,50 @@ programming in Scheme.")
|
||||||
(description "Chez-sockets is an extensible sockets library for
|
(description "Chez-sockets is an extensible sockets library for
|
||||||
Chez Scheme.")
|
Chez Scheme.")
|
||||||
(license expat))))
|
(license expat))))
|
||||||
|
|
||||||
|
;; Help function for Chez Scheme to add the current path to
|
||||||
|
;; CHEZSCHEMELIBDIRS.
|
||||||
|
(define chez-configure
|
||||||
|
'(lambda _
|
||||||
|
(let ((chez-env (getenv "CHEZSCHEMELIBDIRS")))
|
||||||
|
(setenv "CHEZSCHEMELIBDIRS"
|
||||||
|
(if chez-env
|
||||||
|
(string-append ".:" chez-env)
|
||||||
|
"."))
|
||||||
|
#t)))
|
||||||
|
|
||||||
|
;; Help function to define make flags for some Chez Scheme custom make
|
||||||
|
;; files.
|
||||||
|
(define (chez-make-flags name version)
|
||||||
|
`(let ((out (assoc-ref %outputs "out")))
|
||||||
|
(list (string-append "PREFIX=" out)
|
||||||
|
(string-append "DOCDIR=" out "/share/doc/"
|
||||||
|
,name "-" ,version))))
|
||||||
|
|
||||||
|
(define-public chez-matchable
|
||||||
|
(package
|
||||||
|
(name "chez-matchable")
|
||||||
|
(version "20160306")
|
||||||
|
(home-page "https://github.com/fedeinthemix/chez-matchable")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append home-page "/archive" "/v" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32 "0cl4vc6487pikjq159pj4n5ghyaax31nywb5n4yn1682h3ir1hs0"))
|
||||||
|
(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)))
|
||||||
|
(arguments
|
||||||
|
`(#:make-flags ,(chez-make-flags name version)
|
||||||
|
#:test-target "test"
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
(replace 'configure ,chez-configure))))
|
||||||
|
(synopsis "Portable hygienic pattern matcher for Scheme")
|
||||||
|
(description "This package provides a superset of the popular Scheme
|
||||||
|
@code{match} package by Andrew Wright, written in fully portable
|
||||||
|
@code{syntax-rules} and thus preserving hygiene.")
|
||||||
|
(license public-domain)))
|
||||||
|
|
Reference in New Issue