summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/grub/Makefile2
-rw-r--r--target/linux/x86/image/Makefile8
-rwxr-xr-xtarget/linux/x86/image/gen_image.sh7
3 files changed, 13 insertions, 4 deletions
diff --git a/package/grub/Makefile b/package/grub/Makefile
index 7dfd1429d2..434af2bc9b 100644
--- a/package/grub/Makefile
+++ b/package/grub/Makefile
@@ -45,6 +45,7 @@ else
CONFIGURE_FLAGS:=
endif
+ifneq ($(HOST_OS),Darwin)
define Build/Configure
(cd $(PKG_BUILD_DIR); \
LDFLAGS="-static" \
@@ -83,5 +84,6 @@ define Build/InstallDev
install
mv $(STAGING_DIR_HOST)/usr/sbin/grub $(STAGING_DIR_HOST)/bin
endef
+endif
$(eval $(call BuildPackage,grub))
diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
index 6649670df6..d707d2f435 100644
--- a/target/linux/x86/image/Makefile
+++ b/target/linux/x86/image/Makefile
@@ -14,6 +14,7 @@ ROOTPART=$(strip $(subst ",, $(CONFIG_X86_GRUB_ROOTPART)))
ifeq ($(CONFIG_X86_GRUB_IMAGES),y)
+ifneq ($(HOST_OS),Darwin)
define Image/cmdline/squashfs
block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs init=/etc/preinit
endef
@@ -44,9 +45,7 @@ ifeq ($(CONFIG_X86_GRUB_IMAGES),y)
PADDING="$(CONFIG_X86_GRUB_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image.sh $(BIN_DIR)/openwrt-$(BOARD)-$(1).image $(CONFIG_X86_GRUB_KERNELPART) $(KDIR)/root.grub $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1)
$(call Image/Build/grub/$(1))
endef
-endif
-ifeq ($(CONFIG_X86_GRUB_IMAGES),y)
define Image/Prepare/grub
# for the image builder
$(CP) \
@@ -55,6 +54,11 @@ ifeq ($(CONFIG_X86_GRUB_IMAGES),y)
$(STAGING_DIR_HOST)/usr/lib/grub/i386-pc/e2fs_stage1_5 \
$(KDIR)/
endef
+else
+ define Image/Build/grub
+ PADDING="$(CONFIG_X86_GRUB_IMAGES_PAD)" PATH="$(TARGET_PATH)" NOGRUB=1 ./gen_image.sh $(BIN_DIR)/openwrt-$(BOARD)-$(1).image $(CONFIG_X86_GRUB_KERNELPART) "" $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1)
+ endef
+endif
endif
ifeq ($(CONFIG_X86_VDI_IMAGES),y)
diff --git a/target/linux/x86/image/gen_image.sh b/target/linux/x86/image/gen_image.sh
index d48e3720dc..5d4c0dd34c 100755
--- a/target/linux/x86/image/gen_image.sh
+++ b/target/linux/x86/image/gen_image.sh
@@ -28,10 +28,13 @@ ROOTFSSIZE="$(($4 / 512))"
BLOCKS="$((($KERNELSIZE / 2) - 1))"
-genext2fs -d "$KERNELDIR" -b "$BLOCKS" "$OUTPUT.kernel"
-dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc
[ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc count="$ROOTFSSIZE"
dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc
+
+[ -n "$NOGRUB" ] && exit 0
+
+genext2fs -d "$KERNELDIR" -b "$BLOCKS" "$OUTPUT.kernel"
+dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc
#rm -f "$OUTPUT.kernel"
which chpax >/dev/null && chpax -zp $(which grub)