summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD287
1 files changed, 124 insertions, 163 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d5e73d13ce7c..aa16593456cb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,86 +1,56 @@
# Maintainer: Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-_USE_TIANOCORE_UDK_LIBS="1"
-_USE_TIANO_GIT="0"
+#######
+_TIANOCORE_SVN_URL="https://edk2.svn.sourceforge.net/svnroot/edk2/branches/UDK2010.SR1"
+_TIANOCORE_PKG="Mde"
+_TIANOCORE_TARGET="RELEASE"
+_UDK_TARGET="${_TIANOCORE_PKG}Pkg/${_TIANOCORE_PKG}Pkg.dsc"
+_COMPILER="GCC46"
+#######
-# _GNU_EFI_LIB_DIR="/usr/lib"
-
-_actualname="refind"
-_pkgname="${_actualname}-efi-x86_64"
+_pkgname="refind-efi-tianocore"
pkgname="${_pkgname}-git"
-pkgver=20120623
+pkgver=20121107
pkgrel=1
-pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager - GIT Development Version"
+pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs - GIT Version"
url="http://www.rodsbooks.com/refind/index.html"
arch=('any')
license=('GPL3' 'custom')
-makedepends=('git')
-
-if [[ "${_USE_TIANOCORE_UDK_LIBS}" == "1" ]]; then
- makedepends+=('python2')
-
- if [[ "${_USE_TIANO_GIT}" != "1" ]]; then
- makedepends+=('subversion')
- fi
-else
- makedepends+=('gnu-efi>=3.0q')
-fi
+makedepends=('git' 'subversion' 'python2')
depends=('dosfstools' 'efibootmgr')
optdepends=('mactel-boot: For bless command in Apple Mac systems')
-conflicts=("${_pkgname}")
-provides=("${_pkgname}")
-
-replaces=('refind-x86_64-git')
+conflicts=('refind-efi' "${_pkgname}")
+provides=('refind-efi' "${_pkgname}")
-backup=('boot/efi/EFI/arch/refind/refind.conf'
- 'boot/efi/EFI/arch/refind/refind_linux.conf')
-
-options=('!strip' 'docs')
-install="${_pkgname}.install"
-
-source=('refind_include_more_shell_paths.patch'
+source=('UDK-MdePkg-Revert-PathNodeCount.patch'
+ 'refind_include_more_shell_paths.patch'
'refind_linux.conf')
-sha256sums=('d1bc373c10cf2e17d436d14e080d1daa4d25d51c4d53e477b68417a2b3f4722c'
- '9aac6e65018965ba182ec2d246d37fc5f9269ae96504956d8a51355c3ba1b62f')
+sha1sums=('4d1992699f9b48dd2b7e6bd6c0b25fc065f75894'
+ '7ed2870ee76f42a7bed51410b3cae4da3bc2de2a'
+ '3d53eb615c3363d45feb95b9bfbf1d5491bf1c24')
_gitroot="git://git.code.sf.net/p/refind/code"
-_gitname="${_actualname}"
+_gitname="refind"
_gitbranch="master"
-_update_tianocore_udk_git() {
-
- if [[ -d "${srcdir}/${_TIANO_DIR_}/${_DIR_}" ]]; then
- cd "${srcdir}/${_TIANO_DIR_}/${_DIR_}"
- git reset --hard
- git pull --depth=1 origin "${_gitbranch}:${_gitbranch}"
- git checkout "${_gitbranch}"
- echo
- else
- cd "${srcdir}/${_TIANO_DIR_}/"
- git clone --depth=1 "git://tianocore.git.sourceforge.net/gitroot/tianocore/edk2-${_DIR_}" "${srcdir}/${_TIANO_DIR_}/${_DIR_}"
- cd "${srcdir}/${_TIANO_DIR_}/${_DIR_}"
- git checkout "${_gitbranch}"
- echo
- fi
-
- unset _DIR_
-
-}
+# _refind_dsc_gitroot="git://github.com/snarez/refind-edk2.git"
+# _refind_dsc_gitname="RefindPkg"
+# _refind_efi_gitbranch="master"
_update_tianocore_udk_svn() {
if [[ -d "${srcdir}/${_TIANO_DIR_}/${_DIR_}" ]]; then
cd "${srcdir}/${_TIANO_DIR_}/${_DIR_}"
- svn update
+ svn update || true
echo
else
cd "${srcdir}/${_TIANO_DIR_}/"
- svn checkout "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/${_DIR_}" "${srcdir}/${_TIANO_DIR_}/${_DIR_}"
+ svn checkout "${_TIANOCORE_SVN_URL}/${_DIR_}" "${srcdir}/${_TIANO_DIR_}/${_DIR_}"
echo
fi
@@ -110,56 +80,38 @@ _update_git() {
echo
- if [[ "${_USE_TIANOCORE_UDK_LIBS}" == "1" ]]; then
- if [[ "${_USE_TIANO_GIT}" == "1" ]]; then
- _D_="git"
- else
- _D_="svn"
- fi
-
- _TIANO_DIR_="tianocore-udk-${_D_}"
-
- mkdir -p "${srcdir}/${_TIANO_DIR_}"
- cd "${srcdir}/${_TIANO_DIR_}"
-
- # for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg EdkCompatibilityPkg ; do
- for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg ; do
- "_update_tianocore_udk_${_D_}"
- done
-
- unset _DIR_
- echo
-
- rm -f "${srcdir}/${_TIANO_DIR_}/edksetup.sh" || true
- curl --ipv4 -fLC - --retry 3 --retry-delay 3 -o "${srcdir}/${_TIANO_DIR_}/edksetup.sh" "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/edksetup.sh"
- chmod +x "${srcdir}/${_TIANO_DIR_}/edksetup.sh"
- echo
-
- fi
+ _TIANO_DIR_="tianocore-udk-svn"
- echo
+ mkdir -p "${srcdir}/${_TIANO_DIR_}/"
+ cd "${srcdir}/${_TIANO_DIR_}/"
+
+ for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do
+ _update_tianocore_udk_svn
+ done
+
+ unset _DIR_
}
-_build_using_tianocore_udk() {
+_tianocore_udk_common() {
- rm -rf "${srcdir}/${_TIANO_DIR_}_build/" || true
- cp -r "${srcdir}/${_TIANO_DIR_}" "${srcdir}/${_TIANO_DIR_}_build"
+ ## Setup UDK Environment variables
+ export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build"
+ export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools"
- cd "${srcdir}/${_TIANO_DIR_}_build"
- echo
+ rm -rf "${_UDK_DIR}/" || true
+ cp -r "${srcdir}/${_TIANO_DIR_}" "${_UDK_DIR}"
- ## Setup UDK Environment variables
- export _UDK_DIR_="${srcdir}/${_TIANO_DIR_}_build"
- export EDK_TOOLS_PATH="${_UDK_DIR_}/BaseTools"
- export _UDK_TARGET_="MdePkg/MdePkg.dsc"
+ cd "${_UDK_DIR}/"
- ## Cleanup UDK config files
- rm -rf "${_UDK_DIR_}/Build" || true
- rm -rf "${_UDK_DIR_}/Conf" || true
+ patch -Np1 -R -i "${srcdir}/UDK-MdePkg-Revert-PathNodeCount.patch"
+ echo
- mkdir -p "${_UDK_DIR_}/Conf"
- mkdir -p "${_UDK_DIR_}/Build"
+ ## 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
@@ -179,65 +131,78 @@ _build_using_tianocore_udk() {
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 = RELEASE|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true
- sed "s|TARGET_ARCH = IA32|TARGET_ARCH = X64|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true
- sed "s|TOOL_CHAIN_TAG = MYTOOLS|TOOL_CHAIN_TAG = GCC46|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true
+ 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
+
+ ## Fix UDK Target ARCH
+ sed 's|IA32|X64|g' -i "${EDK_TOOLS_PATH}/Conf/target.template" || true
## Setup UDK Environment
- source "${_UDK_DIR_}/edksetup.sh" BaseTools
+ chmod +x "${_UDK_DIR}/BaseTools/BuildEnv"
+ source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools
echo
## Compile UDK BaseTools
make -C "${EDK_TOOLS_PATH}"
echo
- ## Compile UDK Libraries
- "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_DIR_}/${_UDK_TARGET_}" -a X64 -b RELEASE -t GCC46
+ ## Compile UDK x86_64-UEFI Libraries
+ "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "X64" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}"
echo
- cd "${srcdir}/${_gitname}_build"
+ ## Compile UDK i386-UEFI Libraries
+ "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "IA32" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}"
echo
- ## Fix UDK Path in rEFInd Makefiles
- sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR_}|g" -i "${srcdir}/${_gitname}_build/Make.tiano" || true
- sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR_}|g" -i "${srcdir}/${_gitname}_build/filesystems/Make.tiano" || true
- echo
+}
+
+_refind_changes() {
- ## Fix UDK Target Platform in rEFInd Makefiles
- sed 's|EFILIB = $(EDK2BASE)/Build/MdeModule/|EFILIB = $(EDK2BASE)/Build/Mde/|g' -i "${srcdir}/${_gitname}_build/refind/Make.tiano" || true
- sed 's|EFILIB = $(EDK2BASE)/Build/MdeModule/|EFILIB = $(EDK2BASE)/Build/Mde/|g' -i "${srcdir}/${_gitname}_build/filesystems/Make.tiano" || true
- echo
+ rm -rf "${srcdir}/${_gitname}_build/" || true
+ cp -r "${srcdir}/${_gitname}" "${srcdir}/${_gitname}_build"
- make clean || true
- echo
+ cd "${srcdir}/${_gitname}_build/"
- make tiano
+ patch -Np1 -i "${srcdir}/refind_include_more_shell_paths.patch"
echo
- make fs
- echo
+ ## Use passed ARCH variable value
+ sed 's|ARCH :=|ARCH ?=|g' -i "${srcdir}/${_gitname}_build/Make.tiano" || true
+ sed 's|ARCH :=|ARCH ?=|g' -i "${srcdir}/${_gitname}_build/filesystems/Make.tiano" || true
- ## Unset UDK specific ENV variables
- unset EDK_TOOLS_PATH
- unset _UDK_DIR_
- echo
+ ## Fix UDK Target Platform in rEFInd Makefiles
+ sed "s|EFILIB = \$(EDK2BASE)/Build/MdeModule/|EFILIB = \$(EDK2BASE)/Build/${_TIANOCORE_PKG}/|g" -i "${srcdir}/${_gitname}_build/refind/Make.tiano" || true
+ sed "s|EFILIB = \$(EDK2BASE)/Build/MdeModule/|EFILIB = \$(EDK2BASE)/Build/${_TIANOCORE_PKG}/|g" -i "${srcdir}/${_gitname}_build/filesystems/Make.tiano" || true
}
-_build_using_gnu-efi() {
+_build_refind-efi-common() {
- sed 's|/usr/local/include/efi|/usr/include/efi|g' -i "${srcdir}/${_gitname}_build/Make.common" || true
- sed 's|/usr/local/lib|/usr/lib|g' -i "${srcdir}/${_gitname}_build/Make.common" || true
- echo
+ rm -rf "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/" || true
+ cp -r "${srcdir}/${_gitname}_build" "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/"
+
+ cd "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/"
+
+ ## Fix UDK Target ARCH
+ sed "s|IA32|${_SPEC_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true
+ sed "s|X64|${_SPEC_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true
+
+ ## Fix UDK Path in rEFInd Makefiles
+ sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/Make.tiano" || true
+ sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/filesystems/Make.tiano" || true
+
+ ## Fix ld "-m elf_ARCH" parameter
+ sed "s|LDFLAGS = |LDFLAGS = -m elf_${_ARCH} |g" -i "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/Make.tiano" || true
+ sed "s|LDFLAGS = |LDFLAGS = -m elf_${_ARCH} |g" -i "${srcdir}/${_gitname}_build_${_UEFI_ARCH}/filesystems/Make.tiano" || true
- sed 's|make -C $(EFILIB_DIR) clean -f Make.tiano|#make -C $(EFILIB_DIR) clean -f Make.tiano|g' -i "${srcdir}/${_gitname}_build/Makefile"
+ ARCH="${_UEFI_ARCH}" make clean || true
echo
- make clean || true
+ ARCH="${_UEFI_ARCH}" make tiano
echo
- make
+ ARCH="${_UEFI_ARCH}" make fs
echo
}
@@ -252,62 +217,58 @@ build() {
echo
fi
- rm -rf "${srcdir}/${_gitname}_build/" || true
- cp -r "${srcdir}/${_gitname}" "${srcdir}/${_gitname}_build"
-
- cd "${srcdir}/${_gitname}_build"
+ _tianocore_udk_common
echo
- patch -Np1 -i "${srcdir}/refind_include_more_shell_paths.patch"
+ _refind_changes
echo
- rm -f "${srcdir}/${_gitname}_build/USED_TIANO.txt" || true
- rm -f "${srcdir}/${_gitname}_build/USED_GNU-EFI.txt" || true
+ _UEFI_ARCH="x86_64"
+ _SPEC_ARCH="X64"
+ _ARCH="x86_64"
+ _build_refind-efi-common
+ echo
- if [[ "${_USE_TIANOCORE_UDK_LIBS}" == "1" ]]; then
- touch "${srcdir}/${_gitname}_build/USED_TIANO.txt"
-
- _build_using_tianocore_udk
- else
- "${srcdir}/${_gitname}_build/USED_GNU-EFI.txt"
-
- _build_using_gnu-efi
- fi
+ _UEFI_ARCH="ia32"
+ _SPEC_ARCH="IA32"
+ _ARCH="i386"
+ _build_refind-efi-common
+ echo
}
package() {
- cd "${srcdir}/${_gitname}_build"
+ ## install the rEFInd UEFI applications
+ install -d "${pkgdir}/usr/lib/refind/"
+ install -D -m0644 "${srcdir}/${_gitname}_build_x86_64/refind/refind_x64.efi" "${pkgdir}/usr/lib/refind/refindx64.efi"
+ install -D -m0644 "${srcdir}/${_gitname}_build_ia32/refind/refind_ia32.efi" "${pkgdir}/usr/lib/refind/refindia32.efi"
- ## Install rEFInd x86_64 UEFI application
- install -d "${pkgdir}/boot/efi/EFI/arch/refind/"
- install -D -m0644 "${srcdir}/${_gitname}_build/refind/refind_x64.efi" "${pkgdir}/boot/efi/EFI/arch/refind/refindx64.efi"
-
- ## Install x86_64 UEFI drivers built from rEFInd if available
- if [[ -e "${srcdir}/${_gitname}_build/USED_TIANO.txt" ]]; then
- install -d "${pkgdir}/boot/efi/EFI/arch/refind/drivers_x64/"
- install -D -m0644 "${srcdir}/${_gitname}_build/drivers"/*_x64.efi "${pkgdir}/boot/efi/EFI/arch/refind/drivers_x64/"
- fi
+ ## Install UEFI drivers built from rEFInd
+ install -d "${pkgdir}/usr/lib/refind/drivers_x64/"
+ install -d "${pkgdir}/usr/lib/refind/drivers_ia32/"
+ install -D -m0644 "${srcdir}/${_gitname}_build_x86_64/drivers"/*_x64.efi "${pkgdir}/usr/lib/refind/drivers_x64/"
+ install -D -m0644 "${srcdir}/${_gitname}_build_ia32/drivers"/*_ia32.efi "${pkgdir}/usr/lib/refind/drivers_ia32/"
- ## Install rEFInd config file
- install -D -m0644 "${srcdir}/${_gitname}_build/refind.conf-sample" "${pkgdir}/boot/efi/EFI/arch/refind/refind.conf"
- install -D -m0644 "${srcdir}/refind_linux.conf" "${pkgdir}/boot/efi/EFI/arch/refind/refind_linux.conf"
+ ## install the rEFInd config file
+ install -d "${pkgdir}/usr/lib/refind/config/"
+ install -D -m0644 "${srcdir}/${_gitname}_build/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 rEFInd icons
- install -d "${pkgdir}/boot/efi/EFI/arch/refind/icons/"
- install -D -m0644 "${srcdir}/${_gitname}_build/icons"/* "${pkgdir}/boot/efi/EFI/arch/refind/icons/"
+ ## install the rEFInd icons
+ install -d "${pkgdir}/usr/share/refind/icons/"
+ install -D -m0644 "${srcdir}/${_gitname}_build/icons"/* "${pkgdir}/usr/share/refind/icons/"
- ## Install rEFInd docs
+ ## install the rEFInd docs
install -d "${pkgdir}/usr/share/refind/docs/html/"
install -d "${pkgdir}/usr/share/refind/docs/Styles/"
install -D -m0644 "${srcdir}/${_gitname}_build/docs/refind"/* "${pkgdir}/usr/share/refind/docs/html/"
install -D -m0644 "${srcdir}/${_gitname}_build/docs/Styles"/* "${pkgdir}/usr/share/refind/docs/Styles/"
- install -D -m0644 "${srcdir}/${_gitname}_build/README.txt" "${pkgdir}/usr/share/refind/docs/README.txt"
- install -D -m0644 "${srcdir}/${_gitname}_build/NEWS.txt" "${pkgdir}/usr/share/refind/docs/NEWS.txt"
+ install -D -m0644 "${srcdir}/${_gitname}_build/README.txt" "${pkgdir}/usr/share/refind/docs/README"
+ install -D -m0644 "${srcdir}/${_gitname}_build/NEWS.txt" "${pkgdir}/usr/share/refind/docs/NEWS"
rm -f "${pkgdir}/usr/share/refind/docs/html/.DS_Store" || true
- ## Install rEFIt license file, since rEFInd is a fork of rEFIt
+ ## install the rEFIt license file, since rEFInd is a fork of rEFIt
install -d "${pkgdir}/usr/share/licenses/refind/"
install -D -m0644 "${srcdir}/${_gitname}_build/LICENSE.txt" "${pkgdir}/usr/share/licenses/refind/LICENSE"