diff --git a/Jamfile b/Jamfile index 1ff0783d10..e9a41f273c 100644 --- a/Jamfile +++ b/Jamfile @@ -152,6 +152,7 @@ SubDir HAIKU_TOP ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ; +include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ; # Perform deferred SubIncludes. ExecuteDeferredSubIncludes ; diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index 1370bee48b..28b955309a 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -37,7 +37,11 @@ HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME) = HAIKU_FLOPPY_BOOT_IMAGE_INSTALL_TARGETS ; # boot CD image -#TODO +HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME = haiku-boot-cd-container ; +HAIKU_CONTAINER_GRIST on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) = CDBootImage ; +# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported +HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) + = HAIKU_CD_BOOT_IMAGE_INSTALL_TARGETS ; # analyze an optionally replace jam's target parameters HAIKU_ORIGINAL_JAM_TARGETS = $(JAM_TARGETS) ; diff --git a/build/jam/CDBootImage b/build/jam/CDBootImage new file mode 100644 index 0000000000..381434b976 --- /dev/null +++ b/build/jam/CDBootImage @@ -0,0 +1,24 @@ +# This file defines what ends up in the CD boot image and it executes the +# rules building the image. + +#HAIKU_BOOT_FLOPPY = haiku-boot-floppy.image ; +#MakeLocate $(HAIKU_BOOT_FLOPPY) : $(HAIKU_OUTPUT_DIR) ; + +# CD image target +HAIKU_CD_BOOT_IMAGE = haiku-boot-cd.iso ; +MakeLocate $(HAIKU_CD_BOOT_IMAGE) : $(HAIKU_OUTPUT_DIR) ; + +# the pseudo target all archive contents is attached to +NotFile $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) ; + +# extra files to put on the boot iso +local extras = README.html ; +SEARCH on $(extras) = [ FDirName $(HAIKU_TOP) data boot_cd ] ; + +BuildCDBootImage $(HAIKU_CD_BOOT_IMAGE) : $(HAIKU_BOOT_FLOPPY) : $(extras) ; + + +NotFile haiku-boot-cd ; +Depends haiku-boot-cd : $(HAIKU_CD_BOOT_IMAGE) ; + + diff --git a/build/jam/ImageRules b/build/jam/ImageRules index d9f2fc58a0..10504b952b 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -869,3 +869,21 @@ actions BuildFloppyBootImage1 } +#pragma mark - CD Boot Image rules + +rule BuildCDBootImage image : bootfloppy : extrafiles +{ + Depends $(image) : $(bootfloppy) ; + Depends $(image) : $(extrafiles) ; + BOOTIMG on $(image) = $(bootfloppy) ; + + BuildCDBootImage1 $(image) : $(bootfloppy) $(extrafiles) ; +} + +actions BuildCDBootImage1 +{ + rm -f $(<) + mkisofs -b $(BOOTIMG) -r -J -V bootimg -o $(<) $(>[1]) $(>[2-]) +} + +