CONFIGURE_FLAGS:=
 endif
 
+ifneq ($(HOST_OS),Darwin)
 define Build/Configure
        (cd $(PKG_BUILD_DIR); \
                LDFLAGS="-static" \
                install
        mv $(STAGING_DIR_HOST)/usr/sbin/grub $(STAGING_DIR_HOST)/bin
 endef
+endif
 
 $(eval $(call BuildPackage,grub))
 
 
 
 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
        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) \
                $(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)
 
 
 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)