xref: /haiku/src/system/boot/loader/Jamfile (revision b671e9bbdbd10268a042b4f4cc4317ccd03d105e)
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 efi ;
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_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	;
24
25	# Add architecture specific partition/file system modules
26
27	switch $(TARGET_ARCH) {
28		case "ppc" :
29		{
30			defines +=
31				BOOT_SUPPORT_PARTITION_AMIGA
32				BOOT_SUPPORT_PARTITION_APPLE
33
34				BOOT_SUPPORT_FILE_SYSTEM_AMIGA_FFS
35			;
36		}
37		case "x86" :
38		{
39			defines +=
40				BOOT_SUPPORT_PARTITION_EFI
41
42				#BOOT_SUPPORT_FILE_SYSTEM_FAT
43			;
44		}
45	}
46
47	defines = [ FDefines $(defines) ] ;
48	SubDirCcFlags $(defines) -Wall -Wno-multichar ;
49	SubDirC++Flags $(defines) -Wall -Wno-multichar -fno-rtti ;
50}
51
52KernelStaticLibrary boot_loader :
53	main.cpp
54	vfs.cpp
55	RootFileSystem.cpp
56	partitions.cpp
57	heap.cpp
58	stdio.cpp
59	elf.cpp
60	menu.cpp
61	loader.cpp
62	kernel_args.cpp
63	load_driver_settings.cpp
64
65	# libroot
66	driver_settings.c
67
68	# utils
69	kernel_cpp.cpp
70	KMessage.cpp
71	list.c
72	safemode_settings.cpp
73
74	: -fno-pic
75	;
76
77# The partition support is built in an extra static library
78# so that only the ones that are used will be included.
79
80KernelStaticLibrary boot_partitions :
81	FileMapDisk.cpp
82	amiga_rdb.cpp
83	apple.cpp
84	efi_gpt.cpp
85	intel.cpp
86	PartitionMap.cpp
87	PartitionMapParser.cpp
88	: -fno-pic
89	;
90
91# Tell Jam where to find the utility sources
92SEARCH on [ FGristFiles kernel_cpp.cpp list.c ]
93    = [ FDirName $(HAIKU_TOP) src system kernel util ] ;
94
95SEARCH on [ FGristFiles KMessage.cpp ]
96    = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ;
97
98SEARCH on [ FGristFiles safemode_settings.cpp ]
99    = [ FDirName $(HAIKU_TOP) src system kernel debug ] ;
100
101SEARCH on [ FGristFiles driver_settings.c ]
102    = [ FDirName $(HAIKU_TOP) src system libroot os ] ;
103
104SEARCH on [ FGristFiles amiga_rdb.cpp ]
105    = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ] ;
106
107SEARCH on [ FGristFiles apple.cpp ]
108    = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ] ;
109
110SEARCH on [ FGristFiles efi_gpt.cpp ]
111    = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems efi ] ;
112
113SEARCH on [ FGristFiles intel.cpp PartitionMap.cpp PartitionMapParser.cpp ]
114    = [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ] ;
115
116SEARCH on [ FGristFiles stage2_crt0.S ]
117    = [ FDirName $(HAIKU_TOP) src system boot arch $(TARGET_ARCH) ] ;
118
119
120SubInclude HAIKU_TOP src system boot loader file_systems ;
121SubInclude HAIKU_TOP src system boot loader net ;
122