From 5bc99bc88351222d8c03c9a8dcbf29c4f3993533 Mon Sep 17 00:00:00 2001 From: Arie Middelkoop Date: Mon, 30 Jul 2012 18:08:06 +0200 Subject: [PATCH] Adds Ocaml 4.00.0 (first attempt) Bumps Findlib to 1.3.3 (required for ocaml 4.00) --- pkgs/development/compilers/ocaml/4.00.0.nix | 63 +++++++++++++++++++ .../tools/ocaml/findlib/default.nix | 6 +- pkgs/top-level/all-packages.nix | 3 + 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/compilers/ocaml/4.00.0.nix diff --git a/pkgs/development/compilers/ocaml/4.00.0.nix b/pkgs/development/compilers/ocaml/4.00.0.nix new file mode 100644 index 000000000000..da065356e851 --- /dev/null +++ b/pkgs/development/compilers/ocaml/4.00.0.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchurl, ncurses, x11 }: + +let + useX11 = !stdenv.isArm && !stdenv.isMips; + useNativeCompilers = !stdenv.isArm && !stdenv.isMips; + inherit (stdenv.lib) optionals optionalString; +in + +stdenv.mkDerivation rec { + + name = "ocaml-4.00.0"; + + src = fetchurl { + url = "http://caml.inria.fr/pub/distrib/ocaml-4.00/${name}.tar.bz2"; + sha256 = "ec886d7bc587ce472fcbdf294feb4b1fa2d8e7ef78ab6a4e66551699435d5cd7"; + }; + + prefixKey = "-prefix "; + configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11 ]; + buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt"; + buildInputs = [ncurses] ++ optionals useX11 [ x11 ]; + installTargets = "install" + optionalString useNativeCompilers " installopt"; + preConfigure = '' + CAT=$(type -tp cat) + sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang + ''; + postBuild = '' + mkdir -p $out/include + ln -sv $out/lib/ocaml/caml $out/include/caml + ''; + + passthru = { + nativeCompilers = useNativeCompilers; + }; + + meta = { + homepage = http://caml.inria.fr/ocaml; + licenses = [ "QPL" /* compiler */ "LGPLv2" /* library */ ]; + description = "OCaml, the most popular variant of the Caml language"; + + longDescription = + '' + OCaml is the most popular variant of the Caml language. From a + language standpoint, it extends the core Caml language with a + fully-fledged object-oriented layer, as well as a powerful module + system, all connected by a sound, polymorphic type system featuring + type inference. + + The OCaml system is an industrial-strength implementation of this + language, featuring a high-performance native-code compiler (ocamlopt) + for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc, + Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc) + and an interactive read-eval-print loop (ocaml) for quick development + and portability. The OCaml distribution includes a comprehensive + standard library, a replay debugger (ocamldebug), lexer (ocamllex) and + parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4) + and a documentation generator (ocamldoc). + ''; + + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + }; + +} diff --git a/pkgs/development/tools/ocaml/findlib/default.nix b/pkgs/development/tools/ocaml/findlib/default.nix index c89af03097d7..3170712b9baf 100644 --- a/pkgs/development/tools/ocaml/findlib/default.nix +++ b/pkgs/development/tools/ocaml/findlib/default.nix @@ -5,11 +5,11 @@ let in stdenv.mkDerivation { - name = "ocaml-findlib-1.2.7"; + name = "ocaml-findlib-1.3.3"; src = fetchurl { - url = http://download.camlcity.org/download/findlib-1.2.7.tar.gz; - sha256 = "16q2avr48hd7vwz3bwvjw39dva86mdwa05drcwz32fwbwhlv2869"; + url = http://download.camlcity.org/download/findlib-1.3.3.tar.gz; + sha256 = "981f5c67118a2be015efa79f3af3cb0063376b93123b5d695e7cb5c586b1d45c"; }; buildInputs = [m4 ncurses ocaml]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ad80feb12729..e07069587b18 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2396,6 +2396,8 @@ let ocaml_3_12_1 = callPackage ../development/compilers/ocaml/3.12.1.nix { }; + ocaml_4_00_0 = callPackage ../development/compilers/ocaml/4.00.0.nix { }; + metaocaml_3_09 = callPackage ../development/compilers/ocaml/metaocaml-3.09.nix { }; ber_metaocaml_003 = callPackage ../development/compilers/ocaml/ber-metaocaml-003.nix { }; @@ -2491,6 +2493,7 @@ let ocamlPackages_3_10_0 = mkOcamlPackages ocaml_3_10_0 pkgs.ocamlPackages_3_10_0; ocamlPackages_3_11_2 = mkOcamlPackages ocaml_3_11_2 pkgs.ocamlPackages_3_11_2; ocamlPackages_3_12_1 = mkOcamlPackages ocaml_3_12_1 pkgs.ocamlPackages_3_12_1; + ocamlPackages_4_00_0 = mkOcamlPackages ocaml_4_00_0 pkgs.ocamlPackages_4_00_0; ocaml_make = callPackage ../development/ocaml-modules/ocamlmake { };