xref: /haiku/src/system/boot/loader/Jamfile (revision 1f96a3cbde8cddbc9c874e161615df2edfef98d1)
1338b8dc3SIngo WeinholdSubDir HAIKU_TOP src system boot loader ;
25af32e75SAxel Dörfler
3338b8dc3SIngo WeinholdSubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ;
4338b8dc3SIngo WeinholdSubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ;
561ba1259SAxel DörflerSubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ;
6338b8dc3SIngo WeinholdSubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ;
76b202f4eSIngo WeinholdUsePrivateKernelHeaders ;
85af32e75SAxel DörflerUsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
96b202f4eSIngo WeinholdUsePrivateHeaders [ FDirName kernel util ] ;
106b202f4eSIngo WeinholdUsePrivateHeaders shared storage ;
115af32e75SAxel Dörfler
12*1f96a3cbSJessica Hamiltonlocal defines = $(DEFINES) ;
13*1f96a3cbSJessica Hamilton
14*1f96a3cbSJessica Hamiltonlocal platform ;
15*1f96a3cbSJessica Hamiltonfor platform in [ MultiBootSubDirSetup ] {
16*1f96a3cbSJessica Hamilton	on $(platform) {
175af32e75SAxel Dörfler		{
18*1f96a3cbSJessica Hamilton			DEFINES = $(defines) ;
19*1f96a3cbSJessica Hamilton
2030572237SIngo Weinhold			DEFINES +=
215af32e75SAxel Dörfler				_BOOT_MODE
22da80a050SAlex Smith				BOOT_ARCH=\\\"$(TARGET_KERNEL_ARCH)\\\"
23c06e68d0SAxel Dörfler				KMESSAGE_CONTAINER_ONLY
245af32e75SAxel Dörfler
255af32e75SAxel Dörfler				BOOT_SUPPORT_PARTITION_INTEL
265af32e75SAxel Dörfler
275af32e75SAxel Dörfler				BOOT_SUPPORT_FILE_SYSTEM_BFS
2885a53ea2SAxel Dörfler				BOOT_SUPPORT_FILE_SYSTEM_TARFS
29f335531bSFrançois Revol				#BOOT_SUPPORT_FILE_MAP_DISK
30085cf27bSIngo Weinhold				BOOT_SUPPORT_FILE_SYSTEM_FAT
315af32e75SAxel Dörfler			;
325af32e75SAxel Dörfler
33c06e68d0SAxel Dörfler			# Add architecture specific partition/file system modules
34c06e68d0SAxel Dörfler
35da80a050SAlex Smith			switch $(TARGET_KERNEL_ARCH) {
36c06e68d0SAxel Dörfler				case "ppc" :
37c06e68d0SAxel Dörfler				{
3830572237SIngo Weinhold					DEFINES +=
39c06e68d0SAxel Dörfler						BOOT_SUPPORT_PARTITION_AMIGA
40c06e68d0SAxel Dörfler						BOOT_SUPPORT_PARTITION_APPLE
41c06e68d0SAxel Dörfler
42c06e68d0SAxel Dörfler						BOOT_SUPPORT_FILE_SYSTEM_AMIGA_FFS
43c06e68d0SAxel Dörfler					;
44c06e68d0SAxel Dörfler				}
45c06e68d0SAxel Dörfler				case "x86" :
46c06e68d0SAxel Dörfler				{
4730572237SIngo Weinhold					DEFINES +=
487417d5edSAlex Smith						ALTERNATE_BOOT_ARCH=\\\"x86_64\\\"
49f6a34444SAlex Smith						BOOT_SUPPORT_ELF64
507417d5edSAlex Smith
51c06e68d0SAxel Dörfler						BOOT_SUPPORT_PARTITION_EFI
52c06e68d0SAxel Dörfler
539e90c30eSAxel Dörfler						#BOOT_SUPPORT_FILE_SYSTEM_FAT
54c06e68d0SAxel Dörfler					;
55*1f96a3cbSJessica Hamilton					if $(TARGET_BOOT_PLATFORM) = efi {
56b3215a62SHenry Harrington						DEFINES +=
57b3215a62SHenry Harrington							_BOOT_PLATFORM_EFI
58b3215a62SHenry Harrington						;
59211483cbSFredrik Holmqvist					}
60c06e68d0SAxel Dörfler				}
61c06e68d0SAxel Dörfler			}
62c06e68d0SAxel Dörfler
63*1f96a3cbSJessica Hamilton			if $(TARGET_BOOT_PLATFORM) != efi {
6425fa3b1bSJessica Hamilton				DEFINES += BOOT_SUPPORT_ELF32 ;
6525fa3b1bSJessica Hamilton			}
6625fa3b1bSJessica Hamilton
6730572237SIngo Weinhold			local kernelC++Header = [ FDirName $(HAIKU_TOP) headers private kernel util
6830572237SIngo Weinhold				kernel_cpp.h ] ;
6930572237SIngo Weinhold
7030572237SIngo Weinhold			SubDirC++Flags -fno-rtti -include $(kernelC++Header) ;
715af32e75SAxel Dörfler		}
725af32e75SAxel Dörfler
7330572237SIngo Weinhold
74*1f96a3cbSJessica Hamilton		BootStaticLibrary [ MultiBootGristFiles boot_loader ] :
75c04f3a62SIngo Weinhold			PathBlacklist.cpp
765af32e75SAxel Dörfler			elf.cpp
7728a2172cSIngo Weinhold			heap.cpp
785af32e75SAxel Dörfler			kernel_args.cpp
795af32e75SAxel Dörfler			load_driver_settings.cpp
8028a2172cSIngo Weinhold			loader.cpp
8128a2172cSIngo Weinhold			main.cpp
8228a2172cSIngo Weinhold			menu.cpp
835c0f8450SIngo Weinhold			package_support.cpp
8428a2172cSIngo Weinhold			pager.cpp
8528a2172cSIngo Weinhold			partitions.cpp
8628a2172cSIngo Weinhold			RootFileSystem.cpp
8728a2172cSIngo Weinhold			stdio.cpp
8828a2172cSIngo Weinhold			vfs.cpp
8928a2172cSIngo Weinhold			vm.cpp
905af32e75SAxel Dörfler
915af32e75SAxel Dörfler			# libroot
9285db3873SIngo Weinhold			driver_settings.cpp
935af32e75SAxel Dörfler
945af32e75SAxel Dörfler			# utils
955af32e75SAxel Dörfler			kernel_cpp.cpp
969e8dc2a9SIngo Weinhold			KMessage.cpp
97bd185b41SIngo Weinhold			list.cpp
9828a2172cSIngo Weinhold			ring_buffer.cpp
9989294b50SAxel Dörfler			safemode_settings.cpp
1003a7e0b00SIngo Weinhold			StringHash.cpp
1015af32e75SAxel Dörfler
10232832cbeSIngo Weinhold			DataIO.cpp
10330572237SIngo Weinhold			Referenceable.cpp
1045af32e75SAxel Dörfler			;
1055af32e75SAxel Dörfler
1065af32e75SAxel Dörfler		# The partition support is built in an extra static library
1075af32e75SAxel Dörfler		# so that only the ones that are used will be included.
1085af32e75SAxel Dörfler
109*1f96a3cbSJessica Hamilton		BootStaticLibrary [ MultiBootGristFiles boot_partitions ] :
110f335531bSFrançois Revol			FileMapDisk.cpp
1115af32e75SAxel Dörfler			amiga_rdb.cpp
1125af32e75SAxel Dörfler			apple.cpp
113ab313893SAxel Dörfler
114eef8417eSAxel Dörfler			efi_gpt.cpp
115ab313893SAxel Dörfler			Header.cpp
116ab313893SAxel Dörfler			crc32.cpp
117ab313893SAxel Dörfler			utility.cpp
118ab313893SAxel Dörfler
1195af32e75SAxel Dörfler			intel.cpp
1205af32e75SAxel Dörfler			PartitionMap.cpp
1215af32e75SAxel Dörfler			PartitionMapParser.cpp
1225af32e75SAxel Dörfler			;
1235af32e75SAxel Dörfler
1245af32e75SAxel Dörfler		# Tell Jam where to find the utility sources
1253a7e0b00SIngo Weinhold		SEARCH on [ FGristFiles kernel_cpp.cpp list.cpp ring_buffer.cpp StringHash.cpp ]
126338b8dc3SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src system kernel util ] ;
1275af32e75SAxel Dörfler
1289e8dc2a9SIngo Weinhold		SEARCH on [ FGristFiles KMessage.cpp ]
1299e8dc2a9SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src system kernel messaging ] ;
1309e8dc2a9SIngo Weinhold
13189294b50SAxel Dörfler		SEARCH on [ FGristFiles safemode_settings.cpp ]
13289294b50SAxel Dörfler			= [ FDirName $(HAIKU_TOP) src system kernel debug ] ;
13389294b50SAxel Dörfler
13485db3873SIngo Weinhold		SEARCH on [ FGristFiles driver_settings.cpp ]
135338b8dc3SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src system libroot os ] ;
1365af32e75SAxel Dörfler
1375af32e75SAxel Dörfler		SEARCH on [ FGristFiles amiga_rdb.cpp ]
138338b8dc3SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ] ;
1395af32e75SAxel Dörfler
1405af32e75SAxel Dörfler		SEARCH on [ FGristFiles apple.cpp ]
141338b8dc3SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ] ;
1425af32e75SAxel Dörfler
143ab313893SAxel Dörfler		SEARCH on [ FGristFiles efi_gpt.cpp Header.cpp crc32.cpp utility.cpp ]
14461ba1259SAxel Dörfler			= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ] ;
145eef8417eSAxel Dörfler
1465af32e75SAxel Dörfler		SEARCH on [ FGristFiles intel.cpp PartitionMap.cpp PartitionMapParser.cpp ]
147338b8dc3SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ] ;
1485af32e75SAxel Dörfler
1495af32e75SAxel Dörfler		SEARCH on [ FGristFiles stage2_crt0.S ]
150da80a050SAlex Smith			= [ FDirName $(HAIKU_TOP) src system boot arch $(TARGET_KERNEL_ARCH) ] ;
1515af32e75SAxel Dörfler
15232832cbeSIngo Weinhold		SEARCH on [ FGristFiles DataIO.cpp Referenceable.cpp ]
15330572237SIngo Weinhold			= [ FDirName $(HAIKU_TOP) src kits support ] ;
154*1f96a3cbSJessica Hamilton	}
155*1f96a3cbSJessica Hamilton}
1565af32e75SAxel Dörfler
157338b8dc3SIngo WeinholdSubInclude HAIKU_TOP src system boot loader file_systems ;
158d561d0adSIngo WeinholdSubInclude HAIKU_TOP src system boot loader net ;
159