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