xref: /xnu-12377.1.9/tools/lldbmacros/Makefile (revision f6217f891ac0bb64f3d375211650a4c1ff8ca1ea)
1export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
2export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
3export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
4export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
5
6include $(MakeInc_cmd)
7include $(MakeInc_def)
8
9.PHONY: lldbmacros_install
10
11do_config_all:: lldbmacros_install
12
13LLDBMACROS_SOURCE:=$(SRCROOT)/tools/lldbmacros/
14LLDBMACROS_BOOTSTRAP_DEST:=$(OBJPATH)/$(KERNEL_FILE_NAME).dSYM/$(DSYMLLDBMACROSDIR)
15LLDBMACROS_DEST:=$(LLDBMACROS_BOOTSTRAP_DEST)/lldbmacros/
16LLDBMACROS_USERDEBUG_FILES=
17ifeq ($(BUILD_STATIC_LINK),1)
18ifneq ($(BUILD_XNU_LIBRARY),1)
19KERNEL_STATIC_DSYM_LLDBMACROS := $(OBJPATH)/$(KERNEL_FILE_NAME).link/$(KERNEL_FILE_NAME).dSYM/$(DSYMLLDBMACROSDIR)/lldbmacros/
20endif
21endif
22
23LLDBMACROS_USERDEBUG_FILES:= \
24	usertaskdebugging/__init__.py \
25	usertaskdebugging/gdbserver.py \
26	usertaskdebugging/interface.py \
27	usertaskdebugging/rsprotocol.py \
28	usertaskdebugging/target.py \
29	usertaskdebugging/userprocess.py
30
31LLDBMACROS_PYTHON_FILES = $(LLDBMACROS_USERDEBUG_FILES) \
32	core/__init__.py \
33	core/caching.py \
34	core/iterators.py \
35	core/configuration.py \
36	core/cvalue.py \
37	core/io.py \
38	core/kernelcore.py \
39	core/lazytarget.py \
40	core/lldbwrap.py \
41	core/operating_system.py \
42	core/pointer.py \
43	core/standard.py \
44	core/xnu_lldb_init.py \
45	kmemory/__init__.py \
46	kmemory/btlog.py \
47	kmemory/kmem.py \
48	kmemory/vm.py \
49	kmemory/whatis.py \
50	kmemory/zone.py \
51	plugins/__init__.py \
52	plugins/zprint_perf_log.py \
53	sysregdoc/AArch64-esr_el1.xml \
54	bank.py \
55	turnstile.py \
56	kevent.py \
57	workqueue.py \
58	ulock.py \
59	xnu.py \
60	xnudefines.py \
61	ktrace.py \
62	macho.py \
63	mbufdefines.py \
64	netdefines.py \
65	ntstat.py \
66	routedefines.py \
67	ipc.py \
68	ipcimportancedetail.py \
69	kcdata.py \
70	scheduler.py \
71	structanalyze.py \
72	pmap.py \
73	memory.py \
74	memorystatus.py \
75	mbufs.py \
76	microstackshot.py \
77	net.py \
78	skywalk.py \
79	ioreg.py \
80	utils.py \
81	kdp.py \
82	process.py \
83	userspace.py \
84	pci.py \
85	misc.py \
86	apic.py \
87	kasan.py \
88	usertaskgdbserver.py \
89	waitq.py \
90	xnutriage.py \
91	kmtriage.py \
92	zonetriage.py \
93	recount.py \
94	sysreg.py \
95	counter.py \
96	refgrp.py \
97	workload.py \
98	log.py \
99	kext.py \
100	nvram.py \
101	taskinfo.py \
102	exclaves.py \
103	vm_pageout.py
104
105ifneq ($(PLATFORM),MacOSX)
106	LLDBMACROS_PYTHON_FILES+= \
107		plugins/iosspeedtracer.py \
108		plugins/iosspeedtracer.sh
109endif
110
111
112# Adding plugin with macros to test all LLDB macros.
113LLDBMACROS_PYTHON_FILES += \
114	tests/integration_smoke/__init__.py \
115	tests/integration_smoke/lldb_session.py \
116	tests/integration_smoke/conftest.py \
117	tests/integration_smoke/test_lldb_macros.py
118
119include $(MakeInc_rule)
120include $(MakeInc_dir)
121
122# Strip macros during install (default)
123ifeq ($(SKIP_LLDBMACROS_UNIFDEF),1)
124	LLDBMACROS_UNIFDEF :=
125else
126	LLDBMACROS_UNIFDEF := $(DATA_UNIFDEF)
127endif
128
129INSTALL_LLDBMACROS_PYTHON_FILES=$(addprefix $(LLDBMACROS_DEST), $(LLDBMACROS_PYTHON_FILES))
130$(eval $(call INSTALLPYTHON_RULE_template,$(INSTALL_LLDBMACROS_PYTHON_FILES),$(LLDBMACROS_SOURCE)%,pydir,$(LLDBMACROS_UNIFDEF),$(LLDBMACROS_DEST)))
131$(eval $(call INSTALLPYTHON_RULE_template,$(LLDBMACROS_BOOTSTRAP_DEST)/$(KERNEL_LLDBBOOTSTRAP_NAME),$(LLDBMACROS_SOURCE)/core/xnu_lldb_init.py,kbpydir,$(LLDBMACROS_UNIFDEF),$(LLDBMACROS_BOOTSTRAP_DEST)/))
132
133ifeq ($(BUILD_STATIC_LINK),1)
134ifneq ($(BUILD_XNU_LIBRARY),1)
135INSTALL_STATIC_DSYM_LLDBMACROS_PYTHON_FILES=$(addprefix $(KERNEL_STATIC_DSYM_LLDBMACROS), $(LLDBMACROS_PYTHON_FILES))
136$(eval $(call INSTALLPYTHON_RULE_template,$(INSTALL_STATIC_DSYM_LLDBMACROS_PYTHON_FILES),$(LLDBMACROS_SOURCE)%,sdpydir,$(LLDBMACROS_UNIFDEF),$(KERNEL_STATIC_DSYM_LLDBMACROS)))
137$(eval $(call INSTALLPYTHON_RULE_template,$(KERNEL_STATIC_DSYM_LLDBMACROS)/../$(KERNEL_LLDBBOOTSTRAP_NAME),$(LLDBMACROS_SOURCE)/core/xnu_lldb_init.py,kbsdpydir,$(LLDBMACROS_UNIFDEF),$(KERNEL_STATIC_DSYM_LLDBMACROS)/../))
138endif
139endif
140
141ifeq ($(BUILD_STATIC_LINK),1)
142ifneq ($(BUILD_XNU_LIBRARY),1)
143STATIC_DSYM_LLDBMACROS_INSTALL_TARGETS := \
144	$(INSTALL_STATIC_DSYM_LLDBMACROS_PYTHON_FILES) \
145	$(KERNEL_STATIC_DSYM_LLDBMACROS)/../$(KERNEL_LLDBBOOTSTRAP_NAME)
146endif
147endif
148
149lldbmacros_install: $(INSTALL_LLDBMACROS_PYTHON_FILES) $(LLDBMACROS_BOOTSTRAP_DEST)/$(KERNEL_LLDBBOOTSTRAP_NAME) $(STATIC_DSYM_LLDBMACROS_INSTALL_TARGETS)
150	$(_v)$(MKDIR) $(LLDBMACROS_DEST)/builtinkexts
151ifeq ($(BUILD_STATIC_LINK),1)
152ifneq ($(BUILD_XNU_LIBRARY),1)
153	$(_v)$(MKDIR) $(KERNEL_STATIC_DSYM_LLDBMACROS)/builtinkexts
154endif
155endif
156