summaryrefslogtreecommitdiff
path: root/extra/refind-efi/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'extra/refind-efi/PKGBUILD')
-rw-r--r--extra/refind-efi/PKGBUILD211
1 files changed, 211 insertions, 0 deletions
diff --git a/extra/refind-efi/PKGBUILD b/extra/refind-efi/PKGBUILD
new file mode 100644
index 000000000..028af2afd
--- /dev/null
+++ b/extra/refind-efi/PKGBUILD
@@ -0,0 +1,211 @@
+# $Id: PKGBUILD 188814 2013-06-21 19:48:54Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Keshav Padram <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+
+#######
+_TIANOCORE_SVN_URL="https://svn.code.sf.net/p/edk2/code/branches/UDK2010.SR1"
+# BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg
+_TIANO_DIR_="tianocore-udk-svn"
+#######
+
+#######
+_TIANOCORE_PKG="Mde"
+_TIANOCORE_TARGET="RELEASE"
+_UDK_TARGET="${_TIANOCORE_PKG}Pkg/${_TIANOCORE_PKG}Pkg.dsc"
+_COMPILER="GCC46"
+#######
+
+pkgname="refind-efi"
+pkgver="0.6.12"
+pkgrel="2"
+pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs"
+url="http://www.rodsbooks.com/refind/index.html"
+arch=('x86_64' 'i686')
+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')
+
+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=('aabac34b2a30e16c5fd105777b9245c2ed0496e4'
+ '4d1992699f9b48dd2b7e6bd6c0b25fc065f75894'
+ '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() {
+
+ ## Unset all FLAGS
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ ## Setup UDK Environment variables
+ export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build"
+ export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools"
+
+ rm -rf "${_UDK_DIR}/" || true
+ mkdir -p "${_UDK_DIR}/"
+
+ for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do
+ mv "${srcdir}/${_DIR_}" "${_UDK_DIR}/${_DIR_}"
+ done
+
+ cd "${_UDK_DIR}/"
+
+ ## Fix PcdMaximumPathNodeCount compile error
+ patch -Np1 -R -i "${srcdir}/UDK-MdePkg-Revert-PathNodeCount.patch"
+ echo
+
+ ## 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
+ 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
+ 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'
+ 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
+ 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
+ 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
+ chmod +x "${_UDK_DIR}/BaseTools/BuildEnv"
+ source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools
+ echo
+
+ ## Compile UDK BaseTools
+ make -C "${EDK_TOOLS_PATH}"
+ echo
+
+ ## Compile UDK x86_64-UEFI Libraries
+ "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}"
+ echo
+
+ ## Fix UDK Target ARCH for rEFInd
+ sed "s|IA32|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true
+
+}
+
+build() {
+
+ _tianocore_udk_common
+ echo
+
+ cd "${srcdir}/refind-${pkgver}/"
+
+ ## 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
+
+ ## Unset all FLAGS
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ ## Compile refind.efi
+ make tiano
+
+ ## Compile UEFI FS drivers
+ make fs
+
+}
+
+package() {
+
+ ## 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
+ 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
+ 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
+ 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
+ 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/"
+ install -D -m0644 "${srcdir}/refind-${pkgver}/docs/Styles"/* "${pkgdir}/usr/share/refind/docs/Styles/"
+ install -D -m0644 "${srcdir}/refind-${pkgver}/README.txt" "${pkgdir}/usr/share/refind/docs/README"
+ 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
+ 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
+ install -d "${pkgdir}/usr/bin/"
+ install -D -m0755 "${srcdir}/refind-${pkgver}/fonts/mkfont.sh" "${pkgdir}/usr/bin/refind-mkfont"
+
+ ## 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
+ 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
+ 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
+ install -d "${pkgdir}/usr/share/licenses/refind/"
+ install -D -m0644 "${srcdir}/refind-${pkgver}/LICENSE.txt" "${pkgdir}/usr/share/licenses/refind/LICENSE"
+
+}