diff options
author | Keshav Amburay | 2013-07-15 19:14:29 +0530 |
---|---|---|
committer | Keshav Amburay | 2013-07-15 19:14:29 +0530 |
commit | 75dbe0b66be3a741fee61270b6b281cb29102037 (patch) | |
tree | 27c1ecc900f26bce2011c366cc16f70d92d5e468 | |
parent | e9ed753fd81edd3a5618e81ee2cfd8b76bc61f12 (diff) | |
download | aur-75dbe0b66be3a741fee61270b6b281cb29102037.tar.gz |
Update PKGBUILD for prepare()
-rw-r--r-- | .SRCINFO | 5 | ||||
-rw-r--r-- | PKGBUILD | 146 |
2 files changed, 90 insertions, 61 deletions
@@ -1,6 +1,6 @@ pkgbase = ovmf-svn - pkgdesc = UEFI Firmware (OVMF) with Secure Boot Support for Virtual Machines (QEMU) - from Tianocore EDK2 - SVN Version - pkgver = 14466 + pkgdesc = UEFI Firmware (OVMF) with Secure Boot Support - for Virtual Machines (QEMU) - from Tianocore EDK2 - SVN Version + pkgver = 14467 pkgrel = 1 url = http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF install = ovmf.install @@ -8,6 +8,7 @@ pkgbase = ovmf-svn license = BSD makedepends = subversion makedepends = python2 + makedepends = iasl provides = ovmf provides = ovmf-tianocore-edk2 provides = ovmf-tianocore-edk2-svn @@ -20,14 +20,14 @@ _OPENSSL_VERSION="0.9.8w" _pkgname="ovmf" pkgname="${_pkgname}-svn" -pkgver=14466 +pkgver=14467 pkgrel=1 -pkgdesc="UEFI Firmware (OVMF) with Secure Boot Support for Virtual Machines (QEMU) - from Tianocore EDK2 - SVN Version" +pkgdesc="UEFI Firmware (OVMF) with Secure Boot Support - for Virtual Machines (QEMU) - from Tianocore EDK2 - SVN Version" url="http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF" arch=('x86_64') license=('BSD') -makedepends=('subversion' 'python2') +makedepends=('subversion' 'python2' 'iasl') options=('!strip' 'docs' '!makeflags') @@ -68,106 +68,134 @@ pkgver() { svnversion | tr -d [A-z] } -_setup_openssl_udk_dir() { +_bail_out() { - ## Download OpenSSL Sources - bsdtar -C "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/" -xf "${srcdir}/openssl-${_OPENSSL_VERSION}.tar.gz" - echo + if [[ "${CARCH}" != "x86_64" ]]; then + echo "${pkgname} package can be built only in a x86_64 system. Exiting." + exit 1 + fi - ## Apply EDK2 Patch for OpenSSL - cd "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/openssl-${_OPENSSL_VERSION}/" - patch -p0 -i "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/EDKII_openssl-${_OPENSSL_VERSION}.patch" - echo +} + +_setup_env_vars() { - ## Setup OpenSSL headers in EDK2 dir - cd "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/" - chmod 0755 "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/Install.sh" - "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/Install.sh" + msg "Setup UDK PATH ENV variables" + export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build" + export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools" } -_tianocore_makefile_fixes() { +_prepare_tianocore_sources() { + + _setup_env_vars - ## UDK BaseTools requires python2 + msg "Delete old UDK BUILD dir" + rm -rf "${_UDK_DIR}/" || true + + msg "Create UDK BUILD dir" + mkdir -p "${_UDK_DIR}/" + + for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do + mv "${srcdir}/${_DIR_}" "${_UDK_DIR}/${_DIR_}" + done + + for _DIR_ in PcAtChipsetPkg UefiCpuPkg OptionRomPkg CryptoPkg SecurityPkg ShellPkg FatBinPkg OvmfPkg ; do + mv "${srcdir}/${_DIR_}" "${_UDK_DIR}/${_DIR_}" + done + + cd "${_UDK_DIR}/" + + msg "Cleanup UDK config files" + rm -rf "${_UDK_DIR}/Build/" || true + rm -rf "${_UDK_DIR}/Conf/" || true + mkdir -p "${_UDK_DIR}/Conf/" + mkdir -p "${_UDK_DIR}/Build/" + + msg "Use python2 for UDK BaseTools" sed 's|python |python2 |g' -i "${EDK_TOOLS_PATH}/BinWrappers/PosixLike"/* || true sed 's|python |python2 |g' -i "${EDK_TOOLS_PATH}/Tests/GNUmakefile" - ## Fix GCC Warning as error + msg "Fix GCC Warning as error" sed 's|-Werror |-Wno-error -Wno-unused-but-set-variable |g' -i "${EDK_TOOLS_PATH}/Source/C/Makefiles/header.makefile" || true sed 's|-Werror |-Wno-error -Wno-unused-but-set-variable |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - ## Fix GCC >=4.7 error - gcc: error: unrecognized command line option '-melf_x86_64' + msg "Fix GCC >=4.7 error - gcc: error: unrecognized command line option '-melf_x86_64'" sed 's| -m64 --64 -melf_x86_64| -m64|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true sed 's|--64 | |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true sed 's| -m64 -melf_x86_64| -m64|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - ## Remove GCC -g debug option and add -0s -mabi=ms + msg "Remove GCC -g debug option and add -0s -mabi=ms" sed 's|DEFINE GCC_ALL_CC_FLAGS = -g |DEFINE GCC_ALL_CC_FLAGS = -Os -mabi=ms |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true sed 's|DEFINE GCC44_ALL_CC_FLAGS = -g |DEFINE GCC44_ALL_CC_FLAGS = -Os -mabi=ms |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - ## Fix UDK Target Platform + msg "Fix UDK Target Platform" sed "s|ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc|ACTIVE_PLATFORM = ${_UDK_TARGET}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true sed "s|TARGET = DEBUG|TARGET = ${_TIANOCORE_TARGET}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true sed "s|TOOL_CHAIN_TAG = MYTOOLS|TOOL_CHAIN_TAG = ${_COMPILER}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true + sed "s|IA32|X64|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true + + chmod 0755 "${_UDK_DIR}/BaseTools/BuildEnv" } -build() { - - if [[ "${CARCH}" != "x86_64" ]]; then - echo "${pkgname} package can be built only in a x86_64 system. Exiting." - exit 1 - fi +_prepare_openssl_udk_dir() { - ## Unset all FLAGS - unset CFLAGS - unset CPPFLAGS - unset CXXFLAGS - unset LDFLAGS - unset MAKEFLAGS - - ## Setup UDK Environment variables - export _UDK_DIR="${srcdir}/${_TIANO_DIR_}" - export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools" + cd "${_UDK_DIR}/" - rm -rf "${_UDK_DIR}/" || true - mkdir -p "${_UDK_DIR}/" + msg "Download OpenSSL ${_OPENSSL_VERSION} Sources" + bsdtar -C "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/" -xf "${srcdir}/openssl-${_OPENSSL_VERSION}.tar.gz" + echo - for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do - mv "${srcdir}/${_DIR_}" "${_UDK_DIR}/${_DIR_}" - done + msg "Apply EDK2 Patch for OpenSSL ${_OPENSSL_VERSION}" + cd "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/openssl-${_OPENSSL_VERSION}/" + patch -p0 -i "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/EDKII_openssl-${_OPENSSL_VERSION}.patch" + echo - for _DIR_ in PcAtChipsetPkg UefiCpuPkg OptionRomPkg CryptoPkg SecurityPkg ShellPkg FatBinPkg OvmfPkg ; do - mv "${srcdir}/${_DIR_}" "${_UDK_DIR}/${_DIR_}" - done + msg "Setup OpenSSL ${_OPENSSL_VERSION} headers in EDK2 dir" + cd "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/" + chmod 0755 "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/Install.sh" + "${_UDK_DIR}/CryptoPkg/Library/OpensslLib/Install.sh" - cd "${_UDK_DIR}/" +} + +prepare() { - ## Cleanup UDK config files - rm -rf "${_UDK_DIR}/Build/" || true - rm -rf "${_UDK_DIR}/Conf/" || true - mkdir -p "${_UDK_DIR}/Conf/" - mkdir -p "${_UDK_DIR}/Build/" + _bail_out - ## Setup OpenSSL libs in EDK2 dir for Secure Boot support - _setup_openssl_udk_dir + msg "Prepare Tianocore Sources" + _prepare_tianocore_sources echo - _tianocore_makefile_fixes + msg "Prepare OpenSSL ${_OPENSSL_VERSION} Sources" + _prepare_openssl_udk_dir echo +} + +build() { + + _bail_out + + _setup_env_vars + cd "${_UDK_DIR}/" - ## Setup UDK Environment - chmod +x "${_UDK_DIR}/BaseTools/BuildEnv" + msg "Unset all compiler FLAGS" + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + + msg "Setup UDK Environment" source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools echo - ## Compile UDK BaseTools + msg "Compile UDK BaseTools" make -C "${EDK_TOOLS_PATH}" echo - ## Compile OVMF binary + msg "Compile OVMF binary" "${_UDK_DIR}/OvmfPkg/build.sh" -a "X64" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}" -D "SECURE_BOOT_ENABLE=TRUE" -D "BUILD_NEW_SHELL" echo @@ -175,7 +203,7 @@ build() { package() { - ## Install the OVMF X64 image as bios.bin for QEMU + msg "Install the OVMF X64 image as bios.bin for QEMU" install -d "${pkgdir}/usr/share/ovmf/x86_64" install -D -m0644 "${_UDK_DIR}/Build/${_TIANOCORE_PKG}/${_TIANOCORE_TARGET}_${_COMPILER}/FV/OVMF.fd" "${pkgdir}/usr/share/ovmf/x86_64/bios.bin" |