diff options
author | nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-05-02 17:32:25 +0000 |
---|---|---|
committer | nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-05-02 17:32:25 +0000 |
commit | bb43ad8e7d1f03015393d3d8d025d6c5b10c3ede (patch) | |
tree | 004685feb58bf2288f0b366607bed59d98588ecb /package | |
parent | cb2f53e0b7314fbf6aeee8176c9fc3fe94893e42 (diff) |
package/grub: build a host grub and a target grub (#7269)
- use the host grub binary for grub install, but with target stage files
- disable SSP (-fno-stack-protector) & Compile Time Buffer Checks (-U_FORTIFY_SOURCE) if appropriate
- create a target grub package
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21305 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r-- | package/grub/Makefile | 91 |
1 files changed, 41 insertions, 50 deletions
diff --git a/package/grub/Makefile b/package/grub/Makefile index 20232f495..e40177080 100644 --- a/package/grub/Makefile +++ b/package/grub/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2009 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,71 +10,62 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=grub PKG_VERSION:=0.97 -PKG_RELEASE:=2 +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 -CONFIGURE_FLAGS:= - -ifneq ($(HOST_OS),Darwin) -define Build/Configure - (cd $(PKG_BUILD_DIR); \ - CFLAGS="-march=i486 -m32" \ - LDFLAGS="-static" \ - ./configure \ - $(CONFIGURE_FLAGS) \ - --build=i386-linux-gnu \ - --host=i386-linux-gnu \ - --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 -# -# ./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)" -endef +MY_CONFIGURE_ARGS += \ + --disable-auto-linux-mem-opt \ + --disable-graphics \ + --disable-hercules \ + --without-curses \ + +MY_CONFIGURE_VARS += \ + grub_cv_prog_objcopy_absolute=yes \ + +CONFIGURE_ARGS += $(MY_CONFIGURE_ARGS) + +CONFIGURE_VARS += $(MY_CONFIGURE_VARS) + +HOST_CFLAGS += $(call host-cc-option,-fno-stack-protector) +HOST_CFLAGS += $(call host-cc-option,-U_FORTIFY_SOURCE) + +HOST_CONFIGURE_ARGS += $(MY_CONFIGURE_ARGS) \ + --sbindir="$(STAGING_DIR_HOST)/bin" \ + +HOST_CONFIGURE_VARS += $(MY_CONFIGURE_VARS) 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)) |