1SubDir HAIKU_TOP src system boot loader ; 2 3SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ; 4SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ; 5SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ; 6SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ; 7UsePrivateKernelHeaders ; 8UsePrivateHeaders [ FDirName kernel disk_device_manager ] ; 9UsePrivateHeaders [ FDirName kernel util ] ; 10UsePrivateHeaders shared storage ; 11 12{ 13 local defines = 14 _BOOT_MODE 15 BOOT_ARCH=\\\"$(TARGET_KERNEL_ARCH)\\\" 16 KMESSAGE_CONTAINER_ONLY 17 18 BOOT_SUPPORT_PARTITION_INTEL 19 20 BOOT_SUPPORT_FILE_SYSTEM_BFS 21 BOOT_SUPPORT_FILE_SYSTEM_TARFS 22 #BOOT_SUPPORT_FILE_MAP_DISK 23 BOOT_SUPPORT_FILE_SYSTEM_FAT 24 ; 25 26 # Add architecture specific partition/file system modules 27 28 switch $(TARGET_KERNEL_ARCH) { 29 case "ppc" : 30 { 31 defines += 32 BOOT_SUPPORT_PARTITION_AMIGA 33 BOOT_SUPPORT_PARTITION_APPLE 34 35 BOOT_SUPPORT_FILE_SYSTEM_AMIGA_FFS 36 ; 37 } 38 case "x86" : 39 { 40 defines += 41 ALTERNATE_BOOT_ARCH=\\\"x86_64\\\" 42 BOOT_SUPPORT_ELF64 43 44 BOOT_SUPPORT_PARTITION_EFI 45 46 #BOOT_SUPPORT_FILE_SYSTEM_FAT 47 ; 48 } 49 } 50 51 defines = [ FDefines $(defines) ] ; 52 SubDirCcFlags $(defines) ; 53 SubDirC++Flags $(defines) -fno-rtti ; 54} 55 56BootStaticLibrary boot_loader : 57 elf.cpp 58 heap.cpp 59 kernel_args.cpp 60 load_driver_settings.cpp 61 loader.cpp 62 main.cpp 63 menu.cpp 64 pager.cpp 65 partitions.cpp 66 RootFileSystem.cpp 67 stdio.cpp 68 vfs.cpp 69 vm.cpp 70 71 # libroot 72 driver_settings.cpp 73 74 # utils 75 kernel_cpp.cpp 76 KMessage.cpp 77 list.cpp 78 ring_buffer.cpp 79 safemode_settings.cpp 80 81 : -fno-pic 82 ; 83 84# The partition support is built in an extra static library 85# so that only the ones that are used will be included. 86 87BootStaticLibrary boot_partitions : 88 FileMapDisk.cpp 89 amiga_rdb.cpp 90 apple.cpp 91 92 efi_gpt.cpp 93 Header.cpp 94 crc32.cpp 95 utility.cpp 96 97 intel.cpp 98 PartitionMap.cpp 99 PartitionMapParser.cpp 100 : -fno-pic 101 ; 102 103# Tell Jam where to find the utility sources 104SEARCH on [ FGristFiles kernel_cpp.cpp list.cpp ring_buffer.cpp ] 105 = [ FDirName $(HAIKU_TOP) src system kernel util ] ; 106 107SEARCH on [ FGristFiles KMessage.cpp ] 108 = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ; 109 110SEARCH on [ FGristFiles safemode_settings.cpp ] 111 = [ FDirName $(HAIKU_TOP) src system kernel debug ] ; 112 113SEARCH on [ FGristFiles driver_settings.cpp ] 114 = [ FDirName $(HAIKU_TOP) src system libroot os ] ; 115 116SEARCH on [ FGristFiles amiga_rdb.cpp ] 117 = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ] ; 118 119SEARCH on [ FGristFiles apple.cpp ] 120 = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ] ; 121 122SEARCH on [ FGristFiles efi_gpt.cpp Header.cpp crc32.cpp utility.cpp ] 123 = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ] ; 124 125SEARCH on [ FGristFiles intel.cpp PartitionMap.cpp PartitionMapParser.cpp ] 126 = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ] ; 127 128SEARCH on [ FGristFiles stage2_crt0.S ] 129 = [ FDirName $(HAIKU_TOP) src system boot arch $(TARGET_KERNEL_ARCH) ] ; 130 131 132SubInclude HAIKU_TOP src system boot loader file_systems ; 133SubInclude HAIKU_TOP src system boot loader net ; 134