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