diff options
Diffstat (limited to 'pkgs/development/compilers/ocaml/generic.nix')
-rw-r--r-- | pkgs/development/compilers/ocaml/generic.nix | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix index 9557d0a79ae..d39c0d86fd5 100644 --- a/pkgs/development/compilers/ocaml/generic.nix +++ b/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,11 +43,16 @@ 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"; |