diff options
author | meta-luv <luv@lists.01.org> | 2016-12-06 16:21:17 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-03-01 11:17:44 +0000 |
commit | f2d2a116e78d3f339560888e77f64801473c826a (patch) | |
tree | a4375bfdd0f745153ca0d5a16025a659014525db /meta/recipes-core/ovmf/ovmf_git.bb | |
parent | 76a4a4e8a48b5917113be1caf8e298a637ae047b (diff) | |
download | poky-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.bb | 121 |
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 @@ | |||
1 | DESCRIPTION = "OVMF - UEFI firmware for Qemu and KVM" | ||
2 | HOMEPAGE = "http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF" | ||
3 | LICENSE = "BSD" | ||
4 | LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=343dc88e82ff33d042074f62050c3496" | ||
5 | |||
6 | SRC_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 | |||
13 | SRCREV="4575a602ca6072ee9d04150b38bfb143cbff8588" | ||
14 | |||
15 | PARALLEL_MAKE = "" | ||
16 | |||
17 | S = "${WORKDIR}/git" | ||
18 | |||
19 | DEPENDS_class-native="util-linux-native iasl-native ossp-uuid-native" | ||
20 | |||
21 | DEPENDS_class-target="ovmf-native" | ||
22 | |||
23 | EDK_TOOLS_DIR="edk2_basetools" | ||
24 | |||
25 | # OVMF has trouble building with the default optimization of -O2. | ||
26 | BUILD_OPTIMIZATION="-pipe" | ||
27 | |||
28 | # OVMF supports IA only, although it could conceivably support ARM someday. | ||
29 | COMPATIBLE_HOST='(i.86|x86_64).*' | ||
30 | |||
31 | do_patch_append_class-native() { | ||
32 | bb.build.exec_func('do_fix_iasl', d) | ||
33 | bb.build.exec_func('do_fix_toolchain', d) | ||
34 | } | ||
35 | |||
36 | do_fix_basetools_location() { | ||
37 | sed -i -e 's#BBAKE_EDK_TOOLS_PATH#${STAGING_BINDIR_NATIVE}/${EDK_TOOLS_DIR}#' ${S}/OvmfPkg/build.sh | ||
38 | } | ||
39 | |||
40 | do_patch_append_class-target() { | ||
41 | bb.build.exec_func('do_fix_basetools_location', d) | ||
42 | } | ||
43 | |||
44 | |||
45 | do_fix_iasl() { | ||
46 | sed -i -e 's#/usr/bin/iasl#${STAGING_BINDIR_NATIVE}/iasl#' ${S}/BaseTools/Conf/tools_def.template | ||
47 | } | ||
48 | |||
49 | do_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 | |||
58 | GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')" | ||
59 | |||
60 | fixup_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 | |||
87 | do_compile_class-native() { | ||
88 | oe_runmake -C ${S}/BaseTools | ||
89 | } | ||
90 | |||
91 | do_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 | |||
103 | do_install_class-native() { | ||
104 | install -d ${D}/${bindir}/edk2_basetools | ||
105 | cp -r ${S}/BaseTools ${D}/${bindir}/${EDK_TOOLS_DIR} | ||
106 | } | ||
107 | |||
108 | do_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 | |||
121 | BBCLASSEXTEND = "native" | ||