diff options
author | Julien Lepiller <julien@lepiller.eu> | 2020-10-16 17:06:53 +0200 |
---|---|---|
committer | Julien Lepiller <julien@lepiller.eu> | 2020-11-10 16:03:40 +0100 |
commit | 83e8fceb6c170969b28eb45e55413f83ea6b55fa (patch) | |
tree | f1f0b16a1582b48a7e35db461e16714317400a17 /gnu/packages/ocaml.scm | |
parent | b35b661b89fc8d9bb9962874c5af5a83cf046c33 (diff) | |
download | guix-83e8fceb6c170969b28eb45e55413f83ea6b55fa.tar guix-83e8fceb6c170969b28eb45e55413f83ea6b55fa.tar.gz |
gnu: ocamlify: Perform bootstrap build.
setup.ml is pre-generated in this package. Since it is generated by a
dependent package, we build manually. This will also allow us to build
this package properly with ocaml 4.11.
* gnu/packages/ocaml.scm (ocamlify): Perform bootstrap build.
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r-- | gnu/packages/ocaml.scm | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index f26376b236..5a57b6760d 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2452,21 +2452,28 @@ radix-64 representation. It is specified in RFC 4648.") (base32 "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii")))) (build-system ocaml-build-system) (arguments - `(#:phases + `(#:tests? #f; no tests + #:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-safe-string - ;; Work around ‘Error: This expression has type string but an - ;; expression was expected of type bytes’ since OCaml 4.06. + (delete 'configure) + (replace 'build + ;; This package uses pre-generated setup.ml by oasis, but is + ;; a dependency of oasis. the pre-generated setup.ml is broken + ;; with recent versions of OCaml, so we perform a bootstrap instead. (lambda _ - (setenv "OCAMLPARAM" "safe-string=0,_") + (substitute* "src/OCamlifyConfig.ml.ab" + (("$pkg_version") ,version)) + (rename-file "src/OCamlifyConfig.ml.ab" "src/OCamlifyConfig.ml") + (with-directory-excursion "src" + (invoke "ocamlc" "OCamlifyConfig.ml" "ocamlify.ml" "-o" + "ocamlify")) #t)) - (delete 'check) ; tests are run during the build - (replace 'configure + (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (invoke "ocaml" "setup.ml" "-configure" "--prefix" - (assoc-ref outputs "out"))))))) - (native-inputs - `(("ocamlbuild" ,ocamlbuild))) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "src/ocamlify" bin) + #t)))))) (home-page "https://forge.ocamlcore.org/projects/ocamlify") (synopsis "Include files in OCaml code") (description "OCamlify creates OCaml source code by including |