nixpkgs-suyu/pkgs/top-level/release-cross.nix
Ludovic Courtès 454453a59d Attempt to cross-build Nix for GNU.
svn path=/nixpkgs/trunk/; revision=22373
2010-06-22 13:02:31 +00:00

168 lines
4 KiB
Nix

with (import ./release-lib.nix);
let
nativePlatforms = linux;
/* Basic list of packages to cross-build */
basicHostDrv = {
bison.hostDrv = nativePlatforms;
busybox.hostDrv = nativePlatforms;
coreutils_real.hostDrv = nativePlatforms;
dropbear.hostDrv = nativePlatforms;
tightvnc.hostDrv = nativePlatforms;
#openoffice.hostDrv = nativePlatforms;
wxGTK.hostDrv = nativePlatforms;
#firefox = nativePlatforms;
xorg = {
#xorgserver.hostDrv = nativePlatforms;
};
nixUnstable.hostDrv = nativePlatforms;
linuxPackages_2_6_32.kernel.hostDrv = linux;
linuxPackages_2_6_33.kernel.hostDrv = linux;
};
/* Basic list of packages to be natively built,
but need a crossSystem defined to get meaning */
basicBuildDrv = {
gdbCross = nativePlatforms;
};
basic = basicHostDrv // basicBuildDrv;
in
(
/* Test some cross builds to the Sheevaplug */
let
crossSystem = {
config = "armv5tel-unknown-linux-gnueabi";
bigEndian = false;
arch = "arm";
float = "soft";
withTLS = true;
platform = pkgs.platforms.sheevaplug;
libc = "glibc";
openssl.system = "linux-generic32";
};
in {
crossSheevaplugLinux = mapTestOnCross crossSystem (
basic //
{
ubootSheevaplug.hostDrv = nativePlatforms;
});
}) // (
/* Test some cross builds to the Sheevaplug - uclibc*/
let
crossSystem = {
config = "armv5tel-unknown-linux-gnueabi";
bigEndian = false;
arch = "arm";
float = "soft";
withTLS = true;
platform = pkgs.platforms.sheevaplug;
libc = "uclibc";
openssl.system = "linux-generic32";
};
in {
crossSheevaplugLinuxUclibc = mapTestOnCross crossSystem (
basic //
{
ubootSheevaplug.hostDrv = nativePlatforms;
});
}) // (
/* Test some cross builds to the mipsel */
let
crossSystem = {
config = "mipsel-unknown-linux";
bigEndian = false;
arch = "mips";
float = "soft";
withTLS = true;
libc = "uclibc";
platform = {
name = "malta";
kernelMajor = "2.4";
kernelBaseConfig = "malta_defconfig";
kernelHeadersBaseConfig = "defconfig-malta";
uboot = null;
kernelArch = "mips";
kernelAutoModules = false;
kernelTarget = "vmlinux";
};
openssl.system = "linux-generic32";
};
in {
crossMipselLinux24 = mapTestOnCross crossSystem basic;
}) // (
/* Test some cross builds to the ultrasparc */
let
crossSystem = {
config = "sparc64-unknown-linux";
bigEndian = true;
arch = "sparc64";
float = "hard";
withTLS = true;
libc = "glibc";
platform = {
name = "ultrasparc";
kernelMajor = "2.6";
kernelHeadersBaseConfig = "sparc64_defconfig";
kernelBaseConfig = "sparc64_defconfig";
kernelArch = "sparc";
kernelAutoModules = false;
kernelTarget = "zImage";
uboot = null;
};
openssl.system = "linux64-sparcv9";
gcc.cpu = "ultrasparc";
};
in {
crossUltraSparcLinux = mapTestOnCross crossSystem basic;
}) // (
/* Test some cross builds on mingw32 */
let
crossSystem = {
config = "i686-pc-mingw32";
arch = "x86";
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
platform = {};
};
in {
crossMingw32 = mapTestOnCross crossSystem {
windows.wxMSW.hostDrv = nativePlatforms;
gccCrossStageFinal = nativePlatforms;
};
}) // (
/* GNU aka. GNU/Hurd. */
let
crossSystem = {
config = "i586-pc-gnu";
bigEndian = false;
arch = "i586";
float = "hard";
withTLS = true;
platform = pkgs.platforms.pc;
libc = "glibc";
openssl.system = "hurd-x86"; # Nix depends on OpenSSL.
};
in {
crossGNU = mapTestOnCross crossSystem {
gccCrossStageFinal = nativePlatforms;
hurdCross = nativePlatforms;
mach.hostDrv = nativePlatforms;
coreutils_real.hostDrv = nativePlatforms;
ed.hostDrv = nativePlatforms;
grub2.hostDrv = nativePlatforms;
inetutils.hostDrv = nativePlatforms;
nixUnstable.hostDrv = nativePlatforms;
patch.hostDrv = nativePlatforms;
zile.hostDrv = nativePlatforms;
};
})