From ce12e3783ad0e63a73a7ddc3471a0c82083b6283 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Wed, 17 Feb 2021 22:45:08 +0000 Subject: [PATCH] gnu: Add camlidl * gnu/packages/ocaml.scm (camlidl): New variable. --- gnu/packages/ocaml.scm | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index dec1f8405e..335fec50f0 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2020 divoplade ;;; Copyright © 2020 pukkamustard ;;; Copyright © 2021 aecepoglu +;;; Copyright © 2021 Sharlatan Hellseher ;;; ;;; This file is part of GNU Guix. ;;; @@ -251,6 +252,70 @@ functional, imperative and object-oriented styles of programming.") for building OCaml library and programs.") (license license:lgpl2.1+))) +(define-public camlidl + (package + (name "camlidl") + (version "1.09") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xavierleroy/camlidl") + (commit "camlidl109"))) + (sha256 + (base32 "0zrkaq7fk23b2b9vg6jwdjx7l0hdqp4synbbrw1zcg8gjf6n3c80")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;; No test suite + #:make-flags + (list + (string-append + "BINDIR=" (assoc-ref %outputs "out") "/bin") + (string-append + "OCAMLLIB=" (assoc-ref %outputs "out") "/lib/ocaml/site-lib/camlidl")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (let* ((cores (parallel-job-count)) + (dash-j (format #f "-j~a" cores))) + (copy-file "config/Makefile.unix" "config/Makefile") + (invoke "make" dash-j "all")) + #t)) + (add-before 'install 'create-target-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (string-append (assoc-ref outputs "out")))) + (mkdir-p + (string-append out "/bin")) + (mkdir-p + (string-append out "/lib/ocaml/site-lib/camlidl/stublibs")) + (mkdir-p + (string-append out "/lib/ocaml/site-lib/camlidl/caml"))) + #t)) + (add-after 'install 'install-meta + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-output-to-file + (string-append out "/lib/ocaml/site-lib/camlidl/META") + (lambda _ + (display + (string-append + "description = \"Stub code generator for OCaml/C interface\" +version = \"" ,version "\" +directory = \"^\" +archive(byte) = \"com.cma\" +archive(native) = \"com.cmxa\""))))) + #t))))) + (native-inputs + `(("ocaml" ,ocaml))) + (home-page "https://github.com/xavierleroy/camlidl") + (synopsis "Stub code generator for OCaml/C interface") + (description + "Camlidl is a stub code generator for Objective Caml. It generates stub +code for interfacing Caml with C from an IDL description of the C functions.") + (license license:lgpl2.1))) + (define-public ocaml-extlib (package (name "ocaml-extlib") -- 2.30.0