summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-06-09 00:21:43 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-06-14 23:21:27 +0200
commita399f5ebbe990899c51beea95b1764047d435d22 (patch)
tree21f931e2d0dd3cc5248a0e809042112f69e30173 /fs
parent1c5a097b7e044170d040b6cd582a80c93c90f1c9 (diff)
fs/iso9660: introduce bootloader choice
In preparation to the introduction for the support of other bootloaders than Grub, this commit adds a "choice ... endchoice" block with just the Grub option, and adds some conditionals in the iso9660.mk code for the Grub specific parts. Of course, for now those conditionals are a bit useless with just this commit, but they become useful with the followup commits. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Diffstat (limited to 'fs')
-rw-r--r--fs/iso9660/Config.in14
-rw-r--r--fs/iso9660/iso9660.mk20
2 files changed, 26 insertions, 8 deletions
diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
index e300fdb45..f5e5f3234 100644
--- a/fs/iso9660/Config.in
+++ b/fs/iso9660/Config.in
@@ -4,8 +4,6 @@ config BR2_TARGET_ROOTFS_ISO9660
depends on BR2_LINUX_KERNEL
select BR2_LINUX_KERNEL_INSTALL_TARGET \
if (!BR2_TARGET_ROOTFS_ISO9660_INITRD && !BR2_TARGET_ROOTFS_INITRAMFS)
- select BR2_TARGET_GRUB
- select BR2_TARGET_GRUB_FS_ISO9660
help
Build a bootable ISO9660 image. By default, the root
filesystem is directly packed as the ISO9660 filesystem,
@@ -22,9 +20,19 @@ config BR2_TARGET_ROOTFS_ISO9660
if BR2_TARGET_ROOTFS_ISO9660
+choice
+ prompt "Bootloader"
+
+config BR2_TARGET_ROOTFS_ISO9660_GRUB
+ bool "grub"
+ select BR2_TARGET_GRUB
+ select BR2_TARGET_GRUB_FS_ISO9660
+
+endchoice
+
config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
string "Boot menu.lst file"
- default "fs/iso9660/menu.lst"
+ default "fs/iso9660/menu.lst" if BR2_TARGET_ROOTFS_ISO9660_GRUB
help
Use this option to provide a custom Grub menu.lst file. Note
that the strings __KERNEL_PATH__ and __INITRD_PATH__ will
diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
index 2e695b0ca..6a1b214b0 100644
--- a/fs/iso9660/iso9660.mk
+++ b/fs/iso9660/iso9660.mk
@@ -24,7 +24,7 @@
ROOTFS_ISO9660_BOOT_MENU = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU))
-ROOTFS_ISO9660_DEPENDENCIES = grub host-cdrkit host-fakeroot linux
+ROOTFS_ISO9660_DEPENDENCIES = host-cdrkit host-fakeroot linux
ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
ROOTFS_ISO9660_USE_INITRD = YES
@@ -44,28 +44,36 @@ else
ROOTFS_ISO9660_TARGET_DIR = $(TARGET_DIR)
endif
+ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB),y)
+ROOTFS_ISO9660_DEPENDENCIES += grub
ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \
$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/menu.lst
ROOTFS_ISO9660_BOOT_IMAGE = boot/grub/stage2_eltorito
-
-define ROOTFS_ISO9660_PREPARATION
+define ROOTFS_ISO9660_INSTALL_BOOTLOADER
$(INSTALL) -D -m 0644 $(GRUB_DIR)/stage2/stage2_eltorito \
$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/stage2_eltorito
+endef
+endif
+
+define ROOTFS_ISO9660_PREPARATION
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_BOOT_MENU) \
$(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
$(SED) "s%__KERNEL_PATH__%/boot/$(LINUX_IMAGE_NAME)%" \
$(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
+ $(ROOTFS_ISO9660_INSTALL_BOOTLOADER)
endef
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_PREPARATION
-# Splash screen disabling
+# Grub splash screen disabling
+ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB),y)
ifeq ($(BR2_TARGET_GRUB_SPLASH),)
define ROOTFS_ISO9660_DISABLE_SPLASHSCREEN
$(SED) '/^splashimage/d' $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
endef
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_DISABLE_SPLASHSCREEN
endif
+endif
define ROOTFS_ISO9660_DISABLE_EXTERNAL_INITRD
$(SED) '/__INITRD_PATH__/d' $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
@@ -73,7 +81,8 @@ endef
ifeq ($(ROOTFS_ISO9660_USE_INITRD),YES)
-# Copy splashscreen to temporary filesystem
+# Copy Grub splashscreen to temporary filesystem
+ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB),y)
ifeq ($(BR2_TARGET_GRUB_SPLASH),y)
define ROOTFS_ISO9660_INSTALL_SPLASHSCREEN
$(INSTALL) -D -m 0644 $(TARGET_DIR)/boot/grub/splash.xpm.gz \
@@ -81,6 +90,7 @@ define ROOTFS_ISO9660_INSTALL_SPLASHSCREEN
endef
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_INSTALL_SPLASHSCREEN
endif
+endif
# Copy the kernel to temporary filesystem
define ROOTFS_ISO9660_COPY_KERNEL