diff options
author | root <root@rshg054.dnsready.net> | 2013-07-10 01:01:50 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-07-10 01:01:50 -0700 |
commit | b509d58f0ff9d5b9167eb65b0264d014c8ac9d66 (patch) | |
tree | 3f56c991ed763cacd474d208be44d496dbc96b48 /extra/refind-efi/PKGBUILD | |
parent | 10aa61ef39e662453e1d817046e359372fe3b326 (diff) |
Wed Jul 10 01:01:50 PDT 2013
Diffstat (limited to 'extra/refind-efi/PKGBUILD')
-rw-r--r-- | extra/refind-efi/PKGBUILD | 149 |
1 files changed, 86 insertions, 63 deletions
diff --git a/extra/refind-efi/PKGBUILD b/extra/refind-efi/PKGBUILD index c201d7bf1..1b5a1435d 100644 --- a/extra/refind-efi/PKGBUILD +++ b/extra/refind-efi/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 189205 2013-06-29 11:28:10Z tpowa $ +# $Id: PKGBUILD 189851 2013-07-09 13:36:09Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Contributor: Keshav Padram <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> @@ -16,7 +16,7 @@ _COMPILER="GCC46" ####### pkgname="refind-efi" -pkgver="0.7.0" +pkgver="0.7.1" pkgrel="1" pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs" url="http://www.rodsbooks.com/refind/index.html" @@ -26,40 +26,47 @@ license=('GPL3' 'custom') makedepends=('subversion' 'python2') depends=('dosfstools' 'efibootmgr') optdepends=('mactel-boot: For bless command in Apple Mac systems' - 'bash: For /usr/bin/refind-mkfont script' - 'imagemagick: For /usr/bin/refind-mkfont script') + 'bash: For refind-mkfont script' + 'imagemagick: For refind-mkfont script') options=('!strip' 'docs' '!makeflags') install="${pkgname}.install" source=("http://downloads.sourceforge.net/refind/refind-src-${pkgver}.zip" - 'UDK-MdePkg-Revert-PathNodeCount.patch' 'refind_linux.conf') for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do source+=("${_TIANO_DIR_}/${_DIR_}::svn+${_TIANOCORE_SVN_URL}/${_DIR_}") done +sha1sums=('5e4b15202efc658e58e68e64af8a1b2c84aab175' + '3d53eb615c3363d45feb95b9bfbf1d5491bf1c24' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP') + [[ "${CARCH}" == "x86_64" ]] && _TIANO_ARCH="X64" [[ "${CARCH}" == "i686" ]] && _TIANO_ARCH="IA32" [[ "${CARCH}" == "x86_64" ]] && _TIANO_S_ARCH="x64" [[ "${CARCH}" == "i686" ]] && _TIANO_S_ARCH="ia32" -_tianocore_udk_common() { +_setup_env_vars() { - ## Unset all FLAGS - unset CFLAGS - unset CPPFLAGS - unset CXXFLAGS - unset LDFLAGS - unset MAKEFLAGS - - ## Setup UDK Environment variables + msg "Setup UDK PATH ENV variables" export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build" export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools" +} + +_prepare_tianocore_sources() { + + _setup_env_vars + + msg "Delete old UDK BUILD dir" rm -rf "${_UDK_DIR}/" || true mkdir -p "${_UDK_DIR}/" @@ -69,103 +76,127 @@ _tianocore_udk_common() { cd "${_UDK_DIR}/" - ## Fix PcdMaximumPathNodeCount compile error - patch -Np1 -R -i "${srcdir}/UDK-MdePkg-Revert-PathNodeCount.patch" - echo - - ## Cleanup UDK config files + 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/" - ## UDK BaseTools requires python2 + 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 - ## Setup UDK Environment + msg "Fix UDK Target ARCH for rEFInd" + sed "s|X64|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true + sed "s|IA32|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true + chmod +x "${_UDK_DIR}/BaseTools/BuildEnv" - source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools - echo - ## Compile UDK BaseTools - make -C "${EDK_TOOLS_PATH}" - echo +} + +_prepare_refind_sources() { - ## Compile UDK x86_64-UEFI Libraries - "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}" - echo + cd "${srcdir}/refind-${pkgver}/" - ## Fix UDK Target ARCH for rEFInd - sed "s|IA32|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true + msg "Fix UDK Path in rEFInd Makefiles" + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + +} + +prepare() { + + msg "Prepare Tianocore Sources" + _prepare_tianocore_sources + + msg "Prepare rEFInd Sources" + _prepare_refind_sources } build() { - _tianocore_udk_common + _setup_env_vars + + cd "${_UDK_DIR}/" + + 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 - cd "${srcdir}/refind-${pkgver}/" + msg "Compile UDK BaseTools" + make -C "${EDK_TOOLS_PATH}" + echo - ## Fix UDK Path in rEFInd Makefiles - sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/Make.tiano" || true - sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" || true - sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + msg "Compile UDK Libraries" + "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}" + echo + + cd "${srcdir}/refind-${pkgver}/" - ## Unset all FLAGS + msg "Unset all compiler FLAGS" unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS - ## Compile refind.efi + msg "Compile rEFInd UEFI application" make tiano + echo - ## Compile UEFI FS drivers + msg "Compile UEFI FS drivers" make fs + echo } package() { - ## Install the rEFInd UEFI application + msg "Install the rEFInd UEFI application" install -d "${pkgdir}/usr/lib/refind/" install -D -m0644 "${srcdir}/refind-${pkgver}/refind/refind_${_TIANO_S_ARCH}.efi" "${pkgdir}/usr/lib/refind/refind_${_TIANO_S_ARCH}.efi" - ## Install UEFI drivers built from rEFInd + msg "Install UEFI drivers built from rEFInd" install -d "${pkgdir}/usr/lib/refind/drivers_${_TIANO_S_ARCH}/" install -D -m0644 "${srcdir}/refind-${pkgver}/drivers_${_TIANO_S_ARCH}"/*.efi "${pkgdir}/usr/lib/refind/drivers_${_TIANO_S_ARCH}/" - ## Install UEFI applications built from rEFInd + msg "Install UEFI applications built from rEFInd" install -d "${pkgdir}/usr/lib/refind/tools_${_TIANO_S_ARCH}" install -D -m0644 "${srcdir}/refind-${pkgver}/gptsync/gptsync_${_TIANO_S_ARCH}.efi" "${pkgdir}/usr/lib/refind/tools_${_TIANO_S_ARCH}/gptsync_${_TIANO_S_ARCH}.efi" - ## Install the rEFInd config file + msg "Install the rEFInd config file" install -d "${pkgdir}/usr/lib/refind/config/" install -D -m0644 "${srcdir}/refind-${pkgver}/refind.conf-sample" "${pkgdir}/usr/lib/refind/config/refind.conf" install -D -m0644 "${srcdir}/refind_linux.conf" "${pkgdir}/usr/lib/refind/config/refind_linux.conf" - ## Install the rEFInd docs + msg "Install the rEFInd docs" install -d "${pkgdir}/usr/share/refind/docs/html/" install -d "${pkgdir}/usr/share/refind/docs/Styles/" install -D -m0644 "${srcdir}/refind-${pkgver}/docs/refind"/* "${pkgdir}/usr/share/refind/docs/html/" @@ -174,37 +205,29 @@ package() { install -D -m0644 "${srcdir}/refind-${pkgver}/NEWS.txt" "${pkgdir}/usr/share/refind/docs/NEWS" rm -f "${pkgdir}/usr/share/refind/docs/html/.DS_Store" || true - ## Install the rEFInd fonts + msg "Install the rEFInd fonts" install -d "${pkgdir}/usr/share/refind/fonts/" install -D -m0644 "${srcdir}/refind-${pkgver}/fonts"/* "${pkgdir}/usr/share/refind/fonts/" rm -f "${pkgdir}/usr/share/refind/fonts/mkfont.sh" - ## Install the rEFInd mkfont.sh + msg "Install the rEFInd mkfont.sh" install -d "${pkgdir}/usr/bin/" install -D -m0755 "${srcdir}/refind-${pkgver}/fonts/mkfont.sh" "${pkgdir}/usr/bin/refind-mkfont" - ## Install the rEFInd icons + msg "Install the rEFInd icons" install -d "${pkgdir}/usr/share/refind/icons/" install -D -m0644 "${srcdir}/refind-${pkgver}/icons"/* "${pkgdir}/usr/share/refind/icons/" - ## Install the rEFInd images + msg "Install the rEFInd images" install -d "${pkgdir}/usr/share/refind/images/" install -D -m0644 "${srcdir}/refind-${pkgver}/images"/*.{png,bmp} "${pkgdir}/usr/share/refind/images/" - ## Install the rEFInd keys + msg "Install the rEFInd keys" install -d "${pkgdir}/usr/share/refind/keys/" install -D -m0644 "${srcdir}/refind-${pkgver}/keys"/* "${pkgdir}/usr/share/refind/keys/" - ## Install the rEFIt license file, since rEFInd is a fork of rEFIt + msg "Install the rEFIt license file, since rEFInd is a fork of rEFIt" install -d "${pkgdir}/usr/share/licenses/refind/" install -D -m0644 "${srcdir}/refind-${pkgver}/LICENSE.txt" "${pkgdir}/usr/share/licenses/refind/LICENSE" } -sha1sums=('f71f00dbbe8c068c9ef80f468835c998832d364f' - '4d1992699f9b48dd2b7e6bd6c0b25fc065f75894' - '3d53eb615c3363d45feb95b9bfbf1d5491bf1c24' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP') |