at 15.09-beta 73 lines 2.0 kB view raw
1{ stdenv, fetchgit, libuuid, pythonFull, iasl }: 2 3let 4 5targetArch = if stdenv.isi686 then 6 "IA32" 7else if stdenv.isx86_64 then 8 "X64" 9else 10 throw "Unsupported architecture"; 11 12edk2 = stdenv.mkDerivation { 13 name = "edk2-2014-12-10"; 14 15 src = fetchgit { 16 url = git://github.com/tianocore/edk2; 17 rev = "684a565a04"; 18 sha256 = "1l46396f48v91z5b8lh3b0f0lcd7z5f86i1nrpc7l5gf7gx3117j"; 19 }; 20 21 buildInputs = [ libuuid pythonFull ]; 22 23 buildPhase = '' 24 make -C BaseTools 25 ''; 26 27 installPhase = '' 28 mkdir -vp $out 29 mv -v BaseTools $out 30 mv -v EdkCompatibilityPkg $out 31 mv -v edksetup.sh $out 32 ''; 33 34 meta = { 35 description = "Intel EFI development kit"; 36 homepage = http://sourceforge.net/projects/edk2/; 37 license = stdenv.lib.licenses.bsd2; 38 platforms = ["x86_64-linux" "i686-linux"]; 39 }; 40 41 passthru = { 42 setup = projectDscPath: attrs: { 43 buildInputs = [ pythonFull ] ++ 44 stdenv.lib.optionals (attrs ? buildInputs) attrs.buildInputs; 45 46 configurePhase = '' 47 mkdir -v Conf 48 sed -e 's|Nt32Pkg/Nt32Pkg.dsc|${projectDscPath}|' -e \ 49 's|MYTOOLS|GCC49|' -e 's|IA32|${targetArch}|' -e 's|DEBUG|RELEASE|'\ 50 < ${edk2}/BaseTools/Conf/target.template > Conf/target.txt 51 sed -e 's|DEFINE GCC48_IA32_PREFIX = /usr/bin/|DEFINE GCC48_IA32_PREFIX = ""|' \ 52 -e 's|DEFINE GCC48_X64_PREFIX = /usr/bin/|DEFINE GCC48_X64_PREFIX = ""|' \ 53 -e 's|DEFINE UNIX_IASL_BIN = /usr/bin/iasl|DEFINE UNIX_IASL_BIN = ${iasl}/bin/iasl|' \ 54 < ${edk2}/BaseTools/Conf/tools_def.template > Conf/tools_def.txt 55 export WORKSPACE="$PWD" 56 export EFI_SOURCE="$PWD/EdkCompatibilityPkg" 57 ln -sv ${edk2}/BaseTools BaseTools 58 ln -sv ${edk2}/EdkCompatibilityPkg EdkCompatibilityPkg 59 . ${edk2}/edksetup.sh BaseTools 60 ''; 61 62 buildPhase = " 63 build 64 "; 65 66 installPhase = "mv -v Build/*/* $out"; 67 } // (removeAttrs attrs [ "buildInputs" ] ); 68 }; 69}; 70 71in 72 73edk2