2 # Copyright (C) 2006-2010 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/kernel.mk
15 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
16 PKG_SOURCE_URL
:=ftp
://alpha.gnu.org
/gnu
/grub
17 PKG_MD5SUM
:=cd3f3eb54446be6003156158d51f4884
19 PKG_BUILD_DEPENDS
:= grub
/host
22 include $(INCLUDE_DIR
)/host-build.mk
23 include $(INCLUDE_DIR
)/package.mk
29 TITLE
:=GRand Unified Bootloader
30 URL
:=http
://www.gnu.org
/software
/grub
/
35 MY_CONFIGURE_ARGS
+= \
36 --disable-auto-linux-mem-opt \
40 MY_CONFIGURE_VARS
+= \
41 grub_cv_prog_objcopy_absolute
=yes \
43 CONFIGURE_ARGS
+= $(MY_CONFIGURE_ARGS
)
45 CONFIGURE_VARS
+= $(MY_CONFIGURE_VARS
)
47 ifeq ($(HOST_OS
),Darwin
)
48 HOST_CFLAGS
+= $(call host-cc-option
,-m32
)
49 HOST_CFLAGS
+= $(call host-cc-option
,-fnested-functions
)
52 HOST_CFLAGS
+= $(call host-cc-option
,-fno-stack-protector
)
53 HOST_CFLAGS
+= $(call host-cc-option
,-U_FORTIFY_SOURCE
)
55 HOST_CONFIGURE_ARGS
+= $(MY_CONFIGURE_ARGS
) \
56 --sbindir
="$(STAGING_DIR_HOST)/bin" \
59 HOST_CONFIGURE_VARS
+= $(MY_CONFIGURE_VARS
)
62 (cd
$(HOST_BUILD_DIR
); aclocal
&& autoconf
&& automake
)
63 $(call Host
/Configure
/Default
)
66 ifeq ($(HOST_OS
),Darwin
)
68 $(MAKE
) -C
$(HOST_BUILD_DIR
)/lib
69 $(MAKE
) -C
$(HOST_BUILD_DIR
)/stage2 libgrub.a
70 $(MAKE
) -C
$(HOST_BUILD_DIR
)/grub
73 $(MAKE
) -C
$(HOST_BUILD_DIR
)/grub
install
77 define Build
/InstallDev
78 $(INSTALL_DIR
) $(1)/usr
/lib
79 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/grub
$(1)/usr
/lib
/
82 define Package
/grub
/install
83 $(INSTALL_DIR
) $(1)/usr
/bin
84 $(CP
) $(PKG_INSTALL_DIR
)/usr
/bin
/* $(1)/usr
/bin
/
85 $(INSTALL_DIR
) $(1)/usr
/lib
86 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/* $(1)/usr
/lib
/
87 $(INSTALL_DIR
) $(1)/usr
/sbin
88 $(CP
) $(PKG_INSTALL_DIR
)/usr
/sbin
/* $(1)/usr
/sbin
/
91 ifeq ($(HOST_ARCH
),x86_64
)
92 define Require
/working-gcc-m32
93 echo
'int main(int argc, char **argv) { return 0; }' | \
94 gcc
-x c
-o
$(TMP_DIR
)/a.out
- -m32
-lc
98 $(eval
$(call Require
,working-gcc-m32
, \
99 Please
install 32 bits development files.
(gcc-multilib on Debian
/Ubuntu
, gcc.i686 and libgcc.i686 on CentOS
/Fedora
/RHEL
) \
102 $(eval
$(call HostBuild
))
103 $(eval
$(call BuildPackage
,grub
))