1SubDir HAIKU_TOP src tests system boot loader ;
2
3UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
4UsePrivateHeaders [ FDirName kernel util ] ;
5UsePrivateHeaders kernel shared storage system ;
6SubDirSysHdrs $(HAIKU_TOP) headers private kernel arch $(TARGET_KERNEL_ARCH_DIR) ;
7SubDirSysHdrs $(HAIKU_TOP) headers private system arch $(TARGET_ARCH) ;
8SubDirSysHdrs $(HAIKU_TOP) src tests system boot loader ;
9SubDirHdrs $(HAIKU_TOP) src system boot loader ;
10SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ;
11SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ;
12SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ;
13SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ;
14
15# we need to redefine certain calls in the boot loader so that
16# they will really be used instead of their POSIX counterparts
17# in libroot.so
18
19ObjectDefines
20	# boot loader
21	main.cpp
22	vfs.cpp
23	partitions.cpp
24	RootFileSystem.cpp
25	elf.cpp
26	menu.cpp
27	loader.cpp
28	kernel_args.cpp
29	load_driver_settings.cpp
30	pager.cpp
31
32	# other
33	platform_menu.cpp
34	driver_settings.cpp
35
36	# partitions
37	amiga_rdb.cpp
38	apple.cpp
39
40	gpt.cpp
41	Header.cpp
42	crc32.cpp
43	utility.cpp
44
45	intel.cpp
46	PartitionMap.cpp
47	PartitionMapParser.cpp
48	:
49	read_pos=boot_read_pos fstat=boot_fstat open=boot_open close=boot_close main=boot_main
50	;
51
52{
53	local defines =
54		BOOT_ARCH=\\\"$(TARGET_ARCH)\\\"
55			# the boot loader test application will try to load the BeOS kernel
56			# from a supported partition/file system
57
58		BOOT_SUPPORT_PARTITION_AMIGA
59		BOOT_SUPPORT_PARTITION_APPLE
60		BOOT_SUPPORT_PARTITION_EFI
61		BOOT_SUPPORT_PARTITION_INTEL
62
63		BOOT_SUPPORT_FILE_SYSTEM_BFS
64		BOOT_SUPPORT_FILE_SYSTEM_AMIGA_FFS
65		BOOT_SUPPORT_FILE_SYSTEM_TARFS
66		;
67
68	defines = [ FDefines $(defines) ] ;
69
70	if $(OS) = "LINUX" {
71		SubDirC++Flags $(defines) ;
72	} else {
73		#SubDirC++Flags $(defines) -DHAVE_READ_POS=1 -fcheck-memory-usage -D_NO_INLINE_ASM ;
74		SubDirC++Flags $(defines) -DHAVE_READ_POS=1 -D_NO_INLINE_ASM ;
75	}
76}
77
78SimpleTest BootLoaderTest :
79	# userland bindings
80	platform_start.cpp
81	platform_console.cpp
82	platform_debug.cpp
83	platform_devices.cpp
84	platform_heap.cpp
85	platform_menu.cpp
86	platform_misc.cpp
87	platform_mmu.cpp
88	Handle.cpp
89
90	# boot loader
91	main.cpp
92	vfs.cpp
93	partitions.cpp
94	RootFileSystem.cpp
95	elf.cpp
96	menu.cpp
97	loader.cpp
98	kernel_args.cpp
99	load_driver_settings.cpp
100	pager.cpp
101
102	# partitioning systems
103	amiga_rdb.cpp
104	apple.cpp
105
106	gpt.cpp
107	Header.cpp
108	crc32.cpp
109	utility.cpp
110
111	intel.cpp
112	PartitionMap.cpp
113	PartitionMapParser.cpp
114
115	# utility functions
116	list.cpp
117	driver_settings.cpp
118	ring_buffer.cpp
119	KMessage.cpp
120
121	:
122	boottest_bfs.a boottest_amiga_ffs.a boottest_tarfs.a libz.a
123	kernelland_emu
124;
125
126# Tell Jam where to find the utility sources
127
128SEARCH on [ FGristFiles list.cpp ring_buffer.cpp ]
129	= [ FDirName $(HAIKU_TOP) src system kernel util ] ;
130
131SEARCH on [ FGristFiles KMessage.cpp ]
132    = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ;
133
134SEARCH on [ FGristFiles strlcat.c strlcpy.c ]
135	= [ FDirName $(HAIKU_TOP) src system libroot posix string ] ;
136
137SEARCH on [ FGristFiles driver_settings.cpp ]
138	= [ FDirName $(HAIKU_TOP) src system libroot os ] ;
139
140SEARCH on [ FGristFiles
141		main.cpp vfs.cpp partitions.cpp
142		heap.cpp RootFileSystem.cpp
143		elf.cpp menu.cpp loader.cpp
144		kernel_args.cpp load_driver_settings.cpp pager.cpp
145	] = [ FDirName $(HAIKU_TOP) src system boot loader ] ;
146
147# partitioning system modules
148
149SEARCH on [ FGristFiles amiga_rdb.cpp ]
150	= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ] ;
151
152SEARCH on [ FGristFiles apple.cpp ]
153	= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ] ;
154
155SEARCH on [ FGristFiles gpt.cpp Header.cpp crc32.cpp utility.cpp ]
156	= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ] ;
157
158SEARCH on [ FGristFiles intel.cpp PartitionMap.cpp PartitionMapParser.cpp ]
159	= [ FDirName $(HAIKU_TOP) src add-ons kernel partitioning_systems intel ] ;
160
161
162SubInclude HAIKU_TOP src tests system boot loader file_systems ;
163