X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/796a9d1091884a07817e5c140d0ff6a0b8c76235..a1fc7ca1b23c2b43b8cff25d712f376edd009094:/package/grub/Makefile diff --git a/package/grub/Makefile b/package/grub/Makefile index e828ec033..5fd2a2308 100644 --- a/package/grub/Makefile +++ b/package/grub/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2008 OpenWrt.org +# Copyright (C) 2006-2010 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -10,81 +10,83 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=grub PKG_VERSION:=0.97 -PKG_RELEASE:=1 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=ftp://alpha.gnu.org/gnu/grub PKG_MD5SUM:=cd3f3eb54446be6003156158d51f4884 -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/grub-$(PKG_VERSION) -PKG_TARGETS:=bin +PKG_BUILD_DEPENDS:= grub/host +PKG_INSTALL:=1 +include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk -export grub_cv_prog_objcopy_absolute=yes - define Package/grub - SECTION:=boot - DEPENDS:=@TARGET_x86 - CATEGORY:=Boot Loaders + SUBMENU:=Boot Loaders + CATEGORY:=Utilities + SECTION:=utils TITLE:=GRand Unified Bootloader URL:=http://www.gnu.org/software/grub/ + DEPENDS:=@TARGET_x86 endef -ifeq ($(HOST_OS),Linux) - NATIVEGRUB-i386:=1 - NATIVEGRUB-i686:=1 - NATIVEGRUB:=$(NATIVEGRUB-$(HOST_ARCH)) -endif -ifeq ($(NATIVEGRUB),) -CONFIGURE_FLAGS:= \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) -else -CONFIGURE_FLAGS:= +MY_CONFIGURE_ARGS += \ + --disable-auto-linux-mem-opt \ + --disable-hercules \ + --without-curses \ + +MY_CONFIGURE_VARS += \ + grub_cv_prog_objcopy_absolute=yes \ + +CONFIGURE_ARGS += $(MY_CONFIGURE_ARGS) + +CONFIGURE_VARS += $(MY_CONFIGURE_VARS) + +ifeq ($(HOST_OS),Darwin) + HOST_CFLAGS += $(call host-cc-option,-m32) + HOST_CFLAGS += $(call host-cc-option,-fnested-functions) endif -ifneq ($(HOST_OS),Darwin) -define Build/Configure - (cd $(PKG_BUILD_DIR); \ - LDFLAGS="-static" \ - ./configure \ - $(CONFIGURE_FLAGS) \ - --program-prefix="" \ - --program-suffix="" \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --libexecdir=/usr/lib \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --localstatedir=/var \ - --mandir=/usr/man \ - --infodir=/usr/info \ - $(DISABLE_NLS) \ - --disable-auto-linux-mem-opt \ - ) -endef +HOST_CFLAGS += $(call host-cc-option,-fno-stack-protector) +HOST_CFLAGS += $(call host-cc-option,-U_FORTIFY_SOURCE) -# -# ./configure detects whether the host compiler supports -# -fno-stack-protector but only sets STAGE2_CFLAGS accordingly -# -define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR) \ - GRUB_CFLAGS="\$$$$(STAGE2_CFLAGS)" \ - STAGE1_CFLAGS="\$$$$(STAGE2_CFLAGS)" +HOST_CONFIGURE_ARGS += $(MY_CONFIGURE_ARGS) \ + --sbindir="$(STAGING_DIR_HOST)/bin" \ + --disable-graphics \ + +HOST_CONFIGURE_VARS += $(MY_CONFIGURE_VARS) + +define Host/Configure + (cd $(HOST_BUILD_DIR); aclocal && autoconf && automake) + $(call Host/Configure/Default) endef +ifeq ($(HOST_OS),Darwin) + define Host/Compile + $(MAKE) -C $(HOST_BUILD_DIR)/lib + $(MAKE) -C $(HOST_BUILD_DIR)/stage2 libgrub.a + $(MAKE) -C $(HOST_BUILD_DIR)/grub + endef + define Host/Install + $(MAKE) -C $(HOST_BUILD_DIR)/grub install + endef +endif + define Build/InstallDev - $(MAKE) -C $(PKG_BUILD_DIR) \ - DESTDIR="$(STAGING_DIR_HOST)" \ - install - mv $(STAGING_DIR_HOST)/usr/sbin/grub $(STAGING_DIR_HOST)/bin + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/grub $(1)/usr/lib/ +endef + +define Package/grub/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/sbin + $(CP) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/ endef -endif +$(eval $(call HostBuild)) $(eval $(call BuildPackage,grub))