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
9 PKG_CPE_ID
:=cpe
:/a
:gnu
:grub2
11 PKG_RELEASE
:=$(AUTORELEASE
)
13 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.xz
14 PKG_SOURCE_URL
:=https
://alpha.gnu.org
/gnu
/grub
15 PKG_HASH
:=2c87f1f21e2ab50043e6cd9163c08f1b6c3a6171556bf23ff9ed65b074145484
17 HOST_BUILD_PARALLEL
:=1
18 PKG_BUILD_DEPENDS
:=grub2
/host
25 include $(INCLUDE_DIR
)/host-build.mk
26 include $(INCLUDE_DIR
)/package.mk
28 define Package
/grub2
/Default
29 CATEGORY
:=Boot Loaders
31 TITLE
:=GRand Unified Bootloader
($(1))
32 URL
:=http
://www.gnu.org
/software
/grub
/
37 Package
/grub2
=$(call Package
/grub2
/Default
,pc)
38 Package
/grub2-efi
=$(call Package
/grub2
/Default
,efi
)
40 define Package
/grub2-editenv
44 TITLE
:=Grub2 Environment editor
45 URL
:=http
://www.gnu.org
/software
/grub
/
50 define Package
/grub2-editenv
/description
51 Edit grub2 environment files.
54 define Package
/grub2-bios-setup
58 TITLE
:=Grub2 BIOS boot setup tool
59 URL
:=http
://www.gnu.org
/software
/grub
/
64 define Package
/grub2-bios-setup
/description
65 Set up images to bootable.
68 HOST_BUILD_PREFIX
:= $(STAGING_DIR_HOST
)
71 grub_build_mkfont_excuse
="don't want fonts"
74 --target
=$(REAL_GNU_TARGET_NAME
) \
77 --disable-device-mapper \
80 --disable-grub-mkfont \
81 --with-platform
=$(BUILD_VARIANT
)
83 HOST_CONFIGURE_VARS
+= \
84 grub_build_mkfont_excuse
="don't want fonts"
86 HOST_CONFIGURE_ARGS
+= \
87 --disable-grub-mkfont \
88 --target
=$(REAL_GNU_TARGET_NAME
) \
89 --sbindir
="$(STAGING_DIR_HOST)/bin" \
96 TARGET_RANLIB
=$(TARGET_RANLIB
) \
97 LIBLZMA
=$(STAGING_DIR_HOST
)/lib
/liblzma.a
99 TARGET_CFLAGS
:= $(filter-out -O2
-O3
-fno-plt
,$(TARGET_CFLAGS
))
101 ifneq ($(BUILD_VARIANT
),none
)
102 MAKE_PATH
:= grub-core
105 define Host
/Configure
106 $(SED
) 's,(RANLIB),(TARGET_RANLIB),' $(HOST_BUILD_DIR
)/grub-core
/Makefile.in
107 $(Host
/Configure
/Default
)
110 define Package
/grub2
/install
111 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)/grub2
112 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/boot.img
$(STAGING_DIR_IMAGE
)/grub2
/
113 $(CP
) $(PKG_BUILD_DIR
)/grub-core
/cdboot.img
$(STAGING_DIR_IMAGE
)/grub2
/
114 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
115 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
116 -d
$(PKG_BUILD_DIR
)/grub-core \
119 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
120 -o
$(STAGING_DIR_IMAGE
)/grub2
/gpt-core.img \
121 at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot serial vga
122 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
123 -d
$(PKG_BUILD_DIR
)/grub-core \
126 -c .
/files
/grub-early.cfg \
127 -o
$(STAGING_DIR_IMAGE
)/grub2
/generic-core.img \
128 at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
129 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
130 -d
$(PKG_BUILD_DIR
)/grub-core \
133 -c .
/files
/grub-early.cfg \
134 -o
$(STAGING_DIR_IMAGE
)/grub2
/eltorito.img \
135 at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial
test vga
136 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
137 -d
$(PKG_BUILD_DIR
)/grub-core \
140 -c .
/files
/grub-early.cfg \
141 -o
$(STAGING_DIR_IMAGE
)/grub2
/legacy-core.img \
142 biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
145 define Package
/grub2-efi
/install
146 sed
's#msdos1#gpt1#g' .
/files
/grub-early.cfg
>$(PKG_BUILD_DIR
)/grub-early.cfg
147 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
148 -d
$(PKG_BUILD_DIR
)/grub-core \
150 -O
$(CONFIG_ARCH
)-efi \
151 -c
$(PKG_BUILD_DIR
)/grub-early.cfg \
152 -o
$(STAGING_DIR_IMAGE
)/grub2
/boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
153 at_keyboard boot chain configfile fat linux ls part_gpt reboot serial efi_gop efi_uga
154 $(STAGING_DIR_HOST
)/bin
/grub-mkimage \
155 -d
$(PKG_BUILD_DIR
)/grub-core \
157 -O
$(CONFIG_ARCH
)-efi \
158 -c .
/files
/grub-early.cfg \
159 -o
$(STAGING_DIR_IMAGE
)/grub2
/iso-boot
$(if
$(CONFIG_x86_64
),x64
,ia32
).efi \
160 at_keyboard boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial
test efi_gop efi_uga
163 define Package
/grub2-editenv
/install
164 $(INSTALL_DIR
) $(1)/usr
/sbin
165 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-editenv
$(1)/usr
/sbin
/
168 define Package
/grub2-bios-setup
/install
169 $(INSTALL_DIR
) $(1)/usr
/sbin
170 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/grub-bios-setup
$(1)/usr
/sbin
/
173 $(eval
$(call HostBuild
))
174 $(eval
$(call BuildPackage
,grub2
))
175 $(eval
$(call BuildPackage
,grub2-efi
))
176 $(eval
$(call BuildPackage
,grub2-editenv
))
177 $(eval
$(call BuildPackage
,grub2-bios-setup
))