binutils: fix default
[openadk.git] / package / grub / Makefile
blobab36d217e66e4e862ce89455bdacf6426ecd457a
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:= 07662af7aed55bcec448bc2a6610de1f0cb62100
8 PKG_RELEASE:= 1
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
15 PKG_NOPARALLEL:= 1
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)
42 GRUB_ARCH= mips-arc
43 GRUB_IMAGE= grub.img
44 GRUB_DIR= boot/grub
45 GRUB_PREFIX= (hd0,msdos1)/boot/grub
46 GRUB_TARGET= mips
47 GRUB_PLATFORM= arc
48 GRUB_MODULES= boot linux ext2 part_dvh normal
49 endif
51 ifeq ($(ADK_PACKAGE_GRUB_IEEE1275),y)
52 GRUB_ARCH= powerpc-ieee1275
53 GRUB_IMAGE= grub.img
54 GRUB_DIR= boot/grub
55 GRUB_PREFIX= (hd0,msdos1)/boot/grub
56 GRUB_TARGET= powerpc
57 GRUB_PLATFORM= ieee1275
58 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal
59 endif
61 ifeq ($(ADK_PACKAGE_GRUB_PC),y)
62 HOST_CONFIGURE_ARGS+= --with-platform=pc
63 GRUB_ARCH= i386-pc
64 GRUB_IMAGE= grub.img
65 GRUB_DIR= boot/grub
66 GRUB_PREFIX= (hd0,msdos1)/boot/grub
67 GRUB_TARGET= i386
68 GRUB_PLATFORM= pc
69 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal biosdisk
70 endif
72 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86),y)
73 HOST_CONFIGURE_ARGS+= --with-platform=efi
74 GRUB_ARCH= i386-efi
75 GRUB_IMAGE= efi-part/EFI/BOOT/bootia32.efi
76 GRUB_DIR= efi-part/EFI/BOOT
77 GRUB_PREFIX= /EFI/BOOT
78 GRUB_TARGET= i386
79 GRUB_PLATFORM= efi
80 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal efi_gop
81 endif
83 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86_64),y)
84 HOST_CONFIGURE_ARGS+= --with-platform=efi
85 GRUB_ARCH= x86_64-efi
86 GRUB_IMAGE= efi-part/EFI/BOOT/bootx64.efi
87 GRUB_DIR= efi-part/EFI/BOOT
88 GRUB_PREFIX= /EFI/BOOT
89 GRUB_TARGET= x86_64
90 GRUB_PLATFORM= efi
91 GRUB_MODULES= boot linux ext2 fat part_msdos part_gpt normal efi_gop
92 endif
94 ifeq ($(ADK_TARGET_DUAL_BOOT),y)
95 GRUB_CFG= grub-dual.cfg
96 else
97 GRUB_CFG= grub.cfg
98 endif
100 HOST_CONFIGURE_ARGS+= --enable-efiemu=no \
101 --disable-grub-mkfont \
102 --enable-device-mapper=no \
103 --enable-libzfs=no \
104 --disable-rpath \
105 --disable-werror
106 CONFIGURE_ARGS+= --disable-grub-mkfont \
107 --enable-efiemu=no \
108 --enable-device-mapper=no \
109 --enable-libzfs=no \
110 --disable-rpath \
111 --with-platform=$(GRUB_PLATFORM) \
112 --disable-werror
114 ifeq ($(ADK_PACKAGE_GRUB_EFI_X86)$(ADK_PACKAGE_GRUB_EFI_X86_64),y)
115 CONFIGURE_ARGS+= --with-bootdir=/boot/EFI/boot \
116 --with-grubdir=/
117 endif
119 grub-install:
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) \
125 -O $(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 \
130 $(FW_DIR)/
131 endif
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
137 else
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
142 endif
143 $(STAGING_HOST_DIR)/usr/bin/grub-mkimage \
144 -d $(WRKINST)/usr/lib/grub/$(GRUB_ARCH) \
145 -O $(GRUB_ARCH) \
146 -o $(FW_DIR)/$(GRUB_IMAGE) \
147 -p "$(GRUB_PREFIX)" \
148 $(GRUB_MODULES)
150 grub-tools-install:
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