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
7 PKG_VERSION
:= 07662af7aed55bcec448bc2a6610de1f0cb62100
9 PKG_DESCR
:= multiboot boot loader
10 PKG_SECTION
:= base
/boot
11 PKG_BUILDDEP
:= bison-host grub-host
12 HOST_BUILDDEP
:= python2-host
13 PKG_URL
:= http
://www.gnu.org
/software
/grub
14 PKG_SITES
:= https
://git.savannah.gnu.org
/git
/grub.git
17 PKG_ARCH_DEPENDS
:= x86 x86_64 mips mips64 ppc ppc64
19 PKG_SUBPKGS
:= GRUB GRUB_TOOLS
20 PKGSD_GRUB_TOOLS
:= grub2 tools
22 PKG_CHOICES_GRUB
:= PC EFI_X86 EFI_X86_64 ARC IEEE1275
23 PKGCD_PC
:= build for PC BIOS
24 PKGCD_EFI_X86
:= build for EFI x86
25 PKGCD_EFI_X86_64
:= build for EFI x86_64
26 PKGCD_ARC
:= build for MIPS
/MIPS64 ARC
27 PKGCD_IEEE1275
:= build for OpenFirmware
29 include $(ADK_TOPDIR
)/mk
/host.mk
30 include $(ADK_TOPDIR
)/mk
/package.mk
32 $(eval
$(call HOST_template
,GRUB
,grub
,$(PKG_VERSION
)-${PKG_RELEASE}))
33 $(eval
$(call PKG_template
,GRUB
,grub
,$(PKG_VERSION
)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
34 $(eval
$(call PKG_template
,GRUB_TOOLS
,grub-tools
,$(PKG_VERSION
)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
36 TARGET_CFLAGS
:=$(filter-out -fstack-protector-all
,$(TARGET_CFLAGS
))
37 TARGET_CFLAGS
:=$(filter-out -flto
,$(TARGET_CFLAGS
))
39 AUTOTOOL_STYLE
:= autogen
41 ifeq ($(ADK_PACKAGE_GRUB_ARC
),y
)
45 GRUB_PREFIX
= (hd0
,msdos1
)/boot
/grub
48 GRUB_MODULES
= boot linux ext2 part_dvh normal
51 ifeq ($(ADK_PACKAGE_GRUB_IEEE1275
),y
)
52 GRUB_ARCH
= powerpc-ieee1275
55 GRUB_PREFIX
= (hd0
,msdos1
)/boot
/grub
57 GRUB_PLATFORM
= ieee1275
58 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal
61 ifeq ($(ADK_PACKAGE_GRUB_PC
),y
)
62 HOST_CONFIGURE_ARGS
+= --with-platform
=pc
66 GRUB_PREFIX
= (hd0
,msdos1
)/boot
/grub
69 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal biosdisk
72 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86
),y
)
73 HOST_CONFIGURE_ARGS
+= --with-platform
=efi
75 GRUB_IMAGE
= efi-part
/EFI
/BOOT
/bootia32.efi
76 GRUB_DIR
= efi-part
/EFI
/BOOT
77 GRUB_PREFIX
= /EFI
/BOOT
80 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal efi_gop
83 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86_64
),y
)
84 HOST_CONFIGURE_ARGS
+= --with-platform
=efi
86 GRUB_IMAGE
= efi-part
/EFI
/BOOT
/bootx64.efi
87 GRUB_DIR
= efi-part
/EFI
/BOOT
88 GRUB_PREFIX
= /EFI
/BOOT
91 GRUB_MODULES
= boot linux ext2 fat part_msdos part_gpt normal efi_gop
94 ifeq ($(ADK_TARGET_DUAL_BOOT
),y
)
95 GRUB_CFG
= grub-dual.cfg
100 HOST_CONFIGURE_ARGS
+= --enable-efiemu
=no \
101 --disable-grub-mkfont \
102 --enable-device-mapper
=no \
106 CONFIGURE_ARGS
+= --disable-grub-mkfont \
108 --enable-device-mapper
=no \
111 --with-platform
=$(GRUB_PLATFORM
) \
114 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86
)$(ADK_PACKAGE_GRUB_EFI_X86_64
),y
)
115 CONFIGURE_ARGS
+= --with-bootdir
=/boot
/EFI
/boot \
120 $(INSTALL_DIR
) $(FW_DIR
)/$(GRUB_DIR
)
121 $(INSTALL_DIR
) $(IDIR_GRUB
)/$(GRUB_DIR
)
122 ifeq ($(ADK_PACKAGE_GRUB_PC
),y
)
123 $(STAGING_HOST_DIR
)/usr
/bin
/grub-mkimage \
124 -d
$(WRKINST
)/usr
/lib
/grub
/$(GRUB_ARCH
) \
126 -p
"$(GRUB_PREFIX)" \
127 -o
$(IDIR_GRUB
)/$(GRUB_DIR
)/core.img \
128 -c .
/files
/embed.cfg ext2 part_msdos biosdisk
129 $(CP
) $(WRKINST
)/usr
/lib
/grub
/i386-pc
/boot.img \
132 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86
)$(ADK_PACKAGE_GRUB_EFI_X86_64
),y
)
133 ${CP} ${WRKINST}/usr
/lib
/grub
/$(GRUB_ARCH
) \
134 $(FW_DIR
)/$(GRUB_DIR
)
135 $(CP
) .
/files
/$(GRUB_CFG
) $(FW_DIR
)/$(GRUB_DIR
)/grub.cfg
136 $(SED
) "s/@@ROOTDEV@@/$(ADK_TARGET_ROOTDEV)/g" $(FW_DIR
)/$(GRUB_DIR
)/grub.cfg
138 ${CP} ${WRKINST}/usr
/lib
/grub
/${GRUB_ARCH} \
139 $(IDIR_GRUB
)/$(GRUB_DIR
)
140 $(CP
) .
/files
/$(GRUB_CFG
) $(IDIR_GRUB
)/$(GRUB_DIR
)/grub.cfg
141 $(SED
) "s/@@ROOTDEV@@/$(ADK_TARGET_ROOTDEV)/g" $(IDIR_GRUB
)/$(GRUB_DIR
)/grub.cfg
143 $(STAGING_HOST_DIR
)/usr
/bin
/grub-mkimage \
144 -d
$(WRKINST
)/usr
/lib
/grub
/$(GRUB_ARCH
) \
146 -o
$(FW_DIR
)/$(GRUB_IMAGE
) \
147 -p
"$(GRUB_PREFIX)" \
151 ${INSTALL_DIR} $(IDIR_GRUB_TOOLS
)/usr
/{sbin
,bin
,share
,lib
}
152 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-install \
153 $(IDIR_GRUB_TOOLS
)/usr
/sbin
154 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-probe \
155 $(IDIR_GRUB_TOOLS
)/usr
/sbin
156 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-bios-setup \
157 $(IDIR_GRUB_TOOLS
)/usr
/sbin
158 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/grub-editenv \
159 $(IDIR_GRUB_TOOLS
)/usr
/bin
160 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/grub-mkrelpath \
161 $(IDIR_GRUB_TOOLS
)/usr
/bin
162 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/grub-mkimage \
163 $(IDIR_GRUB_TOOLS
)/usr
/bin
164 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-reboot \
165 $(IDIR_GRUB_TOOLS
)/usr
/sbin
166 ${INSTALL_BIN} ${WRKINST}/usr
/sbin
/grub-set-default \
167 $(IDIR_GRUB_TOOLS
)/usr
/sbin
168 ${CP} ${WRKINST}/usr
/lib
/grub \
169 $(IDIR_GRUB_TOOLS
)/usr
/lib
170 ${CP} ${WRKINST}/usr
/share
/grub \
171 $(IDIR_GRUB_TOOLS
)/usr
/share
173 include ${ADK_TOPDIR}/mk
/host-bottom.mk
174 include ${ADK_TOPDIR}/mk
/pkg-bottom.mk