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
12 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.xz
13 PKG_SOURCE_URL
:=@GNU
/grub
14 PKG_HASH
:=f3c97391f7c4eaa677a78e090c7e97e6dc47b16f655f04683ebd37bef7fe0faa
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-gc-sections no-lto no-mold
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
($(2))
37 URL
:=http
://www.gnu.org
/software
/grub
/
42 Package
/grub2
=$(call Package
/grub2
/Default
,x86
,pc)
43 Package
/grub2-efi
=$(call Package
/grub2
/Default
,x86
,efi
)
44 Package
/grub2-efi-arm
=$(call Package
/grub2
/Default
,armsr
,efi
)
45 Package
/grub2-efi-loongarch64
=$(call Package
/grub2
/Default
,loongarch64
,efi
)
47 define Package
/grub2-editenv
51 TITLE
:=Grub2 Environment editor
52 URL
:=http
://www.gnu.org
/software
/grub
/
57 define Package
/grub2-editenv
/description
58 Edit grub2 environment files.
61 define Package
/grub2-bios-setup
65 TITLE
:=Grub2 BIOS boot setup tool
66 URL
:=http
://www.gnu.org
/software
/grub
/
71 define Package
/grub2-bios-setup
/description
72 Set up images to bootable.
75 HOST_BUILD_PREFIX
:= $(STAGING_DIR_HOST
)
78 grub_build_mkfont_excuse
="don't want fonts"
81 --target
=$(REAL_GNU_TARGET_NAME
) \
84 --disable-device-mapper \
87 --disable-grub-mkfont \
88 --with-platform
=$(BUILD_VARIANT
)
90 HOST_CONFIGURE_VARS
+= \
91 grub_build_mkfont_excuse
="don't want fonts"
93 HOST_CONFIGURE_ARGS
+= \
94 --disable-grub-mkfont \
95 --target
=$(REAL_GNU_TARGET_NAME
) \
96 --sbindir
="$(STAGING_DIR_HOST)/bin" \
103 TARGET_RANLIB
=$(TARGET_RANLIB
) \
104 LIBLZMA
=$(STAGING_DIR_HOST
)/lib
/liblzma.a
107 ifneq ($(BUILD_VARIANT
),none
)
108 TARGET_CFLAGS
:= $(filter-out -O2
-O3
-fno-plt
,$(TARGET_CFLAGS
))
109 MAKE_PATH
:= grub-core
112 ifeq ($(CONFIG_arm
),y
)
113 TARGET_CFLAGS
:= $(filter-out -mfloat-abi
=hard
,$(TARGET_CFLAGS
))
116 define Host
/Configure
117 $(SED
) 's,(RANLIB),(TARGET_RANLIB),' $(HOST_BUILD_DIR
)/grub-core
/Makefile.in
118 $(Host
/Configure
/Default
)
121 define Package
/grub2
/install
122 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
123 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/boot.img
$(STAGING_DIR_IMAGE
)/grub2
/
124 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/cdboot.img
$(STAGING_DIR_IMAGE
)/grub2
/
125 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
126 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
127 -d
$(PKG_BUILD_DIR
)/grub-core \
130 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
131 -o
$(STAGING_DIR_IMAGE
)/grub2
/gpt-core.img \
132 at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot search serial
test vga
133 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
134 -d
$(PKG_BUILD_DIR
)/grub-core \
137 -c .
/files
/grub-early.cfg \
138 -o
$(STAGING_DIR_IMAGE
)/grub2
/generic-core.img \
139 at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial
test vga
140 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
141 -d
$(PKG_BUILD_DIR
)/grub-core \
144 -c .
/files
/grub-early.cfg \
145 -o
$(STAGING_DIR_IMAGE
)/grub2
/eltorito.img \
146 at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot search serial
test vga
147 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
148 -d
$(PKG_BUILD_DIR
)/grub-core \
151 -c .
/files
/grub-early.cfg \
152 -o
$(STAGING_DIR_IMAGE
)/grub2
/legacy-core.img \
153 biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial vga
156 define Package
/grub2-efi
/install
157 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
158 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
159 -d
$(PKG_BUILD_DIR
)/grub-core \
161 -O
$(CONFIG_ARCH
)-efi \
162 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
163 -o
$(STAGING_DIR_IMAGE
)/grub2
/boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
164 at_keyboard boot chain configfile fat linux ls part_gpt reboot serial
test efi_gop efi_uga
165 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
166 -d
$(PKG_BUILD_DIR
)/grub-core \
168 -O
$(CONFIG_ARCH
)-efi \
169 -c .
/files
/grub-early.cfg \
170 -o
$(STAGING_DIR_IMAGE
)/grub2
/iso-boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
171 boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial
test efi_gop efi_uga
174 define Package
/grub2-efi-arm
/install
175 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
176 cp .
/files
/grub-early-gpt.cfg
$(PKG_BUILD_DIR
)/grub-early.cfg
177 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
178 -d
$(PKG_BUILD_DIR
)/grub-core \
180 -O arm
$(if
$(CONFIG_aarch64
),64,)-efi \
181 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
182 -o
$(STAGING_DIR_IMAGE
)/grub2
/boot
$(if
$(CONFIG_aarch64
),aa64
,arm
).efi \
183 boot chain configfile fat linux ls part_gpt part_msdos reboot search \
184 search_fs_uuid search_label serial efi_gop lsefi minicmd ext2
185 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
186 -d
$(PKG_BUILD_DIR
)/grub-core \
188 -O arm
$(if
$(CONFIG_aarch64
),64,)-efi \
189 -c .
/files
/grub-early.cfg \
190 -o
$(STAGING_DIR_IMAGE
)/grub2
/iso-bootaa
$(if
$(CONFIG_aarch64
),aa64
,arm
).efi \
191 boot chain configfile fat iso9660 linux ls lsefi minicmd part_msdos part_gpt \
192 reboot serial
test efi_gop
195 define Package
/grub2-efi-loongarch64
/install
196 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
197 cp .
/files
/grub-early-gpt.cfg
$(PKG_BUILD_DIR
)/grub-early.cfg
198 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
199 -d
$(PKG_BUILD_DIR
)/grub-core \
202 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
203 -o
$(STAGING_DIR_IMAGE
)/grub2
/bootloongarch64.efi \
204 boot chain configfile fat linux ls lsefi minicmd part_gpt part_msdos reboot search \
205 search_fs_uuid search_label serial efi_gop all_video gfxterm ext2
209 define Package
/grub2-editenv
/install
210 $(INSTALL_DIR
) $(1)/usr
/sbin
211 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-editenv
$(1)/usr
/sbin
/
214 define Package
/grub2-bios-setup
/install
215 $(INSTALL_DIR
) $(1)/usr
/sbin
216 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-bios-setup
$(1)/usr
/sbin
/
219 $(eval
$(call HostBuild
))
220 $(eval
$(call BuildPackage
,grub2
))
221 $(eval
$(call BuildPackage
,grub2-efi
))
222 $(eval
$(call BuildPackage
,grub2-efi-arm
))
223 $(eval
$(call BuildPackage
,grub2-efi-loongarch64
))
224 $(eval
$(call BuildPackage
,grub2-editenv
))
225 $(eval
$(call BuildPackage
,grub2-bios-setup
))