mk/image.mk: Ship /init in initramfs
[openadk.git] / package / grub / Makefile
blob8a7a6b38fa75ea2b64cf71ee7b515a9276d27c1e
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
6 PKG_NAME:= grub
7 PKG_VERSION:= 2.04
8 PKG_RELEASE:= 1
9 PKG_HASH:= e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d
10 PKG_DESCR:= multiboot boot loader
11 PKG_SECTION:= base/boot
12 PKG_BUILDDEP:= bison-host grub-host
13 HOST_BUILDDEP:= python2-host
14 PKG_URL:= http://www.gnu.org/software/grub
15 PKG_SITES:= https://ftp.gnu.org/gnu/grub/
16 PKG_NOPARALLEL:= 1
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)
41 GRUB_ARCH= mips-arc
42 GRUB_IMAGE= grub.img
43 GRUB_DIR= boot/grub
44 GRUB_PREFIX= (hd0,msdos1)/boot/grub
45 GRUB_TARGET= mips
46 GRUB_PLATFORM= arc
47 GRUB_MODULES= boot linux ext2 part_dvh normal
48 endif
50 ifeq ($(ADK_PACKAGE_GRUB_IEEE1275),y)
51 GRUB_ARCH= powerpc-ieee1275
52 GRUB_IMAGE= grub.img
53 GRUB_DIR= boot/grub
54 GRUB_PREFIX= (hd0,msdos1)/boot/grub
55 GRUB_TARGET= powerpc
56 GRUB_PLATFORM= ieee1275
57 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal
58 endif
60 ifeq ($(ADK_PACKAGE_GRUB_PC),y)
61 HOST_CONFIGURE_ARGS+= --with-platform=pc
62 GRUB_ARCH= i386-pc
63 GRUB_IMAGE= grub.img
64 GRUB_DIR= boot/grub
65 GRUB_PREFIX= (hd0,msdos1)/boot/grub
66 GRUB_TARGET= i386
67 GRUB_PLATFORM= pc
68 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal biosdisk
69 endif
71 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86),y)
72 HOST_CONFIGURE_ARGS+= --with-platform=efi
73 GRUB_ARCH= i386-efi
74 GRUB_IMAGE= efi-part/EFI/BOOT/bootia32.efi
75 GRUB_DIR= efi-part/EFI/BOOT
76 GRUB_PREFIX= /EFI/BOOT
77 GRUB_TARGET= i386
78 GRUB_PLATFORM= efi
79 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal efi_gop
80 endif
82 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86_64),y)
83 HOST_CONFIGURE_ARGS+= --with-platform=efi
84 GRUB_ARCH= x86_64-efi
85 GRUB_IMAGE= efi-part/EFI/BOOT/bootx64.efi
86 GRUB_DIR= efi-part/EFI/BOOT
87 GRUB_PREFIX= /EFI/BOOT
88 GRUB_TARGET= x86_64
89 GRUB_PLATFORM= efi
90 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal efi_gop
91 endif
93 ifeq ($(ADK_TARGET_DUAL_BOOT),y)
94 GRUB_CFG= grub-dual.cfg
95 else
96 GRUB_CFG= grub.cfg
97 endif
99 HOST_CONFIGURE_ARGS+= --enable-efiemu=no \
100 --disable-grub-mkfont \
101 --enable-device-mapper=no \
102 --enable-libzfs=no \
103 --disable-rpath \
104 --disable-werror
105 CONFIGURE_ARGS+= --disable-grub-mkfont \
106 --enable-efiemu=no \
107 --enable-device-mapper=no \
108 --enable-libzfs=no \
109 --disable-rpath \
110 --with-platform=$(GRUB_PLATFORM) \
111 --disable-werror
113 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86)$(ADK_PACKAGE_GRUB_EFI_X86_64),y)
114 CONFIGURE_ARGS+= --with-bootdir=/boot/EFI/boot \
115 --with-grubdir=/
116 endif
118 grub-install:
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) \
124 -O $(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 \
129 $(FW_DIR)/
130 endif
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
136 else
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
141 endif
142 $(STAGING_HOST_DIR)/usr/bin/grub-mkimage \
143 -d $(WRKINST)/usr/lib/grub/$(GRUB_ARCH) \
144 -O $(GRUB_ARCH) \
145 -o $(FW_DIR)/$(GRUB_IMAGE) \
146 -p "$(GRUB_PREFIX)" \
147 $(GRUB_MODULES)
149 grub-tools-install:
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