1 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2006-2021 OpenWrt.org
5 include $(TOPDIR
)/rules.mk
6 include $(INCLUDE_DIR
)/kernel.mk
10 PKG_RELEASE
:=$(AUTORELEASE
)
12 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.xz
13 PKG_SOURCE_URL
:=@GNU
/grub
14 PKG_HASH
:=b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
16 PKG_LICENSE
:=GPL-3.0
-or-later
17 PKG_CPE_ID
:=cpe
:/a
:gnu
:grub2
19 HOST_BUILD_PARALLEL
:=1
20 PKG_BUILD_DEPENDS
:=grub2
/host
22 ifneq ($(BUILD_VARIANT
),none
)
28 PKG_BUILD_FLAGS
:=no-lto
30 include $(INCLUDE_DIR
)/host-build.mk
31 include $(INCLUDE_DIR
)/package.mk
33 define Package
/grub2
/Default
34 CATEGORY
:=Boot Loaders
36 TITLE
:=GRand Unified Bootloader
($(1))
37 URL
:=http
://www.gnu.org
/software
/grub
/
42 Package
/grub2
=$(call Package
/grub2
/Default
,pc)
43 Package
/grub2-efi
=$(call Package
/grub2
/Default
,efi
)
45 define Package
/grub2-editenv
49 TITLE
:=Grub2 Environment editor
50 URL
:=http
://www.gnu.org
/software
/grub
/
55 define Package
/grub2-editenv
/description
56 Edit grub2 environment files.
59 define Package
/grub2-bios-setup
63 TITLE
:=Grub2 BIOS boot setup tool
64 URL
:=http
://www.gnu.org
/software
/grub
/
69 define Package
/grub2-bios-setup
/description
70 Set up images to bootable.
73 HOST_BUILD_PREFIX
:= $(STAGING_DIR_HOST
)
76 grub_build_mkfont_excuse
="don't want fonts"
79 --target
=$(REAL_GNU_TARGET_NAME
) \
82 --disable-device-mapper \
85 --disable-grub-mkfont \
86 --with-platform
=$(BUILD_VARIANT
)
88 HOST_CONFIGURE_VARS
+= \
89 grub_build_mkfont_excuse
="don't want fonts"
91 HOST_CONFIGURE_ARGS
+= \
92 --disable-grub-mkfont \
93 --target
=$(REAL_GNU_TARGET_NAME
) \
94 --sbindir
="$(STAGING_DIR_HOST)/bin" \
101 TARGET_RANLIB
=$(TARGET_RANLIB
) \
102 LIBLZMA
=$(STAGING_DIR_HOST
)/lib
/liblzma.a
105 ifneq ($(BUILD_VARIANT
),none
)
106 TARGET_CFLAGS
:= $(filter-out -O2
-O3
-fno-plt
,$(TARGET_CFLAGS
))
107 MAKE_PATH
:= grub-core
110 define Host
/Configure
111 $(SED
) 's,(RANLIB),(TARGET_RANLIB),' $(HOST_BUILD_DIR
)/grub-core
/Makefile.in
112 $(Host
/Configure
/Default
)
115 define Package
/grub2
/install
116 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
117 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/boot.img
$(STAGING_DIR_IMAGE
)/grub2
/
118 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/cdboot.img
$(STAGING_DIR_IMAGE
)/grub2
/
119 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
120 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
121 -d
$(PKG_BUILD_DIR
)/grub-core \
124 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
125 -o
$(STAGING_DIR_IMAGE
)/grub2
/gpt-core.img \
126 at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot search serial
test vga
127 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
128 -d
$(PKG_BUILD_DIR
)/grub-core \
131 -c .
/files
/grub-early.cfg \
132 -o
$(STAGING_DIR_IMAGE
)/grub2
/generic-core.img \
133 at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial
test vga
134 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
135 -d
$(PKG_BUILD_DIR
)/grub-core \
138 -c .
/files
/grub-early.cfg \
139 -o
$(STAGING_DIR_IMAGE
)/grub2
/eltorito.img \
140 at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot search serial
test vga
141 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
142 -d
$(PKG_BUILD_DIR
)/grub-core \
145 -c .
/files
/grub-early.cfg \
146 -o
$(STAGING_DIR_IMAGE
)/grub2
/legacy-core.img \
147 biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial vga
150 define Package
/grub2-efi
/install
151 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
152 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
153 -d
$(PKG_BUILD_DIR
)/grub-core \
155 -O
$(CONFIG_ARCH
)-efi \
156 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
157 -o
$(STAGING_DIR_IMAGE
)/grub2
/boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
158 at_keyboard boot chain configfile fat linux ls part_gpt reboot serial
test efi_gop efi_uga
159 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
160 -d
$(PKG_BUILD_DIR
)/grub-core \
162 -O
$(CONFIG_ARCH
)-efi \
163 -c .
/files
/grub-early.cfg \
164 -o
$(STAGING_DIR_IMAGE
)/grub2
/iso-boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
165 at_keyboard boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial
test efi_gop efi_uga
168 define Package
/grub2-editenv
/install
169 $(INSTALL_DIR
) $(1)/usr
/sbin
170 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-editenv
$(1)/usr
/sbin
/
173 define Package
/grub2-bios-setup
/install
174 $(INSTALL_DIR
) $(1)/usr
/sbin
175 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-bios-setup
$(1)/usr
/sbin
/
178 $(eval
$(call HostBuild
))
179 $(eval
$(call BuildPackage
,grub2
))
180 $(eval
$(call BuildPackage
,grub2-efi
))
181 $(eval
$(call BuildPackage
,grub2-editenv
))
182 $(eval
$(call BuildPackage
,grub2-bios-setup
))