| ############################################################# |
| # |
| # mkisofs to build to target iso9660 filesystems |
| # |
| ############################################################# |
| MKISOFS_SOURCE:=cdrtools-2.01.tar.bz2 |
| MKISOFS_CAT:=$(BZCAT) |
| MKISOFS_SITE:=ftp://ftp.berlios.de/pub/cdrecord/ |
| MKISOFS_DIR:=$(BUILD_DIR)/cdrtools-2.01 |
| MKISOFS_TARGET:=$(MKISOFS_DIR)/mkisofs/OBJ/i686-linux-cc/mkisofs |
| |
| $(DL_DIR)/$(MKISOFS_SOURCE): |
| $(call DOWNLOAD,$(MKISOFS_SITE),$(MKISOFS_SOURCE)) |
| |
| mkisofs-source: $(DL_DIR)/$(MKISOFS_SOURCE) |
| |
| $(MKISOFS_DIR)/.unpacked: $(DL_DIR)/$(MKISOFS_SOURCE) |
| $(MKISOFS_CAT) $(DL_DIR)/$(MKISOFS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - |
| toolchain/patch-kernel.sh $(MKISOFS_DIR) target/iso9660/ \*.patch |
| touch $@ |
| |
| $(MKISOFS_DIR)/.configured: $(MKISOFS_DIR)/.unpacked |
| (cd $(MKISOFS_DIR); rm -rf config.cache; \ |
| ); |
| touch $@ |
| |
| $(MKISOFS_TARGET): $(MKISOFS_DIR)/.configured |
| $(MAKE) -C $(MKISOFS_DIR) |
| touch -c $(MKISOFS_DIR)/mkisofs |
| |
| mkisofs: $(MKISOFS_TARGET) |
| |
| mkisofs-clean: |
| -$(MAKE) -C $(MKISOFS_DIR) clean |
| |
| mkisofs-dirclean: |
| rm -rf $(MKISOFS_DIR) |
| |
| |
| ############################################################# |
| # |
| # Build the iso96600 root filesystem image |
| # |
| ############################################################# |
| |
| ISO9660_TARGET_DIR=$(BUILD_DIR)/iso9660 |
| ISO9660_TARGET:=$(subst ",,$(BR2_TARGET_ROOTFS_ISO9660_OUTPUT)) |
| #") |
| ISO9660_BOOT_MENU:=$(subst ",,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU)) |
| #") |
| ISO9660_OPTS:= |
| |
| ifeq ($(BR2_TARGET_ROOTFS_ISO9660_SQUASH),y) |
| ISO9660_OPTS+=-U |
| endif |
| |
| $(ISO9660_TARGET): host-fakeroot $(LINUX_KERNEL) $(EXT2_TARGET) grub mkisofs |
| mkdir -p $(ISO9660_TARGET_DIR) |
| mkdir -p $(ISO9660_TARGET_DIR)/boot/grub |
| cp $(GRUB_DIR)/stage2/stage2_eltorito $(ISO9660_TARGET_DIR)/boot/grub/ |
| cp $(ISO9660_BOOT_MENU) $(ISO9660_TARGET_DIR)/boot/grub/menu.lst |
| 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 $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 |
| cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| # Use fakeroot so mkisofs believes the previous fakery |
| echo "$(MKISOFS_TARGET) -R -b boot/grub/stage2_eltorito -no-emul-boot " \ |
| "-boot-load-size 4 -boot-info-table -o $(ISO9660_TARGET) $(ISO9660_TARGET_DIR)" \ |
| >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| $(STAGING_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| -@rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) |
| |
| iso9660root: $(ISO9660_TARGET) |
| echo $(ISO9660_TARGET) |
| @ls -l $(ISO9660_TARGET) |
| |
| iso9660root-source: mkisofs-source |
| |
| iso9660root-clean: mkisofs-clean |
| |
| iso9660root-dirclean: mkisofs-dirclean |
| rm -rf $(ISO9660_DIR) |
| |
| ############################################################# |
| # |
| # Toplevel Makefile options |
| # |
| ############################################################# |
| ifeq ($(BR2_TARGET_ROOTFS_ISO9660),y) |
| TARGETS+=iso9660root |
| endif |