grub2: make some change to add efi platform support
[openwrt/staging/wigyori.git] / package / boot / grub2 / Makefile
1 #
2 # Copyright (C) 2006-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=grub
12 PKG_CPE_ID:=cpe:/a:gnu:grub2
13 PKG_VERSION:=2.04
14 PKG_RELEASE:=2
15
16 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
17 PKG_SOURCE_URL:=@GNU/grub
18 PKG_HASH:=e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d
19
20 HOST_BUILD_PARALLEL:=1
21 PKG_BUILD_DEPENDS:=grub2/host
22
23 PKG_SSP:=0
24
25 PKG_FLAGS:=nonshared
26
27 include $(INCLUDE_DIR)/host-build.mk
28 include $(INCLUDE_DIR)/package.mk
29
30 define Package/grub2/Default
31 CATEGORY:=Boot Loaders
32 SECTION:=boot
33 TITLE:=GRand Unified Bootloader ($(1))
34 URL:=http://www.gnu.org/software/grub/
35 DEPENDS:=@TARGET_x86
36 VARIANT:=$(1)
37 endef
38
39 Package/grub2=$(call Package/grub2/Default,pc)
40 Package/grub2-efi=$(call Package/grub2/Default,efi)
41
42 define Package/grub2-editenv
43 CATEGORY:=Utilities
44 SECTION:=utils
45 SUBMENU:=Boot Loaders
46 TITLE:=Grub2 Environment editor
47 URL:=http://www.gnu.org/software/grub/
48 DEPENDS:=@TARGET_x86
49 VARIANT:=pc
50 endef
51
52 define Package/grub2-editenv/description
53 Edit grub2 environment files.
54 endef
55
56 HOST_BUILD_PREFIX := $(STAGING_DIR_HOST)
57
58 CONFIGURE_VARS += \
59 grub_build_mkfont_excuse="don't want fonts"
60
61 CONFIGURE_ARGS += \
62 --target=$(REAL_GNU_TARGET_NAME) \
63 --disable-werror \
64 --disable-nls \
65 --disable-device-mapper \
66 --disable-libzfs \
67 --disable-grub-mkfont \
68 --with-platform=$(BUILD_VARIANT)
69
70 HOST_CONFIGURE_VARS += \
71 grub_build_mkfont_excuse="don't want fonts"
72
73 HOST_CONFIGURE_ARGS += \
74 --disable-grub-mkfont \
75 --target=$(REAL_GNU_TARGET_NAME) \
76 --sbindir="$(STAGING_DIR_HOST)/bin" \
77 --disable-werror \
78 --disable-libzfs \
79 --disable-nls \
80 --with-platform=none
81
82 HOST_MAKE_FLAGS += \
83 TARGET_RANLIB=$(TARGET_RANLIB) \
84 LIBLZMA=$(STAGING_DIR_HOST)/lib/liblzma.a
85
86 TARGET_CFLAGS :=
87
88 define Host/Configure
89 $(SED) 's,(RANLIB),(TARGET_RANLIB),' $(HOST_BUILD_DIR)/grub-core/Makefile.in
90 $(Host/Configure/Default)
91 endef
92
93 define Package/grub2/install
94 $(INSTALL_DIR) $(1)/usr/sbin
95 $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-bios-setup $(1)/usr/sbin/
96 $(INSTALL_DIR) $(STAGING_DIR_IMAGE)/grub2
97 $(CP) $(PKG_BUILD_DIR)/grub-core/boot.img $(STAGING_DIR_IMAGE)/grub2/
98 $(CP) $(PKG_BUILD_DIR)/grub-core/cdboot.img $(STAGING_DIR_IMAGE)/grub2/
99 sed 's#msdos1#gpt1#g' ./files/grub-early.cfg >$(PKG_BUILD_DIR)/grub-early.cfg
100 $(STAGING_DIR_HOST)/bin/grub-mkimage \
101 -d $(PKG_BUILD_DIR)/grub-core \
102 -p /boot/grub \
103 -O i386-pc \
104 -c $(PKG_BUILD_DIR)/grub-early.cfg \
105 -o $(STAGING_DIR_IMAGE)/grub2/gpt-core.img \
106 at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot serial vga
107 $(STAGING_DIR_HOST)/bin/grub-mkimage \
108 -d $(PKG_BUILD_DIR)/grub-core \
109 -p /boot/grub \
110 -O i386-pc \
111 -c ./files/grub-early.cfg \
112 -o $(STAGING_DIR_IMAGE)/grub2/generic-core.img \
113 at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
114 $(STAGING_DIR_HOST)/bin/grub-mkimage \
115 -d $(PKG_BUILD_DIR)/grub-core \
116 -p /boot/grub \
117 -O i386-pc \
118 -c ./files/grub-early.cfg \
119 -o $(STAGING_DIR_IMAGE)/grub2/eltorito.img \
120 at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial test vga
121 $(STAGING_DIR_HOST)/bin/grub-mkimage \
122 -d $(PKG_BUILD_DIR)/grub-core \
123 -p /boot/grub \
124 -O i386-pc \
125 -c ./files/grub-early.cfg \
126 -o $(STAGING_DIR_IMAGE)/grub2/legacy-core.img \
127 biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
128 endef
129
130 define Package/grub2-efi/install
131 sed 's#msdos1#gpt1#g' ./files/grub-early.cfg >$(PKG_BUILD_DIR)/grub-early.cfg
132 $(STAGING_DIR_HOST)/bin/grub-mkimage \
133 -d $(PKG_BUILD_DIR)/grub-core \
134 -p /boot/grub \
135 -O $(CONFIG_ARCH)-efi \
136 -c $(PKG_BUILD_DIR)/grub-early.cfg \
137 -o $(STAGING_DIR_IMAGE)/grub2/boot$(if $(CONFIG_x86_64),x64,ia32).efi \
138 at_keyboard boot chain configfile fat linux ls part_gpt reboot serial efi_gop efi_uga
139 $(STAGING_DIR_HOST)/bin/grub-mkimage \
140 -d $(PKG_BUILD_DIR)/grub-core \
141 -p /boot/grub \
142 -O $(CONFIG_ARCH)-efi \
143 -c ./files/grub-early.cfg \
144 -o $(STAGING_DIR_IMAGE)/grub2/iso-boot$(if $(CONFIG_x86_64),x64,ia32).efi \
145 at_keyboard boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial test efi_gop efi_uga
146 endef
147
148 define Package/grub2-editenv/install
149 $(INSTALL_DIR) $(1)/usr/sbin
150 $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-editenv $(1)/usr/sbin/
151 endef
152
153 $(eval $(call HostBuild))
154 $(eval $(call BuildPackage,grub2))
155 $(eval $(call BuildPackage,grub2-efi))
156 $(eval $(call BuildPackage,grub2-editenv))