|
|
|
@ -1,37 +1,31 @@ |
|
|
|
|
{stdenv, fetchurl, unzip, platform}: |
|
|
|
|
{stdenv, fetchurl, unzip}: |
|
|
|
|
|
|
|
|
|
# This does not cover the case for cross-building, but we need some filtering |
|
|
|
|
# for the normal stdenv, in order to build the nixpkgs tarball |
|
|
|
|
assert (stdenv.system != "i686-linux" && stdenv.system != "x86_64-linux") |
|
|
|
|
|| (stdenv ? cross); |
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation { |
|
|
|
|
name = "uboot-2009.11"; |
|
|
|
|
|
|
|
|
|
src = fetchurl { |
|
|
|
|
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-2009.11.tar.bz2"; |
|
|
|
|
sha256 = "1rld7q3ww89si84g80hqskd1z995lni5r5xc4d4322n99wqiarh6"; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
# patches = [ ./gas220.patch ]; |
|
|
|
|
|
|
|
|
|
# Remove the cross compiler prefix, and add reiserfs support |
|
|
|
|
configurePhase = assert (platform ? ubootConfig); |
|
|
|
|
let |
|
|
|
|
platform = stdenv.platform; |
|
|
|
|
configureFun = ubootConfig : |
|
|
|
|
'' |
|
|
|
|
make mrproper |
|
|
|
|
make ${platform.ubootConfig} NBOOT=1 LE=1 |
|
|
|
|
sed -i /CROSS_COMPILE/d include/config.mk |
|
|
|
|
make ${ubootConfig} NBOOT=1 LE=1 |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
buildPhase = assert (platform ? kernelArch); |
|
|
|
|
buildFun = kernelArch : |
|
|
|
|
'' |
|
|
|
|
unset src |
|
|
|
|
if test -z "$crossConfig"; then |
|
|
|
|
make clean all |
|
|
|
|
else |
|
|
|
|
make clean all ARCH=${platform.kernelArch} CROSS_COMPILE=$crossConfig- |
|
|
|
|
make clean all ARCH=${kernelArch} CROSS_COMPILE=$crossConfig- |
|
|
|
|
fi |
|
|
|
|
''; |
|
|
|
|
in |
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation { |
|
|
|
|
name = "uboot-2009.11"; |
|
|
|
|
|
|
|
|
|
src = fetchurl { |
|
|
|
|
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-2009.11.tar.bz2"; |
|
|
|
|
sha256 = "1rld7q3ww89si84g80hqskd1z995lni5r5xc4d4322n99wqiarh6"; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
buildNativeInputs = [ unzip ]; |
|
|
|
|
|
|
|
|
@ -46,4 +40,24 @@ stdenv.mkDerivation { |
|
|
|
|
ensureDir $out/bin |
|
|
|
|
cp tools/{envcrc,mkimage} $out/bin |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
configurePhase = |
|
|
|
|
assert platform ? uboot && platform.uboot != null; |
|
|
|
|
assert (platform ? ubootConfig); |
|
|
|
|
configureFun platform.ubootConfig; |
|
|
|
|
|
|
|
|
|
buildPhase = assert (platform ? kernelArch); |
|
|
|
|
buildFun platform.kernelArch; |
|
|
|
|
|
|
|
|
|
crossAttrs = let |
|
|
|
|
cp = stdenv.cross.platform; |
|
|
|
|
in |
|
|
|
|
assert cp ? uboot && cp.uboot != null; |
|
|
|
|
{ |
|
|
|
|
configurePhase = assert (cp ? ubootConfig); |
|
|
|
|
configureFun cp.ubootConfig; |
|
|
|
|
|
|
|
|
|
buildPhase = assert (cp ? kernelArch); |
|
|
|
|
buildFun cp.kernelArch; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|