guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/10: gnu: Add ocaml-piqilib.


From: julien lepiller
Subject: 05/10: gnu: Add ocaml-piqilib.
Date: Wed, 27 Sep 2017 15:28:11 -0400 (EDT)

roptat pushed a commit to branch master
in repository guix.

commit 9c5dbbf0cebe8aea9892ebdf24eb8f19db8e13fa
Author: Julien Lepiller <address@hidden>
Date:   Thu Sep 21 20:44:57 2017 +0200

    gnu: Add ocaml-piqilib.
    
    * gnu/packages/ocaml.scm (ocaml-piqilib): New variable.
---
 gnu/packages/ocaml.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 4cb66bd..0ba2364 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -3303,6 +3303,64 @@ Format module of the OCaml standard library.")
 cpp-like directives.")
     (license license:bsd-3)))
 
+(define-public ocaml-piqilib
+  (package
+    (name "ocaml-piqilib")
+    (version "0.6.13")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/alavrik/piqi/archive/v";
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system ocaml-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-ocamlpath
+           (lambda _
+             (substitute* '("Makefile" "make/Makefile.ocaml")
+               (("OCAMLPATH := ") "OCAMLPATH := $(OCAMLPATH):"))
+             #t))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "make/OCamlMakefile"
+                 (("/bin/sh") (which "bash")))
+               (zero? (system* "./configure" "--prefix" out "--ocaml-libdir"
+                               (string-append out "/lib/ocaml/site-lib"))))))
+       (add-after 'build 'build-ocaml
+         (lambda* (#:key outputs #:allow-other-keys)
+           (zero? (system* "make" "ocaml")))) 
+       (add-after 'install 'install-ocaml
+         (lambda* (#:key outputs #:allow-other-keys)
+           (zero? (system* "make" "ocaml-install"))))
+       (add-after 'install-ocaml 'link-stubs
+         (lambda* (#:key outputs #:allow-other-keys)
+           (let* ((out (assoc-ref outputs "out"))
+                  (stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
+                  (lib (string-append out "/lib/ocaml/site-lib/piqilib")))
+             (mkdir-p stubs)
+             (symlink (string-append lib "/dllpiqilib_stubs.so")
+                      (string-append stubs "/dllpiqilib_stubs.so"))
+             #t))))))
+    (native-inputs
+     `(("which" ,which)
+       ("camlp4" ,camlp4)))
+    (propagated-inputs
+     `(("xmlm" ,ocaml-xmlm)
+       ("ulex" ,ocaml-ulex)
+       ("optcomp" ,optcomp)
+       ("easy-format" ,ocaml-easy-format)
+       ("base64" ,ocaml-base64)))
+    (home-page "http://piqi.org";)
+    (synopsis "Data serialization and conversion library")
+    (description "Piqilib is the common library used by the piqi command-line
+tool and piqi-ocaml.")
+    (license license:asl2.0)))
+
 (define-public coq-flocq
   (package
     (name "coq-flocq")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]