1SUMMARY = "GRUB2 is the next-generation GRand Unified Bootloader" 2 3DESCRIPTION = "GRUB2 is the next generaion of a GPLed bootloader \ 4intended to unify bootloading across x86 operating systems. In \ 5addition to loading the Linux kernel, it implements the Multiboot \ 6standard, which allows for flexible loading of multiple boot images." 7 8HOMEPAGE = "http://www.gnu.org/software/grub/" 9SECTION = "bootloaders" 10 11LICENSE = "GPLv3" 12LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 13 14SRC_URI = "https://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ 15 file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \ 16 file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ 17 file://autogen.sh-exclude-pc.patch \ 18 file://grub-module-explicitly-keeps-symbole-.module_license.patch \ 19 file://0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch \ 20 file://gcc8.patch \ 21 file://0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch \ 22 file://0001-grub-setup-Debug-message-cleanup.patch \ 23" 24SRC_URI[md5sum] = "1116d1f60c840e6dbd67abbc99acb45d" 25SRC_URI[sha256sum] = "660ee136fbcee08858516ed4de2ad87068bfe1b6b8b37896ce3529ff054a726d" 26 27DEPENDS = "flex-native bison-native" 28 29COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)' 30COMPATIBLE_HOST_armv7a = 'null' 31COMPATIBLE_HOST_armv7ve = 'null' 32 33# configure.ac has code to set this automagically from the target tuple 34# but the OE freeform one (core2-foo-bar-linux) don't work with that. 35 36GRUBPLATFORM_arm = "efi" 37GRUBPLATFORM_aarch64 = "efi" 38GRUBPLATFORM ??= "pc" 39 40inherit autotools gettext texinfo 41 42EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} \ 43 --disable-grub-mkfont \ 44 --program-prefix="" \ 45 --enable-liblzma=no \ 46 --enable-libzfs=no \ 47 --enable-largefile \ 48" 49 50PACKAGECONFIG ??= "" 51PACKAGECONFIG[grub-mount] = "--enable-grub-mount,--disable-grub-mount,fuse" 52PACKAGECONFIG[device-mapper] = "--enable-device-mapper,--disable-device-mapper,libdevmapper" 53 54# grub2 creates its own set of -nostdinc / -isystem / -ffreestanding CFLAGS and 55# OE's default BUILD_CFLAGS (assigned to CFLAGS for native builds) etc, conflict 56# with that. Note that since BUILD_CFLAGS etc are not used by grub2 target 57# builds, it's safe to clear them unconditionally for both target and native. 58BUILD_CPPFLAGS = "" 59BUILD_CFLAGS = "" 60BUILD_CXXFLAGS = "" 61BUILD_LDFLAGS = "" 62 63CFLAGS_append = " -Wno-error" 64 65do_configure_prepend() { 66 # The grub2 configure script uses variables such as TARGET_CFLAGS etc 67 # for its own purposes. Remove the OE versions from the environment to 68 # avoid conflicts. 69 unset TARGET_CPPFLAGS TARGET_CFLAGS TARGET_CXXFLAGS TARGET_LDFLAGS 70 ( cd ${S} 71 ${S}/autogen.sh ) 72} 73 74RDEPENDS_${PN}_class-native = "" 75