aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/ocaml.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r--gnu/packages/ocaml.scm171
1 files changed, 145 insertions, 26 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 85b2dc8b45..2ec67ba7be 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,6 +43,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages llvm)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
@@ -51,6 +53,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
@@ -848,15 +851,14 @@ to the other.")
(define-public ocaml-findlib
(package
(name "ocaml-findlib")
- (version "1.6.1")
+ (version "1.7.3")
(source (origin
(method url-fetch)
(uri (string-append "http://download.camlcity.org/download/"
"findlib" "-" version ".tar.gz"))
(sha256
(base32
- "02abg1lsnwvjg3igdyb8qjgr5kv1nbwl4gaf8mdinzfii5p82721"))
- (patches (search-patches "ocaml-findlib-make-install.patch"))))
+ "12xx8si1qv3xz90qsrpazjjk4lc1989fzm97rsmc4diwla7n15ni"))))
(build-system gnu-build-system)
(native-inputs
`(("camlp4" ,camlp4)
@@ -878,6 +880,12 @@ to the other.")
"-mandir" (string-append out "/share/man")
"-sitelib" (string-append out "/lib/ocaml/site-lib")
"-with-toolbox"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (zero? (system* "make" "install"
+ (string-append "OCAML_CORE_STDLIB="
+ out "/lib/ocaml/site-lib"))))))
(add-after 'install 'remove-camlp4
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -898,28 +906,6 @@ compilation and linkage, there are new frontends of the various OCaml
compilers that can directly deal with packages.")
(license license:x11)))
-(define-public ocaml-findlib-1.7.3
- (package
- (inherit ocaml-findlib)
- (version "1.7.3")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://download.camlcity.org/download/"
- "findlib" "-" version ".tar.gz"))
- (sha256
- (base32
- "12xx8si1qv3xz90qsrpazjjk4lc1989fzm97rsmc4diwla7n15ni"))))
- (arguments
- (substitute-keyword-arguments (package-arguments ocaml-findlib)
- ((#:phases phases)
- `(modify-phases ,phases
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (zero? (system* "make" "install"
- (string-append "OCAML_CORE_STDLIB="
- out))))))))))))
-
(define-public ocaml4.01-findlib
(package
(inherit ocaml-findlib)
@@ -3726,7 +3712,7 @@ instead of bindings to a C library.")
("cppo" ,ocaml-cppo)
("jbuilder" ,ocaml-jbuilder)))
(propagated-inputs
- `(("findlib" ,ocaml-findlib-1.7.3)
+ `(("ocaml-findlib" ,ocaml-findlib)
("lambda-term" ,ocaml-lambda-term)
("lwt" ,ocaml-lwt)
("react" ,ocaml-react)
@@ -3739,6 +3725,139 @@ terminal or in Emacs. It supports line editing, history, real-time and context
sensitive completion, colors, and more.")
(license license:bsd-3)))
+(define-public ocaml-integers
+ (package
+ (name "ocaml-integers")
+ (version "0.2.2")
+ (home-page "https://github.com/ocamllabs/ocaml-integers")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page
+ "/releases/download/v0.2.2/integers-"
+ version ".tbz"))
+ (file-name (string-append name "-" version ".tbz"))
+ (sha256
+ (base32
+ "08b1ljw88ny3l0mdq6xmffjk8anfc77igryva5jz1p6f4f746ywk"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:build-flags (list "build")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs
+ `(("topkg" ,ocaml-topkg)
+ ("opam", opam)))
+ (synopsis "Various signed and unsigned integer types for OCaml")
+ (description "The ocaml-integers library provides a number of 8-, 16-, 32-
+and 64-bit signed and unsigned integer types, together with aliases such as
+long and size_t whose sizes depend on the host platform.")
+ (license license:expat)))
+
+(define-public ocaml-ctypes
+ (package
+ (name "ocaml-ctypes")
+ (version "0.13.1")
+ (home-page "https://github.com/ocamllabs/ocaml-ctypes")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17w0pr5k0zjcjns4y9n36rjpfl35zhvp3h8ggqs9lz12qhshdk2m"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "INSTALL_HEADERS = $(wildcard $($(PROJECT).dir)/*.h)"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libffi" ,libffi)
+ ("ounit" ,ocaml-ounit)
+ ("integers" ,ocaml-integers)
+ ("lwt" ,ocaml-lwt)
+ ("topkg" ,ocaml-topkg)
+ ("opam", opam)))
+ (synopsis "Library for binding to C libraries using pure OCaml")
+ (description "Ctypes is a library for binding to C libraries using pure
+OCaml. The primary aim is to make writing C extensions as straightforward as
+possible. The core of ctypes is a set of combinators for describing the
+structure of C types -- numeric types, arrays, pointers, structs, unions and
+functions. You can use these combinators to describe the types of the
+functions that you want to call, then bind directly to those functions -- all
+without writing or generating any C!")
+ (license license:expat)))
+
+(define-public ocaml-ocb-stubblr
+ (package
+ (name "ocaml-ocb-stubblr")
+ (version "0.1.1")
+ (home-page "https://github.com/pqwy/ocb-stubblr")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ home-page "/releases/download/v0.1.1/ocb-stubblr-"
+ version ".tbz"))
+ (file-name (string-append name "-" version ".tbz"))
+ (sha256
+ (base32
+ "167b7x1j21mkviq8dbaa0nmk4rps2ilvzwx02igsc2706784z72f"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:build-flags (list "build" "--tests" "true")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs
+ `(("topkg" ,ocaml-topkg)
+ ("opam", opam)))
+ (native-inputs
+ `(("astring" ,ocaml-astring)))
+ (synopsis "OCamlbuild plugin for C stubs")
+ (description "Ocb-stubblr is about ten lines of code that you need to
+repeat over, over, over and over again if you are using ocamlbuild to build
+OCaml projects that contain C stubs.")
+ (license license:isc)))
+
+(define-public ocaml-tsdl
+ (package
+ (name "ocaml-tsdl")
+ (version "0.9.1")
+ (home-page "http://erratique.ch/software/tsdl")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/releases/tsdl-"
+ version ".tbz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "08bb97fhvz829fb0sgjn2p20mp7b04v98zy2qxpk2w390a6c4b34"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:build-flags '("build")
+ #:tests? #f; tests require a display device
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("opam" ,opam)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("topkg" ,ocaml-topkg)
+ ("result" ,ocaml-result)
+ ("sdl2" ,sdl2)
+ ("integers" ,ocaml-integers)
+ ("ctypes" ,ocaml-ctypes)))
+ (synopsis "Thin bindings to SDL for OCaml")
+ (description "Tsdl is an OCaml library providing thin bindings to the
+cross-platform SDL C library.")
+ (license license:isc)))
+
(define-public coq-flocq
(package
(name "coq-flocq")