# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=4 inherit toolchain-funcs DESCRIPTION="EDK II is a development code base for creating UEFI drivers,applications and firmware images." HOMEPAGE="http://sourceforge.net/apps/mediawiki/tianocore/index.php" SRC_URI="http://downloads.sourceforge.net/project/edk2/UDK2010%20Releases/UDK2010.SR1.UP1/UDK2010.SR1.UP1.Complete.MyWorkSpace.zip http://www.openssl.org/source/openssl-0.9.8w.tar.gz" LICENSE="BSD" SLOT="0" KEYWORDS="amd64" IUSE="" DEPEND="sys-boot/edk2-buildtools sys-power/iasl" RDEPEND="${DEPEND}" export EDK_TOOLS_PATH=/opt/edk2/BaseTools export WORKSPACE="${S}/MyWorkSpace" EDK2_GCC="GCC$(gcc-major-version)$(gcc-minor-version)" case ${ARCH} in amd64) EDK2_ARCH=X64;; ia64) EDKS_ARCH=IA32;; esac src_unpack(){ mkdir $S cd $S default_src_unpack || die unzip UDK2010.SR1.UP1.MyWorkSpace.zip } src_prepare(){ mv openssl-0.9.8w MyWorkSpace/CryptoPkg/Library/OpensslLib/ cd "MyWorkSpace/CryptoPkg/Library/OpensslLib/openssl-0.9.8w" patch -p0 -i ../EDKII_openssl-0.9.8w.patch || die cd .. chmod +x Install.sh ./Install.sh || die } src_configure(){ cd MyWorkSpace mkdir Conf source /opt/edk2/BaseTools/BuildEnv || die sed -i \ -e "s/Nt32Pkg/MdeModulePkg/g" \ -e "s/= DEBUG/= RELEASE/g" \ -e "s/= IA32/= ${EDK2_ARCH}/g"\ -e "s/= MYTOOLS/= ${EDK2_GCC}/g" \ Conf/target.txt } src_compile(){ #compile build tools cd MyWorkSpace #compile modules build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p CryptoPkg/CryptoPkg.dsc || die case ${ARCH} in amd64) build -a $EDK2_ARCH -b DEBUG -t $EDK2_GCC -p DuetPkg/DuetPkgX64.dsc || die;; ia64) build -a $EDK2_ARCH -b DEBUG -t $EDK2_GCC -p DuetPkg/DuetPkgIa32.dsc || die;; esac build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p EdkCompatibilityPkg/EdkCompatibilityPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p FatPkg/FatPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p IntelFrameworkPkg/IntelFrameworkPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p MdeModulePkg/MdeModulePkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p MdePkg/MdePkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p NetworkPkg/NetworkPkg.dsc || die #build -a IA32 -b RELEASE -t $EDK2_GCC -p Nt32Pkg/Nt32Pkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p PcAtChipsetPkg/PcAtChipsetPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p PerformancePkg/PerformancePkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p SecurityPkg/SecurityPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p ShellPkg/ShellPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p SourceLevelDebugPkg/SourceLevelDebugPkg.dsc || die build -a $EDK2_ARCH -b RELEASE -t $EDK2_GCC -p UefiCpuPkg/UefiCpuPkg.dsc || die } src_install(){ insinto /opt/edk2 doins -r Documents cd MyWorkSpace FILES=`find .` for FILE in $FILES ; do DIR=`dirname $FILE` if [[ (-x $FILE) && !(-d $FILE) ]] ; then exeinto "/opt/edk2/${DIR}" doexe $FILE elif [[ !(-d $FILE) ]] ; then insinto "/opt/edk2/${DIR}" doins $FILE fi done }