xref: /aosp_15_r20/external/trace-cmd/lib/trace-cmd/plugins/Makefile (revision 58e6ee5f017f6a8912852c892d18457e4bafb554)
1include $(src)/scripts/utils.mk
2
3bdir:=$(obj)/lib/trace-cmd/plugins
4
5PLUGIN_OBJS =
6
7PLUGIN_OBJS := $(PLUGIN_OBJS:%.o=$(bdir)/%.o)
8PLUGIN_BUILD := $(PLUGIN_OBJS:$(bdir)/%.o=$(bdir)/%.so)
9
10PLUGINS := $(PLUGIN_BUILD)
11
12DEPS := $(PLUGIN_OBJS:$(bdir)/%.o=$(bdir)/.%.d)
13
14all: $(PLUGINS)
15
16$(bdir):
17	@mkdir -p $(bdir)
18
19$(PLUGIN_OBJS): | $(bdir)
20$(DEPS): | $(bdir)
21
22$(PLUGIN_OBJS): $(bdir)/%.o : %.c
23	$(Q)$(do_compile_plugin_obj)
24
25$(PLUGIN_BUILD): $(bdir)/%.so: $(bdir)/%.o
26	$(Q)$(do_plugin_build)
27
28$(DEPS): $(bdir)/.%.d: %.c
29	$(Q)$(CC) -M -MT $(bdir)/$*.o $(CPPFLAGS) $(CFLAGS) $< > $@
30
31$(PLUGIN_OBJS): $(bdir)/%.o : $(bdir)/.%.d
32
33PLUGINS_INSTALL = $(subst .so,.install,$(PLUGINS))
34
35$(PLUGINS_INSTALL): $(bdir)/%.install : $(bdir)/%.so force
36	$(Q)$(call do_install_data,$<,$(plugin_tracecmd_dir_SQ))
37
38install_plugins: $(PLUGINS_INSTALL)
39
40# The following targets are necessary to trigger a rebuild when
41# $(PLUGIN_DIR_TRACECMD) change. Without them, a full clean build would
42# necessary in order to get the binaries updated.
43
44$(bdir)/tracecmd_plugin_dir: $(bdir) force
45	$(Q)$(N)$(call update_dir, 'PLUGIN_DIR_TRACECMD=$(PLUGIN_DIR_TRACECMD)')
46
47dep_includes := $(wildcard $(DEPS))
48
49ifneq ($(dep_includes),)
50  include $(dep_includes)
51endif
52
53clean:
54	$(RM) -f $(bdir)/*.a $(bdir)/*.so $(bdir)/*.o $(bdir)/.*.d\
55		$(bdir)/tracecmd_plugin_dir
56
57force:
58.PHONY: clean force
59