summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/ovmf/ovmf_git.bb
diff options
context:
space:
mode:
authormeta-luv <luv@lists.01.org>2016-12-06 16:21:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-01 11:17:44 +0000
commitf2d2a116e78d3f339560888e77f64801473c826a (patch)
treea4375bfdd0f745153ca0d5a16025a659014525db /meta/recipes-core/ovmf/ovmf_git.bb
parent76a4a4e8a48b5917113be1caf8e298a637ae047b (diff)
downloadpoky-f2d2a116e78d3f339560888e77f64801473c826a.tar.gz
ovmf: move from meta-luv to OE-core
This is an unmodified copy of github.com/01org/luv-yocto/meta-luv/recipes-core/ovmf revision 4be4329. (From OE-Core rev: 49cdce8716ded0b612069d7614c3efe7724e5b40) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/ovmf/ovmf_git.bb')
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb121
1 files changed, 121 insertions, 0 deletions
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
new file mode 100644
index 0000000000..e722db5cd1
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -0,0 +1,121 @@
1DESCRIPTION = "OVMF - UEFI firmware for Qemu and KVM"
2HOMEPAGE = "http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF"
3LICENSE = "BSD"
4LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=343dc88e82ff33d042074f62050c3496"
5
6SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \
7 file://0001-BaseTools-Force-tools-variables-to-host-toolchain.patch \
8 file://0001-OvmfPkg-Enable-BGRT-in-OVMF.patch \
9 file://0002-ovmf-update-path-to-native-BaseTools.patch \
10 file://0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
11 "
12
13SRCREV="4575a602ca6072ee9d04150b38bfb143cbff8588"
14
15PARALLEL_MAKE = ""
16
17S = "${WORKDIR}/git"
18
19DEPENDS_class-native="util-linux-native iasl-native ossp-uuid-native"
20
21DEPENDS_class-target="ovmf-native"
22
23EDK_TOOLS_DIR="edk2_basetools"
24
25# OVMF has trouble building with the default optimization of -O2.
26BUILD_OPTIMIZATION="-pipe"
27
28# OVMF supports IA only, although it could conceivably support ARM someday.
29COMPATIBLE_HOST='(i.86|x86_64).*'
30
31do_patch_append_class-native() {
32 bb.build.exec_func('do_fix_iasl', d)
33 bb.build.exec_func('do_fix_toolchain', d)
34}
35
36do_fix_basetools_location() {
37 sed -i -e 's#BBAKE_EDK_TOOLS_PATH#${STAGING_BINDIR_NATIVE}/${EDK_TOOLS_DIR}#' ${S}/OvmfPkg/build.sh
38}
39
40do_patch_append_class-target() {
41 bb.build.exec_func('do_fix_basetools_location', d)
42}
43
44
45do_fix_iasl() {
46 sed -i -e 's#/usr/bin/iasl#${STAGING_BINDIR_NATIVE}/iasl#' ${S}/BaseTools/Conf/tools_def.template
47}
48
49do_fix_toolchain(){
50 sed -i -e 's#DEF(ELFGCC_BIN)/#${TARGET_PREFIX}#' ${S}/BaseTools/Conf/tools_def.template
51 sed -i -e 's#DEF(GCC.*PREFIX)#${TARGET_PREFIX}#' ${S}/BaseTools/Conf/tools_def.template
52 sed -i -e "s#^LINKER\(.*\)#LINKER\1\nLFLAGS += ${BUILD_LDFLAGS}#" ${S}/BaseTools/Source/C/Makefiles/app.makefile
53 sed -i -e "s#^LINKER\(.*\)#LINKER\1\nCFLAGS += ${BUILD_CFLAGS}#" ${S}/BaseTools/Source/C/Makefiles/app.makefile
54 sed -i -e "s#^LINKER\(.*\)#LINKER\1\nLFLAGS += ${BUILD_LDFLAGS}#" ${S}/BaseTools/Source/C/VfrCompile/GNUmakefile
55 sed -i -e "s#^LINKER\(.*\)#LINKER\1\nCFLAGS += ${BUILD_CFLAGS}#" ${S}/BaseTools/Source/C/VfrCompile/GNUmakefile
56}
57
58GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')"
59
60fixup_target_tools() {
61 case ${1} in
62 4.4.*)
63 FIXED_GCCVER=GCC44
64 ;;
65 4.5.*)
66 FIXED_GCCVER=GCC45
67 ;;
68 4.6.*)
69 FIXED_GCCVER=GCC46
70 ;;
71 4.7.*)
72 FIXED_GCCVER=GCC47
73 ;;
74 4.8.*)
75 FIXED_GCCVER=GCC48
76 ;;
77 4.9.*)
78 FIXED_GCCVER=GCC49
79 ;;
80 *)
81 FIXED_GCCVER=GCC5
82 ;;
83 esac
84 echo ${FIXED_GCCVER}
85}
86
87do_compile_class-native() {
88 oe_runmake -C ${S}/BaseTools
89}
90
91do_compile_class-target() {
92 export LFLAGS="${LDFLAGS}"
93 OVMF_ARCH="X64"
94 if [ "${TARGET_ARCH}" != "x86_64" ] ; then
95 OVMF_ARCH="IA32"
96 fi
97
98 FIXED_GCCVER=$(fixup_target_tools ${GCC_VER})
99 echo FIXED_GCCVER is ${FIXED_GCCVER}
100 ${S}/OvmfPkg/build.sh -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER}
101}
102
103do_install_class-native() {
104 install -d ${D}/${bindir}/edk2_basetools
105 cp -r ${S}/BaseTools ${D}/${bindir}/${EDK_TOOLS_DIR}
106}
107
108do_install_class-target() {
109 OVMF_DIR_SUFFIX="X64"
110 if [ "${TARGET_ARCH}" != "x86_64" ] ; then
111 OVMF_DIR_SUFFIX="Ia32" # Note the different capitalization
112 fi
113 install -d ${D}${datadir}/ovmf
114
115 FIXED_GCCVER=$(fixup_target_tools ${GCC_VER})
116 build_dir="${S}/Build/Ovmf$OVMF_DIR_SUFFIX/RELEASE_${FIXED_GCCVER}"
117 install -m 0755 ${build_dir}/FV/OVMF.fd \
118 ${D}${datadir}/ovmf/bios.bin
119}
120
121BBCLASSEXTEND = "native"