diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/ocaml/generic.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/ocaml/generic.nix | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/generic.nix b/nixpkgs/pkgs/development/compilers/ocaml/generic.nix index 9557d0a79aeb..6980b6e5ff13 100644 --- a/nixpkgs/pkgs/development/compilers/ocaml/generic.nix +++ b/nixpkgs/pkgs/development/compilers/ocaml/generic.nix @@ -12,16 +12,18 @@ in { stdenv, fetchurl, ncurses, buildEnv , libX11, xorgproto, useX11 ? safeX11 stdenv +, aflSupport ? false , flambdaSupport ? false }: assert useX11 -> !stdenv.isAarch32 && !stdenv.isMips; +assert aflSupport -> stdenv.lib.versionAtLeast version "4.05"; assert flambdaSupport -> stdenv.lib.versionAtLeast version "4.03"; let useNativeCompilers = !stdenv.isMips; inherit (stdenv.lib) optional optionals optionalString; - name = "ocaml${optionalString flambdaSupport "+flambda"}-${version}"; + name = "ocaml${optionalString aflSupport "+afl"}${optionalString flambdaSupport "+flambda"}-${version}"; in let @@ -41,17 +43,22 @@ stdenv.mkDerivation (args // { }; prefixKey = "-prefix "; - configureFlags = optionals useX11 ( - if stdenv.lib.versionAtLeast version "4.08" - then [ "--x-libraries=${x11lib}" "--x-includes=${x11inc}"] - else [ "-x11lib" x11lib "-x11include" x11inc ]) - ++ optional flambdaSupport "-flambda" + configureFlags = + let flags = new: old: + if stdenv.lib.versionAtLeast version "4.08" + then new else old + ; in + optionals useX11 (flags + [ "--x-libraries=${x11lib}" "--x-includes=${x11inc}"] + [ "-x11lib" x11lib "-x11include" x11inc ]) + ++ optional aflSupport (flags "--with-afl" "-afl-instrument") + ++ optional flambdaSupport (flags "--enable-flambda" "-flambda") ; - buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt"; + buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ]; buildInputs = optional (!stdenv.lib.versionAtLeast version "4.07") ncurses ++ optionals useX11 [ libX11 xorgproto ]; - installTargets = "install" + optionalString useNativeCompilers " installopt"; + installTargets = [ "install" ] ++ optional useNativeCompilers "installopt"; preConfigure = optionalString (!stdenv.lib.versionAtLeast version "4.04") '' CAT=$(type -tp cat) sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang |