iso9660: rework in a similar way to ROOTFS_TARGET
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 10 Mar 2010 21:12:24 +0000 (22:12 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 9 Apr 2010 09:04:35 +0000 (11:04 +0200)
Unfortunately, it cannot use the ROOTFS_TARGET infrastructure, due to
the specifities of the iso9660 build process.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
target/iso9660/Config.in
target/iso9660/iso9660.mk

index 40c93b3f887c8f936ee55807ad9668cb003f85a8..ceee52ff9dadca60c0b23f26b86e2b369eea77a0 100644 (file)
@@ -7,11 +7,6 @@ config BR2_TARGET_ROOTFS_ISO9660
        help
          Build a bootable iso9660 image
 
-config BR2_TARGET_ROOTFS_ISO9660_OUTPUT
-       string "Output File"
-       depends on BR2_TARGET_ROOTFS_ISO9660
-       default "$(IMAGE).iso"
-
 config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
        string "Boot menu.lst file"
        depends on BR2_TARGET_ROOTFS_ISO9660
index a198c17c1dccee58b619d2dd8c2f91a6179a8e2c..66e2de20b449da92f341d5e19f69a0f302c18d67 100644 (file)
@@ -2,10 +2,12 @@
 #
 # Build the iso96600 root filesystem image
 #
+# Cannot be converted to the ROOTFS_TARGET infrastructure, because of
+# the temporary construction in ISO9660_TARGET_DIR.
+#
 #############################################################
 
 ISO9660_TARGET_DIR=$(BUILD_DIR)/iso9660
-ISO9660_TARGET:=$(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_OUTPUT))
 ISO9660_BOOT_MENU:=$(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU))
 ISO9660_OPTS:=
 
@@ -13,7 +15,8 @@ ifeq ($(BR2_TARGET_ROOTFS_ISO9660_SQUASH),y)
 ISO9660_OPTS+=-U
 endif
 
-$(ISO9660_TARGET): host-fakeroot host-cdrkit $(LINUX_KERNEL) $(EXT2_TARGET) grub
+$(BINARIES_DIR)/rootfs.iso9660: host-cdrkit host-fakeroot $(LINUX_KERNEL) $(BINARIES_DIR)/rootfs.ext2 grub
+       @$(call MESSAGE,"Generating root filesystem image rootfs.iso9660")
        mkdir -p $(ISO9660_TARGET_DIR)
        mkdir -p $(ISO9660_TARGET_DIR)/boot/grub
        cp $(GRUB_DIR)/stage2/stage2_eltorito $(ISO9660_TARGET_DIR)/boot/grub/
@@ -21,21 +24,20 @@ $(ISO9660_TARGET): host-fakeroot host-cdrkit $(LINUX_KERNEL) $(EXT2_TARGET) grub
        cp $(LINUX_KERNEL) $(ISO9660_TARGET_DIR)/kernel
        cp $(EXT2_TARGET) $(ISO9660_TARGET_DIR)/initrd
        # Use fakeroot to pretend all target binaries are owned by root
-       rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
+       rm -f $(FAKEROOT_SCRIPT)
        touch $(BUILD_DIR)/.fakeroot.00000
-       cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
-       echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
+       cat $(BUILD_DIR)/.fakeroot* > $(FAKEROOT_SCRIPT)
+       echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
        # Use fakeroot so mkisofs believes the previous fakery
        echo "$(HOST_DIR)/usr/bin/genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot " \
-               "-boot-load-size 4 -boot-info-table -o $(ISO9660_TARGET) $(ISO9660_TARGET_DIR)" \
-               >> $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
-       chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
-       $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
-       -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
+               "-boot-load-size 4 -boot-info-table -o $@ $(ISO9660_TARGET_DIR)" \
+               >> $(FAKEROOT_SCRIPT)
+       chmod a+x $(FAKEROOT_SCRIPT)
+       $(HOST_DIR)/usr/bin/fakeroot -- $(FAKEROOT_SCRIPT)
+       -@rm -f $(FAKEROOT_SCRIPT)
+       -@rm -rf $(ISO9660_TARGET_DIR)
 
-iso9660root: $(ISO9660_TARGET)
-       echo $(ISO9660_TARGET)
-       @ls -l $(ISO9660_TARGET)
+iso9660-root: $(BINARIES_DIR)/rootfs.iso9660
 
 #############################################################
 #
@@ -43,5 +45,5 @@ iso9660root: $(ISO9660_TARGET)
 #
 #############################################################
 ifeq ($(BR2_TARGET_ROOTFS_ISO9660),y)
-TARGETS+=iso9660root
+TARGETS+=iso9660-root
 endif