summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp
diff options
context:
space:
mode:
authorJianxun Zhang <jianxun.zhang@linux.intel.com>2016-05-05 11:20:37 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-06-03 13:13:25 +0100
commitc71f5ab37416629793b9f826480d440d67531791 (patch)
tree3a605787ba786549c99b8923133ea38c24f4af3d /meta/recipes-bsp
parent408297489d1b368e8cc539ce93fbe566976b0f3a (diff)
downloadopenembedded-core-contrib-c71f5ab37416629793b9f826480d440d67531791.tar.gz
openembedded-core-contrib-c71f5ab37416629793b9f826480d440d67531791.tar.bz2
openembedded-core-contrib-c71f5ab37416629793b9f826480d440d67531791.zip
systemd: support systemd-boot as a stand-alone EFI bootloader
The "systemd-boot" is gummiboot now included into systemd project. The old gummiboot project supported in OE is dead. Our intention is to get a gummiboot-like EFI bootloader without much dependency on systemd and its features. This work is largely derived from the existing bbclass and recipes of gummiboot and systemd. (commit tip: ee25d0e3987d7732a2e46e1640693b4cf419a9fc) Please refer to the history up to the tip for authorship and credit information for the original works. To enable the systemd-boot in build, add this line EFI_PROVIDER = "systemd-boot" in your machine conf file. (From OE-Core rev: e9add1cd01e498d2aa52528ec52342cae48a387a) Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-bsp')
-rw-r--r--meta/recipes-bsp/systemd-boot/systemd-boot.bb35
1 files changed, 35 insertions, 0 deletions
diff --git a/meta/recipes-bsp/systemd-boot/systemd-boot.bb b/meta/recipes-bsp/systemd-boot/systemd-boot.bb
new file mode 100644
index 0000000000..87e98718f5
--- /dev/null
+++ b/meta/recipes-bsp/systemd-boot/systemd-boot.bb
@@ -0,0 +1,35 @@
+require recipes-core/systemd/systemd.inc
+
+DEPENDS = "intltool-native libcap util-linux gnu-efi"
+
+inherit autotools pkgconfig gettext
+inherit deploy
+
+EXTRA_OECONF = " --enable-gnuefi \
+ --with-efi-includedir=${STAGING_INCDIR} \
+ --with-efi-ldsdir=${STAGING_LIBDIR} \
+ --with-efi-libdir=${STAGING_LIBDIR} \
+ --disable-manpages \
+ "
+
+# Imported from gummiboot recipe
+TUNE_CCARGS_remove = "-mfpmath=sse"
+
+do_compile() {
+ SYSTEMD_BOOT_EFI_ARCH="ia32"
+ if [ "${TARGET_ARCH}" = "x86_64" ]; then
+ SYSTEMD_BOOT_EFI_ARCH="x64"
+ fi
+
+ oe_runmake systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi
+}
+
+do_install() {
+ # Bypass systemd installation with a NOP
+ :
+}
+
+do_deploy () {
+ install ${B}/systemd-boot*.efi ${DEPLOYDIR}
+}
+addtask deploy before do_build after do_compile