diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-02-09 15:55:20 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-02-09 15:55:20 +0000 |
commit | 29c64c6c6768ea1594a85d1544ee9c64a16d534e (patch) | |
tree | 994cdb4bb784634f4586dac5a50227f95b07aa82 /pkgs/stdenv/default.nix | |
parent | 6f2a205e8779c4ffa56dde6d4d8b376387c013e9 (diff) | |
download | nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.tar nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.tar.gz nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.tar.bz2 nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.tar.lz nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.tar.xz nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.tar.zst nixpkgs-29c64c6c6768ea1594a85d1544ee9c64a16d534e.zip |
* Move top-level/stdenvs.nix to the stdenv/ directory.
svn path=/nixpkgs/branches/usability/; revision=4774
Diffstat (limited to 'pkgs/stdenv/default.nix')
-rw-r--r-- | pkgs/stdenv/default.nix | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix new file mode 100644 index 00000000000..b66d770782c --- /dev/null +++ b/pkgs/stdenv/default.nix @@ -0,0 +1,90 @@ +# This file defines the various standard build environments. +# +# On Linux systems, the standard build environment consists of +# Nix-built instances glibc and the `standard' Unix tools, i.e., the +# Posix utilities, the GNU C compiler, and so on. On other systems, +# we use the native C library. + +{system, allPackages}: + +rec { + + gccWrapper = import ../build-support/gcc-wrapper; + genericStdenv = import ./generic; + + + # Trivial environment used for building other environments. + stdenvInitial = (import ./initial) { + name = "stdenv-initial"; + inherit system; + }; + + + # The native (i.e., impure) build environment. This one uses the + # tools installed on the system outside of the Nix environment, + # i.e., the stuff in /bin, /usr/bin, etc. This environment should + # be used with care, since many Nix packages will not build properly + # with it (e.g., because they require GNU Make). + stdenvNative = (import ./native) { + stdenv = stdenvInitial; + inherit genericStdenv gccWrapper; + }; + + stdenvNativePkgs = allPackages { + bootStdenv = stdenvNative; + noSysDirs = false; + }; + + + # The Nix build environment. + stdenvNix = (import ./nix) { + stdenv = stdenvNative; + pkgs = stdenvNativePkgs; + inherit genericStdenv gccWrapper; + }; + + stdenvNixPkgs = allPackages { + bootStdenv = stdenvNix; + noSysDirs = false; + }; + + + # Linux standard environment. + inherit (import ./linux {inherit allPackages;}) + stdenvLinux stdenvLinuxPkgs; + + + # Darwin (Mac OS X) standard environment. Very simple for now + # (essentially it's just the native environment). + stdenvDarwin = (import ./darwin) { + stdenv = stdenvInitial; + inherit genericStdenv gccWrapper; + }; + + stdenvDarwinPkgs = allPackages { + bootStdenv = stdenvDarwin; + noSysDirs = false; + }; + + + # FreeBSD standard environment. Right now this is more or less the + # same as the native environemnt. Eventually we'll want a pure + # environment similar to stdenvLinux. + stdenvFreeBSD = (import ./freebsd) { + stdenv = stdenvInitial; + inherit genericStdenv gccWrapper; + }; + + stdenvFreeBSDPkgs = allPackages { + bootStdenv = stdenvFreeBSD; + noSysDirs = false; + }; + + + # Select the appropriate stdenv for the platform `system'. + stdenv = + if system == "i686-linux" then stdenvLinux + else if system == "i686-freebsd" then stdenvFreeBSD + else if system == "powerpc-darwin" then stdenvDarwin + else stdenvNative; +} |