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	StringUtils.cpp
289	Worker.cpp
290
291	# value
292	TypeHandler.cpp
293	TypeHandlerRoster.cpp
294	Value.cpp
295	ValueFormatter.cpp
296	ValueLoader.cpp
297	ValueNode.cpp
298	ValueNodeContainer.cpp
299	ValueNodeManager.cpp
300	ValueWriter.cpp
301
302	# value/type_handlers
303	BListTypeHandler.cpp
304	BMessageTypeHandler.cpp
305	CStringTypeHandler.cpp
306
307	# value/value_formatters
308	BoolValueFormatter.cpp
309	EnumerationValueFormatter.cpp
310	FloatValueFormatter.cpp
311	IntegerValueFormatter.cpp
312	StringValueFormatter.cpp
313
314	# value/value_nodes
315	AddressValueNode.cpp
316	ArrayValueNode.cpp
317	BListValueNode.cpp
318	BMessageValueNode.cpp
319	CompoundValueNode.cpp
320	CStringValueNode.cpp
321	EnumerationValueNode.cpp
322	ExpressionValueNode.cpp
323	PointerToMemberValueNode.cpp
324	PrimitiveValueNode.cpp
325	VariableValueNodeChild.cpp
326
327	# value/values
328	AddressValue.cpp
329	BoolValue.cpp
330	EnumerationValue.cpp
331	FloatValue.cpp
332	IntegerValue.cpp
333	StringValue.cpp
334;
335
336# since syscall_numbers.h is generated on the fly, we need to explicitly
337# let Jam know about the dependency.
338Includes [ FGristFiles $(sources) ] :
339	<syscalls!$(TARGET_PACKAGING_ARCH)>syscall_numbers.h
340;
341
342SharedLibrary libdebugger.so :
343	$(sources)
344	:
345	<nogrist>Debugger_demangler.o
346	<nogrist>Debugger_disasm_x86.o
347	<nogrist>Debugger_disasm_x86_64.o
348	<nogrist>Debugger_dwarf.o
349
350	libudis86.a
351	<bin>debug_utils.a
352	shared
353
354	[ TargetLibstdc++ ]
355	be package libbsd.so libdebug.so
356;
357
358HaikuSubInclude arch x86 disasm ;
359HaikuSubInclude arch x86_64 disasm ;
360HaikuSubInclude demangler ;
361HaikuSubInclude dwarf ;
362