mac80211 ozonet updates
[openwrt/.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:=3
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_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-grub-mkfont \
69         --with-platform=$(BUILD_VARIANT)
70
71 HOST_CONFIGURE_VARS += \
72         grub_build_mkfont_excuse="don't want fonts"
73
74 HOST_CONFIGURE_ARGS += \
75         --disable-grub-mkfont \
76         --target=$(REAL_GNU_TARGET_NAME) \
77         --sbindir="$(STAGING_DIR_HOST)/bin" \
78         --disable-werror \
79         --disable-libzfs \
80         --disable-nls \
81         --with-platform=none
82
83 HOST_MAKE_FLAGS += \
84         TARGET_RANLIB=$(TARGET_RANLIB) \
85         LIBLZMA=$(STAGING_DIR_HOST)/lib/liblzma.a
86
87 TARGET_CFLAGS := $(filter-out -fno-plt,$(TARGET_CFLAGS))
88
89 define Host/Configure
90         $(SED) 's,(RANLIB),(TARGET_RANLIB),' $(HOST_BUILD_DIR)/grub-core/Makefile.in
91         $(Host/Configure/Default)
92 endef
93
94 define Package/grub2/install
95         $(INSTALL_DIR) $(1)/usr/sbin
96         $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-bios-setup $(1)/usr/sbin/
97         $(INSTALL_DIR) $(STAGING_DIR_IMAGE)/grub2
98         $(CP) $(PKG_BUILD_DIR)/grub-core/boot.img $(STAGING_DIR_IMAGE)/grub2/
99         $(CP) $(PKG_BUILD_DIR)/grub-core/cdboot.img $(STAGING_DIR_IMAGE)/grub2/
100         sed 's#msdos1#gpt1#g' ./files/grub-early.cfg >$(PKG_BUILD_DIR)/grub-early.cfg
101         $(STAGING_DIR_HOST)/bin/grub-mkimage \
102                 -d $(PKG_BUILD_DIR)/grub-core \
103                 -p /boot/grub \
104                 -O i386-pc \
105                 -c $(PKG_BUILD_DIR)/grub-early.cfg \
106                 -o $(STAGING_DIR_IMAGE)/grub2/gpt-core.img \
107                 at_keyboard biosdisk boot chain configfile fat linux ls part_gpt reboot serial vga
108         $(STAGING_DIR_HOST)/bin/grub-mkimage \
109                 -d $(PKG_BUILD_DIR)/grub-core \
110                 -p /boot/grub \
111                 -O i386-pc \
112                 -c ./files/grub-early.cfg \
113                 -o $(STAGING_DIR_IMAGE)/grub2/generic-core.img \
114                 at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
115         $(STAGING_DIR_HOST)/bin/grub-mkimage \
116                 -d $(PKG_BUILD_DIR)/grub-core \
117                 -p /boot/grub \
118                 -O i386-pc \
119                 -c ./files/grub-early.cfg \
120                 -o $(STAGING_DIR_IMAGE)/grub2/eltorito.img \
121                 at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial test vga
122         $(STAGING_DIR_HOST)/bin/grub-mkimage \
123                 -d $(PKG_BUILD_DIR)/grub-core \
124                 -p /boot/grub \
125                 -O i386-pc \
126                 -c ./files/grub-early.cfg \
127                 -o $(STAGING_DIR_IMAGE)/grub2/legacy-core.img \
128                 biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
129 endef
130
131 define Package/grub2-efi/install
132         sed 's#msdos1#gpt1#g' ./files/grub-early.cfg >$(PKG_BUILD_DIR)/grub-early.cfg
133         $(STAGING_DIR_HOST)/bin/grub-mkimage \
134                 -d $(PKG_BUILD_DIR)/grub-core \
135                 -p /boot/grub \
136                 -O $(CONFIG_ARCH)-efi \
137                 -c $(PKG_BUILD_DIR)/grub-early.cfg \
138                 -o $(STAGING_DIR_IMAGE)/grub2/boot$(if $(CONFIG_x86_64),x64,ia32).efi \
139                 at_keyboard boot chain configfile fat linux ls part_gpt reboot serial efi_gop efi_uga
140         $(STAGING_DIR_HOST)/bin/grub-mkimage \
141                 -d $(PKG_BUILD_DIR)/grub-core \
142                 -p /boot/grub \
143                 -O $(CONFIG_ARCH)-efi \
144                 -c ./files/grub-early.cfg \
145                 -o $(STAGING_DIR_IMAGE)/grub2/iso-boot$(if $(CONFIG_x86_64),x64,ia32).efi \
146                 at_keyboard boot chain configfile fat iso9660 linux ls part_msdos part_gpt reboot serial test efi_gop efi_uga
147 endef
148
149 define Package/grub2-editenv/install
150         $(INSTALL_DIR) $(1)/usr/sbin
151         $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-editenv $(1)/usr/sbin/
152 endef
153
154 $(eval $(call HostBuild))
155 $(eval $(call BuildPackage,grub2))
156 $(eval $(call BuildPackage,grub2-efi))
157 $(eval $(call BuildPackage,grub2-editenv))