1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR
)/rules.mk
9 PKG_HASH
:= b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
10 PKG_DESCR
:= multiboot boot loader
11 PKG_SECTION
:= base
/boot
12 PKG_BUILDDEP
:= bison-host grub-host
13 HOST_BUILDDEP
:= python3-host
14 PKG_URL
:= http
://www.gnu.org
/software
/grub
15 PKG_SITES
:= https
://ftp.gnu.org
/gnu
/grub
/
18 PKG_ARCH_DEPENDS
:= x86 x86_64 mips mips64 ppc ppc64
20 PKG_SUBPKGS
:= GRUB GRUB_TOOLS
21 PKGSD_GRUB_TOOLS
:= grub2 tools
23 PKG_CHOICES_GRUB
:= PC EFI_X86 EFI_X86_64 ARC IEEE1275
24 PKGCD_PC
:= build for PC BIOS
25 PKGCD_EFI_X86
:= build for EFI x86
26 PKGCD_EFI_X86_64
:= build for EFI x86_64
27 PKGCD_ARC
:= build for MIPS
/MIPS64 ARC
28 PKGCD_IEEE1275
:= build for OpenFirmware
30 include $(ADK_TOPDIR
)/mk
/host.mk
31 include $(ADK_TOPDIR
)/mk
/package.mk
33 $(eval
$(call HOST_template
,GRUB
,grub
,$(PKG_VERSION
)-${PKG_RELEASE}))
34 $(eval
$(call PKG_template
,GRUB
,grub
,$(PKG_VERSION
)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
35 $(eval
$(call PKG_template
,GRUB_TOOLS
,grub-tools
,$(PKG_VERSION
)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
37 TARGET_CFLAGS
:=$(filter-out -fstack-protector-all
,$(TARGET_CFLAGS
))
38 TARGET_CFLAGS
:=$(filter-out -flto
,$(TARGET_CFLAGS
))
40 ifeq ($(ADK_PACKAGE_GRUB_ARC
),y
)
44 GRUB_PREFIX
= (hd0
,msdos1
)/boot
/grub
47 GRUB_MODULES
= boot linux ext2 part_dvh normal
50 ifeq ($(ADK_PACKAGE_GRUB_IEEE1275
),y
)
51 GRUB_ARCH
= powerpc-ieee1275
54 GRUB_PREFIX
= (hd0
,msdos1
)/boot
/grub
56 GRUB_PLATFORM
= ieee1275
57 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal
60 ifeq ($(ADK_PACKAGE_GRUB_PC
),y
)
61 HOST_CONFIGURE_ARGS
+= --with-platform
=pc
65 GRUB_PREFIX
= (hd0
,msdos1
)/boot
/grub
68 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal biosdisk
71 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86
),y
)
72 HOST_CONFIGURE_ARGS
+= --with-platform
=efi
74 GRUB_IMAGE
= efi-part
/EFI
/BOOT
/bootia32.efi
75 GRUB_DIR
= efi-part
/EFI
/BOOT
76 GRUB_PREFIX
= /EFI
/BOOT
79 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal efi_gop
82 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86_64
),y
)
83 HOST_CONFIGURE_ARGS
+= --with-platform
=efi
85 GRUB_IMAGE
= efi-part
/EFI
/BOOT
/bootx64.efi
86 GRUB_DIR
= efi-part
/EFI
/BOOT
87 GRUB_PREFIX
= /EFI
/BOOT
90 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal efi_gop
93 ifeq ($(ADK_TARGET_DUAL_BOOT
),y
)
94 GRUB_CFG
= grub-dual.cfg
99 HOST_CONFIGURE_ARGS
+= --enable-efiemu
=no \
100 --disable-grub-mkfont \
101 --enable-device-mapper
=no \
105 CONFIGURE_ARGS
+= --disable-grub-mkfont \
107 --enable-device-mapper
=no \
110 --with-platform
=$(GRUB_PLATFORM
) \
113 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86
)$(ADK_PACKAGE_GRUB_EFI_X86_64
),y
)
114 CONFIGURE_ARGS
+= --with-bootdir
=/boot
/EFI
/boot \
119 $(INSTALL_DIR
) $(FW_DIR
)/$(GRUB_DIR
)
120 $(INSTALL_DIR
) $(IDIR_GRUB
)/$(GRUB_DIR
)
121 ifeq ($(ADK_PACKAGE_GRUB_PC
),y
)
122 $(STAGING_HOST_DIR
)/usr
/bin
/grub-mkimage \
123 -d
$(WRKINST
)/usr
/lib
/grub
/$(GRUB_ARCH
) \
125 -p
"$(GRUB_PREFIX)" \
126 -o
$(IDIR_GRUB
)/$(GRUB_DIR
)/core.img \
127 -c .
/files
/embed.cfg ext2 part_msdos biosdisk
128 $(CP
) $(WRKINST
)/usr
/lib
/grub
/i386-pc
/boot.img \
131 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86
)$(ADK_PACKAGE_GRUB_EFI_X86_64
),y
)
132 ${CP} ${WRKINST}/usr
/lib
/grub
/$(GRUB_ARCH
) \
133 $(FW_DIR
)/$(GRUB_DIR
)
134 $(CP
) .
/files
/$(GRUB_CFG
) $(FW_DIR
)/$(GRUB_DIR
)/grub.cfg
135 $(SED
) "s/@@ROOTDEV@@/$(ADK_TARGET_ROOTDEV)/g" $(FW_DIR
)/$(GRUB_DIR
)/grub.cfg
137 ${CP} ${WRKINST}/usr
/lib
/grub
/${GRUB_ARCH} \
138 $(IDIR_GRUB
)/$(GRUB_DIR
)
139 $(CP
) .
/files
/$(GRUB_CFG
) $(IDIR_GRUB
)/$(GRUB_DIR
)/grub.cfg
140 $(SED
) "s/@@ROOTDEV@@/$(ADK_TARGET_ROOTDEV)/g" $(IDIR_GRUB
)/$(GRUB_DIR
)/grub.cfg
142 $(STAGING_HOST_DIR
)/usr
/bin
/grub-mkimage \
143 -d
$(WRKINST
)/usr
/lib
/grub
/$(GRUB_ARCH
) \
145 -o
$(FW_DIR
)/$(GRUB_IMAGE
) \
146 -p
"$(GRUB_PREFIX)" \
150 ${INSTALL_DIR} $(IDIR_GRUB_TOOLS
)/usr
/{sbin
,bin
,share
,lib
}
151 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-install \
152 $(IDIR_GRUB_TOOLS
)/usr
/sbin
153 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-probe \
154 $(IDIR_GRUB_TOOLS
)/usr
/sbin
155 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-bios-setup \
156 $(IDIR_GRUB_TOOLS
)/usr
/sbin
157 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/grub-editenv \
158 $(IDIR_GRUB_TOOLS
)/usr
/bin
159 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/grub-mkrelpath \
160 $(IDIR_GRUB_TOOLS
)/usr
/bin
161 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/grub-mkimage \
162 $(IDIR_GRUB_TOOLS
)/usr
/bin
163 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-reboot \
164 $(IDIR_GRUB_TOOLS
)/usr
/sbin
165 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-set-default \
166 $(IDIR_GRUB_TOOLS
)/usr
/sbin
167 ${CP} ${WRKINST}/usr
/lib
/grub \
168 $(IDIR_GRUB_TOOLS
)/usr
/lib
169 ${CP} ${WRKINST}/usr
/share
/grub \
170 $(IDIR_GRUB_TOOLS
)/usr
/share
172 include ${ADK_TOPDIR}/mk
/host-bottom.mk
173 include ${ADK_TOPDIR}/mk
/pkg-bottom.mk