SubDir HAIKU_TOP src system boot loader ; SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ; SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ; SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ; SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ; UsePrivateKernelHeaders ; UsePrivateHeaders [ FDirName kernel disk_device_manager ] ; UsePrivateHeaders [ FDirName kernel util ] ; UsePrivateHeaders shared storage ; local defines = $(DEFINES) ; local platform ; for platform in [ MultiBootSubDirSetup ] { on $(platform) { { DEFINES = $(defines) ; DEFINES += _BOOT_MODE BOOT_ARCH=\\\"$(TARGET_KERNEL_ARCH_DIR)\\\" KMESSAGE_CONTAINER_ONLY BOOT_SUPPORT_PARTITION_INTEL BOOT_SUPPORT_FILE_SYSTEM_BFS BOOT_SUPPORT_FILE_SYSTEM_TARFS #BOOT_SUPPORT_FILE_MAP_DISK BOOT_SUPPORT_FILE_SYSTEM_FAT ; if $(TARGET_BOOT_PLATFORM) = efi { DEFINES += _BOOT_PLATFORM_EFI BOOT_SUPPORT_PARTITION_EFI ; } # Add architecture specific partition/file system modules switch $(TARGET_KERNEL_ARCH_DIR) { case "ppc" : { DEFINES += BOOT_SUPPORT_ELF32 #How to deal with PPC970 ? BOOT_SUPPORT_PARTITION_AMIGA BOOT_SUPPORT_PARTITION_APPLE BOOT_SUPPORT_FILE_SYSTEM_AMIGA_FFS ; } case "x86" : { DEFINES += ALTERNATE_BOOT_ARCH=\\\"x86_64\\\" BOOT_SUPPORT_PARTITION_EFI #BOOT_SUPPORT_FILE_SYSTEM_FAT ; if $(TARGET_BOOT_PLATFORM) != efi { DEFINES += _BOOT_PLATFORM_BIOS BOOT_SUPPORT_ELF32 BOOT_SUPPORT_ELF64 ; } else { if $(TARGET_ARCH) = x86_64 { DEFINES += BOOT_SUPPORT_ELF64 ; } else { DEFINES += BOOT_SUPPORT_ELF32 ; } } } case "sparc" : { DEFINES += BOOT_SUPPORT_ELF64 ; } case "riscv64" : { DEFINES += BOOT_SUPPORT_ELF64 ; } case "m68k" : { DEFINES += BOOT_SUPPORT_ELF32 ; } case "arm" : { DEFINES += BOOT_SUPPORT_ELF32 ; } case "arm64" : { DEFINES += BOOT_SUPPORT_ELF64 ; } } local kernelC++Header = [ FDirName $(HAIKU_TOP) headers private kernel util kernel_cpp.h ] ; SubDirC++Flags -fno-rtti -include $(kernelC++Header) ; } BootStaticLibrary [ MultiBootGristFiles boot_loader ] : PathBlocklist.cpp elf.cpp heap.cpp kernel_args.cpp load_driver_settings.cpp loader.cpp main.cpp menu.cpp package_support.cpp pager.cpp partitions.cpp RootFileSystem.cpp stdio.cpp vfs.cpp vm.cpp # libroot driver_settings.cpp # utils kernel_cpp.cpp KMessage.cpp list.cpp ring_buffer.cpp safemode_settings.cpp StringHash.cpp DataIO.cpp Referenceable.cpp ; # The partition support is built in an extra static library # so that only the ones that are used will be included. BootStaticLibrary [ MultiBootGristFiles boot_partitions ] : FileMapDisk.cpp amiga_rdb.cpp apple.cpp gpt.cpp Header.cpp crc32.cpp utility.cpp intel.cpp PartitionMap.cpp PartitionMapParser.cpp ; # Tell Jam where to find the utility sources SEARCH on [ FGristFiles kernel_cpp.cpp list.cpp ring_buffer.cpp StringHash.cpp ] = [ FDirName $(HAIKU_TOP) src system kernel util ] ; SEARCH on [ FGristFiles KMessage.cpp ] = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ; SEARCH on [ FGristFiles safemode_settings.cpp ] = [ FDirName $(HAIKU_TOP) src system kernel debug ] ; SEARCH on [ FGristFiles driver_settings.cpp ] = [ FDirName $(HAIKU_TOP) src system libroot os ] ; SEARCH on [ FGristFiles amiga_rdb.cpp ] = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ] ; SEARCH on [ FGristFiles apple.cpp ] = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ] ; SEARCH on [ FGristFiles gpt.cpp Header.cpp crc32.cpp utility.cpp ] = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ] ; SEARCH on [ FGristFiles intel.cpp PartitionMap.cpp PartitionMapParser.cpp ] = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ] ; SEARCH on [ FGristFiles stage2_crt0.S ] = [ FDirName $(HAIKU_TOP) src system boot arch $(TARGET_KERNEL_ARCH_DIR) ] ; SEARCH on [ FGristFiles DataIO.cpp Referenceable.cpp ] = [ FDirName $(HAIKU_TOP) src kits support ] ; } } SubInclude HAIKU_TOP src system boot loader file_systems ; SubInclude HAIKU_TOP src system boot loader net ;