xref: /haiku/src/apps/debugger/Jamfile (revision 220c5364ab445eb20376f964ade2f7d3a09e163a)
1SubDir HAIKU_TOP src apps 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 app debug interface kernel package shared libroot ;
10UsePrivateSystemHeaders ;
11
12UseBuildFeatureHeaders libedit ;
13
14LINKFLAGS += -Wl,--exclude-libs,ALL ;
15
16SubDirC++Flags [ FDefines _BSD_SOURCE=1 ] ;
17
18SEARCH_SOURCE += [ FDirName $(SUBDIR) arch ] ;
19SEARCH_SOURCE += [ FDirName $(SUBDIR) arch x86 ] ;
20SEARCH_SOURCE += [ FDirName $(SUBDIR) arch x86_64 ] ;
21SEARCH_SOURCE += [ FDirName $(SUBDIR) controllers ] ;
22SEARCH_SOURCE += [ FDirName $(SUBDIR) debug_info ] ;
23SEARCH_SOURCE += [ FDirName $(SUBDIR) debug_info loading_state_handlers ] ;
24SEARCH_SOURCE += [ FDirName $(SUBDIR) debug_managers ] ;
25SEARCH_SOURCE += [ FDirName $(SUBDIR) debugger_interface ] ;
26SEARCH_SOURCE += [ FDirName $(SUBDIR) elf ] ;
27SEARCH_SOURCE += [ FDirName $(SUBDIR) files ] ;
28SEARCH_SOURCE += [ FDirName $(SUBDIR) ids ] ;
29SEARCH_SOURCE += [ FDirName $(SUBDIR) jobs ] ;
30SEARCH_SOURCE += [ FDirName $(SUBDIR) model ] ;
31SEARCH_SOURCE += [ FDirName $(SUBDIR) settings ] ;
32SEARCH_SOURCE += [ FDirName $(SUBDIR) settings generic ] ;
33SEARCH_SOURCE += [ FDirName $(SUBDIR) source_language ] ;
34SEARCH_SOURCE += [ FDirName $(SUBDIR) source_language c_family ] ;
35SEARCH_SOURCE += [ FDirName $(SUBDIR) source_language x86 ] ;
36SEARCH_SOURCE += [ FDirName $(SUBDIR) types ] ;
37SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface ] ;
38SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface cli ] ;
39SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface cli commands ] ;
40SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui ] ;
41SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui expression_eval_window ] ;
42SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui inspector_window ] ;
43SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui model ] ;
44SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui team_window ] ;
45SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui team_settings_window ] ;
46SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui teams_window ] ;
47SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui utility_windows ] ;
48SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui util ] ;
49SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui value ] ;
50SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface report ] ;
51SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface util ] ;
52SEARCH_SOURCE += [ FDirName $(SUBDIR) util ] ;
53SEARCH_SOURCE += [ FDirName $(SUBDIR) value ] ;
54SEARCH_SOURCE += [ FDirName $(SUBDIR) value type_handlers ] ;
55SEARCH_SOURCE += [ FDirName $(SUBDIR) value value_formatters ] ;
56SEARCH_SOURCE += [ FDirName $(SUBDIR) value value_handlers ] ;
57SEARCH_SOURCE += [ FDirName $(SUBDIR) value value_nodes ] ;
58SEARCH_SOURCE += [ FDirName $(SUBDIR) value values ] ;
59
60local debugAnalyzerSources
61	= [ FDirName $(HAIKU_TOP) src apps debuganalyzer ] ;
62
63SubDirHdrs [ FDirName $(SUBDIR) demangler ] ;
64SubDirHdrs [ FDirName $(SUBDIR) dwarf ] ;
65SubDirHdrs [ FDirName $(HAIKU_TOP) src bin debug ] ;
66SubDirHdrs [ FDirName $(debugAnalyzerSources) gui ] ;
67
68SourceHdrs
69	DwarfFunctionDebugInfo.cpp
70	DwarfImageDebugInfo.cpp
71	DwarfStackFrameDebugInfo.cpp
72	DwarfTeamDebugInfo.cpp
73	DwarfTypeFactory.cpp
74	DwarfTypes.cpp
75	: [ FDirName $(SUBDIR) dwarf ]
76;
77
78local sources =
79	Debugger.cpp
80
81	# arch
82	Architecture.cpp
83	CpuState.cpp
84	InstructionInfo.cpp
85	Register.cpp
86	RegisterMap.cpp
87
88	# arch/x86
89	ArchitectureX86.cpp
90	CpuStateX86.cpp
91
92	# arch/x86_64
93	ArchitectureX8664.cpp
94	CpuStateX8664.cpp
95
96	# controllers
97	DebugReportGenerator.cpp
98	TeamDebugger.cpp
99	ThreadHandler.cpp
100
101	# debug_managers
102	BreakpointManager.cpp
103	TeamMemoryBlockManager.cpp
104	WatchpointManager.cpp
105
106	# debug_info
107	BasicFunctionDebugInfo.cpp
108	DebuggerImageDebugInfo.cpp
109	DebuggerTeamDebugInfo.cpp
110	DwarfFunctionDebugInfo.cpp
111	DwarfImageDebugInfo.cpp
112	DwarfImageDebugInfoLoadingState.cpp
113	DwarfStackFrameDebugInfo.cpp
114	DwarfTeamDebugInfo.cpp
115	DwarfTypeFactory.cpp
116	DwarfTypes.cpp
117	Function.cpp
118	FunctionDebugInfo.cpp
119	FunctionInstance.cpp
120	GlobalTypeLookup.cpp
121	ImageDebugInfo.cpp
122	ImageDebugInfoLoadingState.cpp
123	ImageDebugInfoProvider.cpp
124	ImageDebugLoadingStateHandler.cpp
125	ImageDebugLoadingStateHandlerRoster.cpp
126	NoOpStackFrameDebugInfo.cpp
127	SpecificImageDebugInfo.cpp
128	SpecificImageDebugInfoLoadingState.cpp
129	SpecificTeamDebugInfo.cpp
130	StackFrameDebugInfo.cpp
131	TeamDebugInfo.cpp
132
133	# debug_info/loading_state_handlers
134	DwarfLoadingStateHandler.cpp
135
136	# debugger_interface
137	DebugEvent.cpp
138	DebuggerInterface.cpp
139
140	# elf
141	ElfFile.cpp
142
143	# files
144	FileManager.cpp
145	LocatableDirectory.cpp
146	LocatableEntry.cpp
147	LocatableFile.cpp
148	SourceFile.cpp
149
150	# ids
151	FunctionID.cpp
152	FunctionParameterID.cpp
153	LocalVariableID.cpp
154	ObjectID.cpp
155	ReturnValueID.cpp
156
157	# jobs
158	ExpressionEvaluationJob.cpp
159	GetCPUStateJob.cpp
160	GetStackTraceJob.cpp
161	GetThreadStateJob.cpp
162	LoadImageDebugInfoJob.cpp
163	LoadSourceCodeJob.cpp
164	ResolveValueNodeJob.cpp
165	RetrieveMemoryBlockJob.cpp
166	WriteMemoryJob.cpp
167	WriteValueNodeJob.cpp
168
169	# model
170	AreaInfo.cpp
171	Breakpoint.cpp
172	DisassembledCode.cpp
173	ExpressionInfo.cpp
174	ExpressionValues.cpp
175	FileSourceCode.cpp
176	Image.cpp
177	ImageInfo.cpp
178	LineDataSource.cpp
179	ReturnValueInfo.cpp
180	SemaphoreInfo.cpp
181	SignalInfo.cpp
182	SourceCode.cpp
183	StackFrame.cpp
184	StackFrameValues.cpp
185	StackFrameValueInfos.cpp
186	StackTrace.cpp
187	Statement.cpp
188	SymbolInfo.cpp
189	SyntheticPrimitiveType.cpp
190	SyscallInfo.cpp
191	SystemInfo.cpp
192	Team.cpp
193	TeamInfo.cpp
194	TeamMemory.cpp
195	TeamMemoryBlock.cpp
196	TeamTypeInformation.cpp
197	Thread.cpp
198	ThreadInfo.cpp
199	Type.cpp
200	TypeComponentPath.cpp
201	TypeLookupConstraints.cpp
202	UserBreakpoint.cpp
203	Variable.cpp
204	Watchpoint.cpp
205
206	# settings
207	BreakpointSetting.cpp
208	GuiTeamUiSettings.cpp
209	SettingsManager.cpp
210	TeamFileManagerSettings.cpp
211	TeamSettings.cpp
212	TeamSignalSettings.cpp
213	TeamUiSettings.cpp
214	TeamUiSettingsFactory.cpp
215
216	# settings/generic
217	Setting.cpp
218	Settings.cpp
219	SettingsDescription.cpp
220
221	# source_language
222	SourceLanguage.cpp
223	SyntaxHighlighter.cpp
224	UnsupportedLanguage.cpp
225
226	# source_language/c_family
227	CLanguage.cpp
228	CLanguageExpressionEvaluator.cpp
229	CLanguageFamily.cpp
230	CLanguageFamilySyntaxHighlighter.cpp
231	CLanguageFamilySyntaxHighlightInfo.cpp
232	CLanguageTokenizer.cpp
233	CppLanguage.cpp
234
235	# source_language/x86
236	X86AssemblyLanguage.cpp
237
238	# types
239	ArrayIndexPath.cpp
240	TargetAddressRangeList.cpp
241	ValueLocation.cpp
242
243	# user_interface
244	UserInterface.cpp
245
246	# user_interface/cli
247	CliContext.cpp
248	CommandLineUserInterface.cpp
249
250	# user_interface/cli/commands
251	CliCommand.cpp
252	CliContinueCommand.cpp
253	CliDebugReportCommand.cpp
254	CliDumpMemoryCommand.cpp
255	CliPrintVariableCommand.cpp
256	CliQuitCommand.cpp
257	CliStackFrameCommand.cpp
258	CliStackTraceCommand.cpp
259	CliStopCommand.cpp
260	CliThreadCommand.cpp
261	CliThreadsCommand.cpp
262	CliVariablesCommand.cpp
263
264	# user_interface/gui
265	GraphicalUserInterface.cpp
266
267	# user_interface/gui/model
268	VariablesViewState.cpp
269	VariablesViewStateHistory.cpp
270
271	# user_interface/gui/expression_eval_window
272	ExpressionEvaluationWindow.cpp
273
274	# user_interface/gui/inspector_window
275	InspectorWindow.cpp
276	MemoryView.cpp
277
278	# user_interface/gui/teams_window
279	TeamsWindow.cpp
280	TeamsListView.cpp
281
282	# user_interface/gui/team_window
283	BreakpointListView.cpp
284	BreakpointsView.cpp
285	ConsoleOutputView.cpp
286	ImageFunctionsView.cpp
287	ImageListView.cpp
288	RegistersView.cpp
289	SourceView.cpp
290	StackTraceView.cpp
291	TeamWindow.cpp
292	ThreadListView.cpp
293	VariablesView.cpp
294
295	# user_interface/gui/team_settings_window
296	ExceptionStopConfigView.cpp
297	ImageStopConfigView.cpp
298	SignalsConfigView.cpp
299	TeamSettingsWindow.cpp
300
301	# user_interface/gui/util
302	ActionMenuItem.cpp
303	GuiSettingsUtils.cpp
304	SettingsMenu.cpp
305	SignalDispositionMenu.cpp
306	TargetAddressTableColumn.cpp
307
308	# user_interface/gui/utility_windows
309	BreakpointEditWindow.cpp
310	ExpressionPromptWindow.cpp
311	SignalDispositionEditWindow.cpp
312	StartTeamWindow.cpp
313	VariableEditWindow.cpp
314	WatchPromptWindow.cpp
315
316	# user_interface/gui/value
317	TableCellBoolEditor.cpp
318	TableCellEnumerationEditor.cpp
319	TableCellFloatEditor.cpp
320	TableCellFormattedValueEditor.cpp
321	TableCellFormattedValueRenderer.cpp
322	TableCellIntegerEditor.cpp
323	TableCellOptionPopUpEditor.cpp
324	TableCellTextControlEditor.cpp
325	TableCellValueEditor.cpp
326	TableCellValueRenderer.cpp
327	TableCellValueRendererUtils.cpp
328
329	# user_interface/report
330	ReportUserInterface.cpp
331
332	# user_interface/util
333	UiUtils.cpp
334
335	# util
336	ArchivingUtils.cpp
337	BitBuffer.cpp
338	IntegerFormatter.cpp
339	RangeList.cpp
340	StringUtils.cpp
341	Worker.cpp
342
343	# value
344	TypeHandler.cpp
345	TypeHandlerRoster.cpp
346	Value.cpp
347	ValueFormatter.cpp
348	ValueHandler.cpp
349	ValueHandlerRoster.cpp
350	ValueLoader.cpp
351	ValueNode.cpp
352	ValueNodeContainer.cpp
353	ValueNodeManager.cpp
354	ValueWriter.cpp
355
356	# value/type_handlers
357	BListTypeHandler.cpp
358	BMessageTypeHandler.cpp
359	CStringTypeHandler.cpp
360
361	# value/value_formatters
362	BoolValueFormatter.cpp
363	EnumerationValueFormatter.cpp
364	IntegerValueFormatter.cpp
365	FloatValueFormatter.cpp
366	StringValueFormatter.cpp
367
368	# value/value_handlers
369	AddressValueHandler.cpp
370	BoolValueHandler.cpp
371	EnumerationValueHandler.cpp
372	FloatValueHandler.cpp
373	IntegerValueHandler.cpp
374	StringValueHandler.cpp
375
376	# value/value_nodes
377	AddressValueNode.cpp
378	ArrayValueNode.cpp
379	BListValueNode.cpp
380	BMessageValueNode.cpp
381	CompoundValueNode.cpp
382	CStringValueNode.cpp
383	EnumerationValueNode.cpp
384	ExpressionValueNode.cpp
385	PointerToMemberValueNode.cpp
386	PrimitiveValueNode.cpp
387	VariableValueNodeChild.cpp
388
389	# value/values
390	AddressValue.cpp
391	BoolValue.cpp
392	EnumerationValue.cpp
393	FloatValue.cpp
394	IntegerValue.cpp
395	StringValue.cpp
396;
397
398# since syscall_numbers.h is generated on the fly, we need to explicitly
399# let Jam know about the dependency.
400Includes [ FGristFiles $(sources) ] :
401	<syscalls!$(TARGET_PACKAGING_ARCH)>syscall_numbers.h
402	[ BuildFeatureAttribute ncurses : headers ]
403	[ BuildFeatureAttribute libedit : headers ]
404;
405
406Application Debugger :
407	$(sources)
408	:
409	<nogrist>Debugger_demangler.o
410	<nogrist>Debugger_disasm_x86.o
411	<nogrist>Debugger_disasm_x86_64.o
412	<nogrist>Debugger_dwarf.o
413	<nogrist>DebugAnalyzer_gui_table.o
414
415	libudis86.a
416	<bin>debug_utils.a
417	libcolumnlistview.a
418	libshared.a
419
420	[ TargetLibstdc++ ]
421	be package tracker libbsd.so libdebug.so
422
423	[ BuildFeatureAttribute ncurses : library ]
424	[ BuildFeatureAttribute libedit : library ]
425
426	: Debugger.rdef
427;
428
429HaikuSubInclude arch x86 disasm ;
430HaikuSubInclude arch x86_64 disasm ;
431HaikuSubInclude demangler ;
432HaikuSubInclude dwarf ;
433