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
:=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
($(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
)
46 define Package
/grub2-editenv
50 TITLE
:=Grub2 Environment editor
51 URL
:=http
://www.gnu.org
/software
/grub
/
56 define Package
/grub2-editenv
/description
57 Edit grub2 environment files.
60 define Package
/grub2-bios-setup
64 TITLE
:=Grub2 BIOS boot setup tool
65 URL
:=http
://www.gnu.org
/software
/grub
/
70 define Package
/grub2-bios-setup
/description
71 Set up images to bootable.
74 HOST_BUILD_PREFIX
:= $(STAGING_DIR_HOST
)
77 grub_build_mkfont_excuse
="don't want fonts"
80 --target
=$(REAL_GNU_TARGET_NAME
) \
83 --disable-device-mapper \
86 --disable-grub-mkfont \
87 --with-platform
=$(BUILD_VARIANT
)
89 HOST_CONFIGURE_VARS
+= \
90 grub_build_mkfont_excuse
="don't want fonts"
92 HOST_CONFIGURE_ARGS
+= \
93 --disable-grub-mkfont \
94 --target
=$(REAL_GNU_TARGET_NAME
) \
95 --sbindir
="$(STAGING_DIR_HOST)/bin" \
102 TARGET_RANLIB
=$(TARGET_RANLIB
) \
103 LIBLZMA
=$(STAGING_DIR_HOST
)/lib
/liblzma.a
106 ifneq ($(BUILD_VARIANT
),none
)
107 TARGET_CFLAGS
:= $(filter-out -O2
-O3
-fno-plt
,$(TARGET_CFLAGS
))
108 MAKE_PATH
:= grub-core
111 ifeq ($(CONFIG_arm
),y
)
112 TARGET_CFLAGS
:= $(filter-out -mfloat-abi
=hard
,$(TARGET_CFLAGS
))
115 define Host
/Configure
116 $(SED
) 's,(RANLIB),(TARGET_RANLIB),' $(HOST_BUILD_DIR
)/grub-core
/Makefile.in
117 $(Host
/Configure
/Default
)
120 define Package
/grub2
/install
121 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
122 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/boot.img
$(STAGING_DIR_IMAGE
)/grub2
/
123 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/cdboot.img
$(STAGING_DIR_IMAGE
)/grub2
/
124 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
125 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
126 -d
$(PKG_BUILD_DIR
)/grub-core \
129 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
130 -o
$(STAGING_DIR_IMAGE
)/grub2
/gpt-core.img \
131 at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot search serial
test vga
132 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
133 -d
$(PKG_BUILD_DIR
)/grub-core \
136 -c .
/files
/grub-early.cfg \
137 -o
$(STAGING_DIR_IMAGE
)/grub2
/generic-core.img \
138 at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial
test vga
139 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
140 -d
$(PKG_BUILD_DIR
)/grub-core \
143 -c .
/files
/grub-early.cfg \
144 -o
$(STAGING_DIR_IMAGE
)/grub2
/eltorito.img \
145 at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot search serial
test vga
146 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
147 -d
$(PKG_BUILD_DIR
)/grub-core \
150 -c .
/files
/grub-early.cfg \
151 -o
$(STAGING_DIR_IMAGE
)/grub2
/legacy-core.img \
152 biosdisk boot chain configfile ext2 linux ls part_msdos reboot search serial vga
155 define Package
/grub2-efi
/install
156 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
157 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
158 -d
$(PKG_BUILD_DIR
)/grub-core \
160 -O
$(CONFIG_ARCH
)-efi \
161 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
162 -o
$(STAGING_DIR_IMAGE
)/grub2
/boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
163 at_keyboard boot chain configfile fat linux ls part_gpt reboot serial
test efi_gop efi_uga
164 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
165 -d
$(PKG_BUILD_DIR
)/grub-core \
167 -O
$(CONFIG_ARCH
)-efi \
168 -c .
/files
/grub-early.cfg \
169 -o
$(STAGING_DIR_IMAGE
)/grub2
/iso-boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
170 boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial
test efi_gop efi_uga
173 define Package
/grub2-efi-arm
/install
174 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
175 cp .
/files
/grub-early-gpt.cfg
$(PKG_BUILD_DIR
)/grub-early.cfg
176 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
177 -d
$(PKG_BUILD_DIR
)/grub-core \
179 -O arm
$(if
$(CONFIG_aarch64
),64,)-efi \
180 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
181 -o
$(STAGING_DIR_IMAGE
)/grub2
/boot
$(if
$(CONFIG_aarch64
),aa64
,arm
).efi \
182 boot chain configfile fat linux ls part_gpt part_msdos reboot search \
183 search_fs_uuid search_label serial efi_gop lsefi minicmd ext2
184 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
185 -d
$(PKG_BUILD_DIR
)/grub-core \
187 -O arm
$(if
$(CONFIG_aarch64
),64,)-efi \
188 -c .
/files
/grub-early.cfg \
189 -o
$(STAGING_DIR_IMAGE
)/grub2
/iso-bootaa
$(if
$(CONFIG_aarch64
),aa64
,arm
).efi \
190 boot chain configfile fat iso9660 linux ls lsefi minicmd part_msdos part_gpt \
191 reboot serial
test efi_gop
195 define Package
/grub2-editenv
/install
196 $(INSTALL_DIR
) $(1)/usr
/sbin
197 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-editenv
$(1)/usr
/sbin
/
200 define Package
/grub2-bios-setup
/install
201 $(INSTALL_DIR
) $(1)/usr
/sbin
202 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-bios-setup
$(1)/usr
/sbin
/
205 $(eval
$(call HostBuild
))
206 $(eval
$(call BuildPackage
,grub2
))
207 $(eval
$(call BuildPackage
,grub2-efi
))
208 $(eval
$(call BuildPackage
,grub2-efi-arm
))
209 $(eval
$(call BuildPackage
,grub2-editenv
))
210 $(eval
$(call BuildPackage
,grub2-bios-setup
))