From 9ed64004cc51a220be8c9d1860aab494d56db063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sun, 2 Mar 2008 04:38:29 +0000 Subject: [PATCH] Rules and targets to build a boot CD iso... use: jam haiku-boot-cd git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24201 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- Jamfile | 1 + build/jam/BuildSetup | 6 +++++- build/jam/CDBootImage | 24 ++++++++++++++++++++++++ build/jam/ImageRules | 18 ++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 build/jam/CDBootImage 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-]) +} + +