xref: /haiku/src/system/boot/loader/Jamfile (revision 820dca4df6c7bf955c46e8f6521b9408f50b2900)
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