x86/grub2: move grub2 image creation to package
[openwrt/openwrt.git] / package / boot / grub2 / Makefile
index 3601dd86a9789c9788e7cdd4a9d029b0a239ebf7..980a6e372a315d80aa3e6b648bef39edba6b5990 100644 (file)
@@ -9,54 +9,64 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=grub
-PKG_VERSION:=2.02~beta2
+PKG_CPE_ID:=cpe:/a:gnu:grub2
+PKG_VERSION:=2.04
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://alpha.gnu.org/gnu/grub \
-       http://gnualpha.uib.no/grub/ \
-       http://mirrors.fe.up.pt/pub/gnu-alpha/grub/ \
-       http://www.nic.funet.fi/pub/gnu/alpha/gnu/grub/
-PKG_MD5SUM:=be62932eade308a364ea4bbc91295930
+PKG_SOURCE_URL:=@GNU/grub
+PKG_HASH:=e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d
 
 HOST_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=grub2/host
 
 PKG_SSP:=0
 
+PKG_FLAGS:=nonshared
+
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/grub2
-  SUBMENU:=Boot Loaders
-  CATEGORY:=Utilities
-  SECTION:=utils
+  CATEGORY:=Boot Loaders
+  SECTION:=boot
   TITLE:=GRand Unified Bootloader
   URL:=http://www.gnu.org/software/grub/
-  DEPENDS:=@TARGET_x86||TARGET_x86_64
+  DEPENDS:=@TARGET_x86
 endef
 
 define Package/grub2-editenv
   CATEGORY:=Utilities
   SECTION:=utils
+  SUBMENU:=Boot Loaders
   TITLE:=Grub2 Environment editor
   URL:=http://www.gnu.org/software/grub/
-  DEPENDS:=@TARGET_x86||TARGET_x86_64
+  DEPENDS:=@TARGET_x86
 endef
 
 define Package/grub2-editenv/description
        Edit grub2 environment files.
 endef
 
+HOST_BUILD_PREFIX := $(STAGING_DIR_HOST)
+
+CONFIGURE_VARS += \
+       grub_build_mkfont_excuse="don't want fonts"
+
 CONFIGURE_ARGS += \
        --target=$(REAL_GNU_TARGET_NAME) \
        --disable-werror \
        --disable-nls \
        --disable-device-mapper \
        --disable-libzfs \
-       --disable-grub-mkfont
+       --disable-grub-mkfont \
+       --with-platform=none
+
+HOST_CONFIGURE_VARS += \
+       grub_build_mkfont_excuse="don't want fonts"
 
 HOST_CONFIGURE_ARGS += \
+       --disable-grub-mkfont \
        --target=$(REAL_GNU_TARGET_NAME) \
        --sbindir="$(STAGING_DIR_HOST)/bin" \
        --disable-werror \
@@ -72,6 +82,42 @@ define Host/Configure
        $(Host/Configure/Default)
 endef
 
+define Host/Install
+       $(call Host/Install/Default)
+
+       $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/grub/grub2-generic
+       $(STAGING_DIR_HOST)/bin/grub-mkimage \
+               -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \
+               -p /boot/grub \
+               -O i386-pc \
+               -c ./files/grub-early.cfg \
+               -o $(STAGING_DIR_HOST)/lib/grub/grub2-generic/core.img \
+               at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
+
+       $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/grub/grub2-iso
+       $(STAGING_DIR_HOST)/bin/grub-mkimage \
+               -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \
+               -p /boot/grub \
+               -O i386-pc \
+               -c ./files/grub-early.cfg \
+               -o $(STAGING_DIR_HOST)/lib/grub/grub2-iso/eltorito.img \
+               at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial vga
+
+       $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/grub/grub2-legacy
+       $(STAGING_DIR_HOST)/bin/grub-mkimage \
+               -d $(STAGING_DIR_HOST)/lib/grub/i386-pc \
+               -p /boot/grub \
+               -O i386-pc \
+               -c ./files/grub-early.cfg \
+               -o $(STAGING_DIR_HOST)/lib/grub/grub2-legacy/core.img \
+               biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
+endef
+
+define Package/grub2/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-bios-setup $(1)/usr/sbin/
+endef
+
 define Package/grub2-editenv/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-editenv $(1)/usr/sbin/