xref: /haiku/src/kits/debugger/Jamfile (revision fc7456e9b1ec38c941134ed6d01c438cf289381e)
1SubDir HAIKU_TOP src kits debugger ;
2
3UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ;
4
5# for syscall_numbers.h
6UseHeaders [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH))
7	system kernel ] ;
8
9UsePrivateHeaders debugger ;
10UsePrivateHeaders [ FDirName debugger arch ] ;
11UsePrivateHeaders [ FDirName debugger controllers ] ;
12UsePrivateHeaders [ FDirName debugger debug_info ] ;
13UsePrivateHeaders [ FDirName debugger debug_managers ] ;
14UsePrivateHeaders [ FDirName debugger elf ] ;
15UsePrivateHeaders [ FDirName debugger files ] ;
16UsePrivateHeaders [ FDirName debugger ids ] ;
17UsePrivateHeaders [ FDirName debugger model ] ;
18UsePrivateHeaders [ FDirName debugger settings ] ;
19UsePrivateHeaders [ FDirName debugger settings generic ] ;
20UsePrivateHeaders [ FDirName debugger source_language ] ;
21UsePrivateHeaders [ FDirName debugger source_language c_family ] ;
22UsePrivateHeaders [ FDirName debugger target_host_interface ] ;
23UsePrivateHeaders [ FDirName debugger types ] ;
24UsePrivateHeaders [ FDirName debugger user_interface ] ;
25UsePrivateHeaders [ FDirName debugger user_interface util ] ;
26UsePrivateHeaders [ FDirName debugger util ] ;
27UsePrivateHeaders [ FDirName debugger value ] ;
28UsePrivateHeaders [ FDirName debugger value value_formatters ] ;
29UsePrivateHeaders [ FDirName debugger value value_nodes ] ;
30UsePrivateHeaders [ FDirName debugger value values ] ;
31
32UsePrivateHeaders app debug interface kernel package shared libroot ;
33UsePrivateSystemHeaders ;
34
35LINKFLAGS += -Wl,--exclude-libs,ALL ;
36
37SEARCH_SOURCE += [ FDirName $(SUBDIR) arch ] ;
38SEARCH_SOURCE += [ FDirName $(SUBDIR) arch x86 ] ;
39SEARCH_SOURCE += [ FDirName $(SUBDIR) arch x86_64 ] ;
40SEARCH_SOURCE += [ FDirName $(SUBDIR) controllers ] ;
41SEARCH_SOURCE += [ FDirName $(SUBDIR) debug_info ] ;
42SEARCH_SOURCE += [ FDirName $(SUBDIR) debug_info loading_state_handlers ] ;
43SEARCH_SOURCE += [ FDirName $(SUBDIR) debug_managers ] ;
44SEARCH_SOURCE += [ FDirName $(SUBDIR) debugger_interface ] ;
45SEARCH_SOURCE += [ FDirName $(SUBDIR) debugger_interface core ] ;
46SEARCH_SOURCE += [ FDirName $(SUBDIR) debugger_interface local ] ;
47SEARCH_SOURCE += [ FDirName $(SUBDIR) debugger_interface remote ] ;
48SEARCH_SOURCE += [ FDirName $(SUBDIR) elf ] ;
49SEARCH_SOURCE += [ FDirName $(SUBDIR) files ] ;
50SEARCH_SOURCE += [ FDirName $(SUBDIR) ids ] ;
51SEARCH_SOURCE += [ FDirName $(SUBDIR) jobs ] ;
52SEARCH_SOURCE += [ FDirName $(SUBDIR) model ] ;
53SEARCH_SOURCE += [ FDirName $(SUBDIR) settings ] ;
54SEARCH_SOURCE += [ FDirName $(SUBDIR) settings generic ] ;
55SEARCH_SOURCE += [ FDirName $(SUBDIR) source_language ] ;
56SEARCH_SOURCE += [ FDirName $(SUBDIR) source_language c_family ] ;
57SEARCH_SOURCE += [ FDirName $(SUBDIR) source_language x86 ] ;
58SEARCH_SOURCE += [ FDirName $(SUBDIR) target_host_interface ] ;
59SEARCH_SOURCE += [ FDirName $(SUBDIR) target_host_interface local ] ;
60SEARCH_SOURCE += [ FDirName $(SUBDIR) target_host_interface network ] ;
61SEARCH_SOURCE += [ FDirName $(SUBDIR) types ] ;
62SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface ] ;
63SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface util ] ;
64SEARCH_SOURCE += [ FDirName $(SUBDIR) util ] ;
65SEARCH_SOURCE += [ FDirName $(SUBDIR) value ] ;
66SEARCH_SOURCE += [ FDirName $(SUBDIR) value type_handlers ] ;
67SEARCH_SOURCE += [ FDirName $(SUBDIR) value value_formatters ] ;
68SEARCH_SOURCE += [ FDirName $(SUBDIR) value value_nodes ] ;
69SEARCH_SOURCE += [ FDirName $(SUBDIR) value values ] ;
70
71SubDirHdrs [ FDirName $(SUBDIR) demangler ] ;
72SubDirHdrs [ FDirName $(SUBDIR) dwarf ] ;
73SubDirHdrs [ FDirName $(HAIKU_TOP) src bin debug ] ;
74
75SourceHdrs
76	DwarfFunctionDebugInfo.cpp
77	DwarfImageDebugInfo.cpp
78	DwarfStackFrameDebugInfo.cpp
79	DwarfTeamDebugInfo.cpp
80	DwarfTypeFactory.cpp
81	DwarfTypes.cpp
82	: [ FDirName $(SUBDIR) dwarf ]
83;
84
85local sources =
86	DebuggerGlobals.cpp
87
88	# arch
89	Architecture.cpp
90	CpuState.cpp
91	InstructionInfo.cpp
92	Register.cpp
93	RegisterMap.cpp
94
95	# arch/x86
96	ArchitectureX86.cpp
97	CpuStateX86.cpp
98
99	# arch/x86_64
100	ArchitectureX8664.cpp
101	CpuStateX8664.cpp
102
103	# controllers
104	DebugReportGenerator.cpp
105	TeamDebugger.cpp
106	ThreadHandler.cpp
107
108	# debug_managers
109	BreakpointManager.cpp
110	TeamMemoryBlockManager.cpp
111	WatchpointManager.cpp
112
113	# debug_info
114	BasicFunctionDebugInfo.cpp
115	DebuggerImageDebugInfo.cpp
116	DebuggerTeamDebugInfo.cpp
117	DwarfFunctionDebugInfo.cpp
118	DwarfImageDebugInfo.cpp
119	DwarfImageDebugInfoLoadingState.cpp
120	DwarfStackFrameDebugInfo.cpp
121	DwarfTeamDebugInfo.cpp
122	DwarfTypeFactory.cpp
123	DwarfTypes.cpp
124	Function.cpp
125	FunctionDebugInfo.cpp
126	FunctionInstance.cpp
127	GlobalTypeLookup.cpp
128	ImageDebugInfo.cpp
129	ImageDebugInfoLoadingState.cpp
130	ImageDebugInfoProvider.cpp
131	ImageDebugLoadingStateHandler.cpp
132	ImageDebugLoadingStateHandlerRoster.cpp
133	NoOpStackFrameDebugInfo.cpp
134	SpecificImageDebugInfo.cpp
135	SpecificImageDebugInfoLoadingState.cpp
136	SpecificTeamDebugInfo.cpp
137	StackFrameDebugInfo.cpp
138	TeamDebugInfo.cpp
139
140	# debug_info/loading_state_handlers
141	DwarfLoadingStateHandler.cpp
142
143	# debugger_interface
144	DebugEvent.cpp
145	DebuggerInterface.cpp
146
147	# debugger_interface/core
148	CoreFileDebuggerInterface.cpp
149
150	# debugger_interface/local
151	LocalDebuggerInterface.cpp
152
153	# debugger_interface/remote
154	RemoteDebugRequest.cpp
155
156	# elf
157	CoreFile.cpp
158	ElfFile.cpp
159	ElfSymbolLookup.cpp
160
161	# files
162	FileManager.cpp
163	LocatableDirectory.cpp
164	LocatableEntry.cpp
165	LocatableFile.cpp
166	SourceFile.cpp
167
168	# ids
169	FunctionID.cpp
170	FunctionParameterID.cpp
171	LocalVariableID.cpp
172	ObjectID.cpp
173	ReturnValueID.cpp
174
175	# jobs
176	ExpressionEvaluationJob.cpp
177	GetCPUStateJob.cpp
178	GetStackTraceJob.cpp
179	GetThreadStateJob.cpp
180	LoadImageDebugInfoJob.cpp
181	LoadSourceCodeJob.cpp
182	ResolveValueNodeJob.cpp
183	RetrieveMemoryBlockJob.cpp
184	WriteCoreFileJob.cpp
185	WriteMemoryJob.cpp
186	WriteValueNodeJob.cpp
187
188	# model
189	AreaInfo.cpp
190	Breakpoint.cpp
191	DisassembledCode.cpp
192	ExpressionInfo.cpp
193	ExpressionValues.cpp
194	FileSourceCode.cpp
195	Image.cpp
196	ImageInfo.cpp
197	LineDataSource.cpp
198	ReturnValueInfo.cpp
199	SemaphoreInfo.cpp
200	SignalInfo.cpp
201	SourceCode.cpp
202	StackFrame.cpp
203	StackFrameValues.cpp
204	StackFrameValueInfos.cpp
205	StackTrace.cpp
206	Statement.cpp
207	SymbolInfo.cpp
208	SyntheticPrimitiveType.cpp
209	SyscallInfo.cpp
210	SystemInfo.cpp
211	TargetHost.cpp
212	Team.cpp
213	TeamFunctionSourceInformation.cpp
214	TeamInfo.cpp
215	TeamMemory.cpp
216	TeamMemoryBlock.cpp
217	TeamTypeInformation.cpp
218	Thread.cpp
219	ThreadInfo.cpp
220	Type.cpp
221	TypeComponentPath.cpp
222	TypeLookupConstraints.cpp
223	UserBreakpoint.cpp
224	Variable.cpp
225	Watchpoint.cpp
226
227	# settings
228	BreakpointSetting.cpp
229	NoOpSettingsManager.cpp
230	SettingsManager.cpp
231	TeamFileManagerSettings.cpp
232	TeamSettings.cpp
233	TeamSignalSettings.cpp
234	TeamUiSettings.cpp
235	TeamUiSettingsFactory.cpp
236
237	# settings/generic
238	Setting.cpp
239	Settings.cpp
240	SettingsDescription.cpp
241
242	# source_language
243	SourceLanguage.cpp
244	SyntaxHighlighter.cpp
245	UnsupportedLanguage.cpp
246
247	# source_language/c_family
248	CLanguage.cpp
249	CLanguageExpressionEvaluator.cpp
250	CLanguageFamily.cpp
251	CLanguageFamilySyntaxHighlighter.cpp
252	CLanguageFamilySyntaxHighlightInfo.cpp
253	CLanguageTokenizer.cpp
254	CppLanguage.cpp
255
256	# source_language/x86
257	X86AssemblyLanguage.cpp
258
259	# target_host_interface
260	TargetHostInterface.cpp
261	TargetHostInterfaceInfo.cpp
262	TargetHostInterfaceRoster.cpp
263
264	# target_host_interface/local
265	LocalTargetHostInterface.cpp
266	LocalTargetHostInterfaceInfo.cpp
267
268	# target_host_interface/network
269	NetworkTargetHostInterface.cpp
270	NetworkTargetHostInterfaceInfo.cpp
271
272	# types
273	ArrayIndexPath.cpp
274	TargetAddressRangeList.cpp
275	ValueLocation.cpp
276
277	# user_interface
278	UserInterface.cpp
279
280	# user_interface/util
281	UiUtils.cpp
282
283	# util
284	ArchivingUtils.cpp
285	BitBuffer.cpp
286	IntegerFormatter.cpp
287	RangeList.cpp
288	Worker.cpp
289
290	# value
291	TypeHandler.cpp
292	TypeHandlerRoster.cpp
293	Value.cpp
294	ValueFormatter.cpp
295	ValueLoader.cpp
296	ValueNode.cpp
297	ValueNodeContainer.cpp
298	ValueNodeManager.cpp
299	ValueWriter.cpp
300
301	# value/type_handlers
302	BListTypeHandler.cpp
303	BMessageTypeHandler.cpp
304	CStringTypeHandler.cpp
305
306	# value/value_formatters
307	BoolValueFormatter.cpp
308	EnumerationValueFormatter.cpp
309	FloatValueFormatter.cpp
310	IntegerValueFormatter.cpp
311	StringValueFormatter.cpp
312
313	# value/value_nodes
314	AddressValueNode.cpp
315	ArrayValueNode.cpp
316	BListValueNode.cpp
317	BMessageValueNode.cpp
318	CompoundValueNode.cpp
319	CStringValueNode.cpp
320	EnumerationValueNode.cpp
321	ExpressionValueNode.cpp
322	PointerToMemberValueNode.cpp
323	PrimitiveValueNode.cpp
324	VariableValueNodeChild.cpp
325
326	# value/values
327	AddressValue.cpp
328	BoolValue.cpp
329	EnumerationValue.cpp
330	FloatValue.cpp
331	IntegerValue.cpp
332	StringValue.cpp
333;
334
335# since syscall_numbers.h is generated on the fly, we need to explicitly
336# let Jam know about the dependency.
337Includes [ FGristFiles $(sources) ] :
338	<syscalls!$(TARGET_PACKAGING_ARCH)>syscall_numbers.h
339;
340
341SharedLibrary libdebugger.so :
342	$(sources)
343	:
344	<nogrist>Debugger_demangler.o
345	<nogrist>Debugger_disasm_x86.o
346	<nogrist>Debugger_disasm_x86_64.o
347	<nogrist>Debugger_dwarf.o
348
349	libzydis.a
350	<bin>debug_utils.a
351	shared
352
353	[ TargetLibstdc++ ]
354	be package libbsd.so libdebug.so
355;
356
357HaikuSubInclude arch x86 disasm ;
358HaikuSubInclude arch x86_64 disasm ;
359HaikuSubInclude demangler ;
360HaikuSubInclude dwarf ;
361