@@ -, +, @@
---
sys-boot/udk/Manifest | 1 +
sys-boot/udk/metadata.xml | 20 +++
sys-boot/udk/udk-2015.ebuild | 334 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 355 insertions(+)
create mode 100644 sys-boot/udk/Manifest
create mode 100644 sys-boot/udk/metadata.xml
create mode 100644 sys-boot/udk/udk-2015.ebuild
--- a/sys-boot/udk/Manifest
+++ a/sys-boot/udk/Manifest
@@ -0,0 +1, @@
+DIST UDK2015.Complete.MyWorkSpace.zip 121736982 SHA256 ff11e68feafae13510ad5ee951bf7b219b3483ab335c1d0c85f45a5b7ba48b5e SHA512 7856a8f29296f817e8fd09d8eaf7207f4e25a13faa10936d1ceb10cb6a900be265379722c0ade0ef93b1c640fef8693667d2567962e3288b20ae77f607f03d39 WHIRLPOOL 8b1e283e0ae3ec422eea609a418784260119410a87c5397803730f1c73be0b113eec41ed4cd1920d32735a23377acd80bedf1867518733be6d698c3891775276
--- a/sys-boot/udk/metadata.xml
+++ a/sys-boot/udk/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ Tianocore UEFI development kit, installed as classical Linux libraries and
+ header files.
+
+
+ Kit de développement UEFI Tianocore, installé comme des bibliothèques et
+ des fichiers d'en-tête Linux classiques.
+
+
+
+
--- a/sys-boot/udk/udk-2015.ebuild
+++ a/sys-boot/udk/udk-2015.ebuild
@@ -0,0 +1,334 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit flag-o-matic multiprocessing python-single-r1 toolchain-funcs versionator
+
+DESCRIPTION="Tianocore UEFI Development kit"
+HOMEPAGE="http://www.tianocore.org/edk2/"
+MY_V="${PN^^}$(get_version_component_range 1)"
+SRC_URI="https://github.com/tianocore/${PN}/releases/download/${MY_V}/${MY_V}.Complete.MyWorkSpace.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="app-arch/unzip
+ dev-lang/nasm
+ ${PYTHON_DEPS}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S="${WORKDIR}/MyWorkSpace"
+
+pkg_setup() {
+ UNAME_ARCH=$(uname -m | sed -e 's:i[3456789]86:IA32:')
+ if [[ ${UNAME_ARCH} == "x86_64" ]] || [[ ${UNAME_ARCH} == "amd64" ]] ; then
+ export ARCH=X64
+ else
+ export ARCH=${UNAME_ARCH}
+ fi
+
+ # We will create a custom toolchain with user defined settings
+ export TOOLCHAIN_TAG="CUSTOM"
+}
+
+src_unpack() {
+ unpack ${A}
+ unpack "${WORKDIR}/${MY_V}.MyWorkSpace.zip"
+
+ pushd "${S}" || die
+ unpack "${WORKDIR}/BaseTools(Unix).tar"
+
+ local doc_name
+ if use doc; then
+ mkdir -p "${S}/doc" || die
+ pushd "${S}/doc" >/dev/null || die
+ for f in "${WORKDIR}/Documents/"*" Document.zip"; do
+ doc_name=$(echo ${f} | sed -e 's:^.*/([^/]*) Document.zip$:\1:')
+ if [[ -f "${WORKDIR}/Documents/${doc_name} Document.zip" ]]; then
+ unpack "${WORKDIR}/Documents/${doc_name} Document.zip"
+ mv "${S}/doc/html" "${S}/doc/${doc_name}" || die
+ fi
+ done
+ popd >/dev/null || die
+ fi
+
+ popd >/dev/null || die
+}
+
+src_configure() {
+ python_setup 'python2.7'
+
+ # Compile of Base Tools is required for further setting up the environment
+ # Base tools does not like parallel make
+ local cflags_save=${CFLAGS}
+ append-cflags $(test-flags-CC -MD) $(test-flags-CC -fshort-wchar)
+ append-cflags $(test-flags-CC -fno-strict-aliasing)
+ append-cflags $(test-flags-CC -nostdlib) $(test-flags-CC -c)
+ sed -e "s:^\(CFLAGS\s*=\).*$:\1 ${CFLAGS}:" \
+ -i "${S}/BaseTools/Source/C/Makefiles/header.makefile" \
+ || die "Failed to update makefile header"
+ local make_flags=(
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ AS="$(tc-getAS)"
+ AR="$(tc-getAR)"
+ LD="$(tc-getLD)"
+ )
+ emake "${make_flags[@]}" -j1 -C BaseTools
+ . edksetup.sh BaseTools
+
+ # Update flags in UDK parameter files
+ CFLAGS=${cflags_save}
+ append-cflags $(test-flags-CC -fshort-wchar)
+ append-cflags $(test-flags-CC -fno-strict-aliasing) $(test-flags-CC -c)
+ append-cflags $(test-flags-CC -ffunction-sections)
+ append-cflags $(test-flags-CC -fdata-sections)
+ append-cflags $(test-flags-CC -fno-stack-protector)
+ append-cflags $(test-flags-CC -fno-asynchronous-unwind-tables)
+ if [[ "${ARCH}" == "X64" ]]; then
+ append-cflags $(test-flags-CC -m64) $(test-flags-CC -mno-red-zone)
+ append-cflags $(test-flags-CC -mcmodel=large)
+ else
+ append-cflags $(test-flags-CC -m32) $(test-flags-CC -malign-double)
+ fi
+ append-ldflags -nostdlib -n -q --gc-sections
+ sed -e "s:^\(ACTIVE_PLATFORM\s*=\).*$:\1 MdeModulePkg/MdeModulePkg.dsc:" \
+ -e "s:^\(TARGET\s*=\).*$:\1 RELEASE:" \
+ -e "s:^\(TARGET_ARCH\s*=\).*$:\1 ${ARCH}:" \
+ -e "s:^\(TOOL_CHAIN_TAG\s*=\).*$:\1 ${TOOLCHAIN_TAG}:" \
+ -e "s:^\(MAX_CONCURRENT_THREAD_NUMBER\s*=\).*$:\1 $(makeopts_jobs):" \
+ -i "${S}/Conf/target.txt" || die "Failed to configure target file"
+ cat >>${S}/Conf/tools_def.txt <${1} <>${1} <${3}
+
+ cat >>${1} <>${1}
+ grep -e '^IMAGE_ENTRY_POINT\s*=' ${3} >>${1}
+ echo >>${1}
+ grep -e '^CP\s*=' ${3} >>${1}
+ grep -e '^RM\s*=' ${3} >>${1}
+ grep -e '^CC\s*=' ${3} >>${1}
+ grep -e '^DLINK\s*=' ${3} >>${1}
+ grep -e '^OBJCOPY\s*=' ${3} >>${1}
+ grep -e '^GENFW\s*=' ${3} >>${1}
+ [[ $ARCH == X64 ]] && PECOFF_HEADER_SIZE='0x228' || PECOFF_HEADER_SIZE='0x220'
+ cat >>${1} <>${1}
+ grep -e '^GENFW_FLAGS\s*=' ${3} >>${1}
+ cat >>${1} <