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