X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/bb43ad8e7d1f03015393d3d8d025d6c5b10c3ede..4eddfed4b3d2c5afc0dd10662ad7f32808804329:/package/grub/Makefile?ds=inline diff --git a/package/grub/Makefile b/package/grub/Makefile index e40177080..80b79f29e 100644 --- a/package/grub/Makefile +++ b/package/grub/Makefile @@ -34,7 +34,6 @@ endef MY_CONFIGURE_ARGS += \ --disable-auto-linux-mem-opt \ - --disable-graphics \ --disable-hercules \ --without-curses \ @@ -45,14 +44,44 @@ 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 + +ifeq ($(HOST_OS),FreeBSD) + ifeq ($(HOST_ARCH),amd64) + HOST_CFLAGS += $(call host-cc-option,-m32) + HOST_CFLAGS += $(call host-cc-option,-B/usr/lib32) + HOST_CFLAGS += $(call host-cc-option,-L/usr/lib32) + endif +endif + 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" \ + --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 $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/grub $(1)/usr/lib/ @@ -67,5 +96,16 @@ define Package/grub/install $(CP) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/ endef +ifeq ($(HOST_ARCH),x86_64) + define Require/working-gcc-m32 + echo 'int main(int argc, char **argv) { return 0; }' | \ + gcc -x c -o $(TMP_DIR)/a.out - -m32 -lc + endef +endif + +$(eval $(call Require,working-gcc-m32, \ + Please install 32 bit development files. (gcc-multilib on Debian/Ubuntu, gcc.i686, libgcc.i686, and glibc-devel.i686 on CentOS/Fedora/RHEL) \ +)) + $(eval $(call HostBuild)) $(eval $(call BuildPackage,grub))