build: Restore a mechanism to build EFI-less anyboots and CDs.

This fixes the 32-bit build following the merge of multiple bootloaders
support.

Fixes #14656.
This commit is contained in:
Augustin Cavalier
2018-10-27 16:57:35 -04:00
parent b2429272f7
commit 80abc9a907
4 changed files with 20 additions and 5 deletions
+1
View File
@@ -284,6 +284,7 @@ rule KernelArchitectureSetup architecture
case x86 :
HAIKU_KERNEL_PLATFORM ?= bios_ia32 ;
HAIKU_BOOT_TARGETS += bios_ia32 pxe_ia32 ;
HAIKU_ANYBOOT_LEGACY = 1 ;
HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB
# offset in floppy image (>= sizeof(haiku_loader))
+13 -3
View File
@@ -1550,12 +1550,22 @@ rule BuildCDBootImage image : bootfloppy : bootefi : extrafiles
Depends $(image) : $(bootefi) ;
Depends $(image) : $(extrafiles) ;
BOOTIMG on $(image) = $(bootfloppy) ;
BOOTEFI on $(image) = $(bootefi) ;
BuildCDBootImage1 $(image) : $(bootfloppy) $(bootefi) $(extrafiles) ;
if $(HAIKU_ANYBOOT_LEGACY) = 1 {
BuildCDBootImageMBR $(image) : $(bootfloppy) $(extrafiles) ;
} else {
BOOTEFI on $(image) = $(bootefi) ;
BuildCDBootImageEFI $(image) : $(bootfloppy) $(bootefi) $(extrafiles) ;
}
}
actions BuildCDBootImage1
actions BuildCDBootImageMBR
{
$(RM) $(<)
mkisofs -b $(BOOTIMG) -r -J -V bootimg -o $(<) $(>[1]) $(>[2-])
}
actions BuildCDBootImageEFI
{
$(RM) $(<)
mkisofs -b $(BOOTIMG) -eltorito-alt-boot -no-emul-boot -e $(BOOTEFI) -r -J -V bootimg -o $(<) $(>[1]) $(>[2]) $(>[3-])
-1
View File
@@ -42,7 +42,6 @@ MakeLocate $(baseMBR) : $(HAIKU_OUTPUT_DIR) ;
MakeLocate $(HAIKU_ANYBOOT) : $(HAIKU_ANYBOOT_DIR) ;
if $(HAIKU_ANYBOOT_LEGACY) = 1 {
Echo "HAIKU_ANYBOOT_LEGACY defined so anyboot is MBR only" ;
BuildAnybootImage $(HAIKU_ANYBOOT) : $(baseMBR) : $(HAIKU_CD_BOOT_IMAGE)
: $(HAIKU_IMAGE_NAME) ;
} else {
+6 -1
View File
@@ -27,13 +27,18 @@ if $(TARGET_ARCH) = ppc {
SEARCH on $(chrpscript) $(hfsmaps) $(extras) = [ FDirName $(HAIKU_TOP) data boot_cd ] ;
BuildCDBootPPCImage $(HAIKU_CD_BOOT_IMAGE) : $(hfsmaps) : $(elfloader) : $(coffloader) : $(chrpscript) : $(extras) ;
} else if $(HAIKU_ANYBOOT_LEGACY) = 1 {
BuildCDBootImage $(HAIKU_CD_BOOT_IMAGE) : $(HAIKU_BOOT_FLOPPY) : : $(extras) ;
SEARCH on $(extras) = [ FDirName $(HAIKU_TOP) data boot_cd ] ;
} else {
local efiLoader = haiku_loader.efi ;
local efiPartition = esp.image ;
MakeLocate $(efiPartition) : $(HAIKU_OUTPUT_DIR) ;
BuildEfiSystemPartition $(efiPartition) : $(efiLoader) ;
BuildCDBootImage $(HAIKU_CD_BOOT_IMAGE) : $(HAIKU_BOOT_FLOPPY) : $(efiPartition) : $(extras) ;
BuildCDBootImage $(HAIKU_CD_BOOT_IMAGE) : $(HAIKU_BOOT_FLOPPY)
: $(efiPartition) : $(extras) ;
SEARCH on $(extras) = [ FDirName $(HAIKU_TOP) data boot_cd ] ;
}