diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-02-10 15:48:30 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-02-10 15:48:30 +0000 |
commit | 0cf9849afd0db06dc70a938000b545099c06eb43 (patch) | |
tree | 4d0d5c4c45a4a33be9d70f6758f8c962f4cb001d /pkgs/top-level/all-packages.nix | |
parent | b2ccd56224a60e7ae4f5a6cb1b740ba3485fd3e0 (diff) | |
download | nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.gz nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.bz2 nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.lz nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.xz nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.zst nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.zip |
* More refactoring: move all the stdenv adapter functions (like
useDietlibc) to a separate file. all-packages.nix should really only contain package composition stuff. svn path=/nixpkgs/trunk/; revision=14022
Diffstat (limited to 'pkgs/top-level/all-packages.nix')
-rw-r--r-- | pkgs/top-level/all-packages.nix | 98 |
1 files changed, 4 insertions, 94 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 955762ecb93..f861bea95a0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -106,105 +106,11 @@ let inherit lib config getConfig; - # Override the compiler in stdenv for specific packages. - overrideGCC = stdenv: gcc: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { NIX_GCC = gcc; }); - }; - - # Add some arbitrary packages to buildInputs for specific packages. - # Used to override packages in stenv like Make. Should not be used - # for other dependencies. - overrideInStdenv = stdenv: pkgs: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // - { buildInputs = (if args ? buildInputs then args.buildInputs else []) ++ pkgs; } - ); - }; - addAttrsToDerivation = extraAttrs: stdenv: stdenv // { mkDerivation = args: stdenv.mkDerivation (args // extraAttrs); }; - # Override the setup script of stdenv. Useful for testing new - # versions of the setup script without causing a rebuild of - # everything. - # - # Example: - # randomPkg = import ../bla { ... - # stdenv = overrideSetup stdenv ../stdenv/generic/setup-latest.sh; - # }; - overrideSetup = stdenv: setup: stdenv.regenerate setup; - stdenvNew = overrideSetup stdenv ../stdenv/generic/setup-new.sh; - # Return a modified stdenv that uses dietlibc to create small - # statically linked binaries. - useDietLibC = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { - NIX_CFLAGS_LINK = "-static"; - - # libcompat.a contains some commonly used functions. - NIX_LDFLAGS = "-lcompat"; - - # These are added *after* the command-line flags, so we'll - # always optimise for size. - NIX_CFLAGS_COMPILE = - (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "") - + " -Os -s -D_BSD_SOURCE=1"; - - configureFlags = - (if args ? configureFlags then args.configureFlags else "") - + " --disable-shared"; # brrr... - - NIX_GCC = import ../build-support/gcc-wrapper { - inherit stdenv; - libc = dietlibc; - inherit (gcc) gcc binutils name nativeTools nativePrefix; - nativeLibc = false; - }; - }); - isDietLibC = true; - } // {inherit fetchurl;}; - - # Return a modified stdenv that uses klibc to create small - # statically linked binaries. - useKlibc = stdenv: klibc: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { - NIX_CFLAGS_LINK = "-static"; - - # These are added *after* the command-line flags, so we'll - # always optimise for size. - NIX_CFLAGS_COMPILE = - (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "") - + " -Os -s"; - - configureFlags = - (if args ? configureFlags then args.configureFlags else "") - + " --disable-shared"; # brrr... - - NIX_GCC = runCommand "klibc-wrapper" {} '' - ensureDir $out/bin - ln -s ${klibc}/bin/klcc $out/bin/gcc - ln -s ${klibc}/bin/klcc $out/bin/cc - ensureDir $out/nix-support - echo 'PATH=$PATH:${stdenv.gcc.binutils}/bin' > $out/nix-support/setup-hook - ''; - }); - isKlibc = true; - isStatic = true; - } // {inherit fetchurl;}; - - # Return a modified stdenv that tries to build statically linked - # binaries. - makeStaticBinaries = stdenv: stdenv // - { mkDerivation = args: stdenv.mkDerivation (args // { - NIX_CFLAGS_LINK = "-static"; - - configureFlags = - (if args ? configureFlags then args.configureFlags else "") - + " --disable-shared"; # brrr... - }); - isStatic = true; - } // {inherit fetchurl;}; - # Applying this to an attribute set will cause nix-env to look # inside the set for derivations. recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;}; @@ -322,6 +228,10 @@ let else stdenv; + inherit (import ../stdenv/adapters.nix {inherit (pkgs) dietlibc fetchurl runCommand;}) + overrideGCC overrideInStdenv overrideSetup + useDietLibC useKlibc makeStaticBinaries; + ### BUILD SUPPORT |