summary refs log tree commit diff
path: root/pkgs/stdenv/default.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2006-02-09 15:55:20 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2006-02-09 15:55:20 +0000
commit29c64c6c6768ea1594a85d1544ee9c64a16d534e (patch)
tree994cdb4bb784634f4586dac5a50227f95b07aa82 /pkgs/stdenv/default.nix
parent6f2a205e8779c4ffa56dde6d4d8b376387c013e9 (diff)
downloadnixpkgs-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.nix90
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;
+}