12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- require systemd.inc
- FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
- require conf/image-uefi.conf
- DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native"
- inherit meson pkgconfig gettext
- inherit deploy
- LDFLAGS_prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
- do_write_config[vardeps] += "CC OBJCOPY"
- do_write_config_append() {
- cat >${WORKDIR}/meson-${PN}.cross <<EOF
- [binaries]
- efi_cc = ${@meson_array('CC', d)}
- objcopy = ${@meson_array('OBJCOPY', d)}
- EOF
- }
- EXTRA_OEMESON += "-Defi=true \
- -Dgnu-efi=true \
- -Defi-includedir=${STAGING_INCDIR}/efi \
- -Defi-libdir=${STAGING_LIBDIR} \
- -Defi-ld=${@ d.getVar('LD').split()[0]} \
- -Dman=false \
- --cross-file ${WORKDIR}/meson-${PN}.cross \
- "
- # install to the image as boot*.efi if its the EFI_PROVIDER,
- # otherwise install as the full name.
- # This allows multiple bootloaders to coexist in a single image.
- python __anonymous () {
- import re
- target = d.getVar('TARGET_ARCH')
- prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-"
- systemdimage = prefix + d.getVar("EFI_BOOT_IMAGE")
- d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage)
- prefix = "systemd-" if prefix == "" else ""
- d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix)
- }
- FILES_${PN} = "${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}"
- RDEPENDS_${PN} += "virtual/systemd-bootconf"
- # Imported from the old gummiboot recipe
- TUNE_CCARGS_remove = "-mfpmath=sse"
- COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
- COMPATIBLE_HOST_x86-x32 = "null"
- do_compile() {
- SYSTEMD_BOOT_EFI_ARCH="ia32"
- if [ "${TARGET_ARCH}" = "x86_64" ]; then
- SYSTEMD_BOOT_EFI_ARCH="x64"
- fi
- ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE}
- }
- do_install() {
- install -d ${D}${EFI_FILES_PATH}
- install ${B}/src/boot/efi/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}
- }
- do_deploy () {
- install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
- }
- addtask deploy before do_build after do_compile
|