1# SPDX-License-Identifier: GPL-2.0 2 3VERSION := $(TC_VERSION) 4PATCHLEVEL := $(TC_PATCHLEVEL) 5EXTRAVERSION := $(TC_EXTRAVERSION) 6 7bdir:=$(obj)/tracecmd 8 9TC_VERSION := $(bdir)/include/tc_version.h 10TARGETS = $(bdir)/trace-cmd $(TC_VERSION) 11 12BUILDGUI := 0 13include $(src)/scripts/utils.mk 14 15CFLAGS += -I$(bdir)/include 16 17TRACE_CMD_OBJS = 18TRACE_CMD_OBJS += trace-cmd.o 19TRACE_CMD_OBJS += trace-record.o 20TRACE_CMD_OBJS += trace-read.o 21TRACE_CMD_OBJS += trace-split.o 22TRACE_CMD_OBJS += trace-listen.o 23TRACE_CMD_OBJS += trace-stack.o 24TRACE_CMD_OBJS += trace-hist.o 25TRACE_CMD_OBJS += trace-mem.o 26TRACE_CMD_OBJS += trace-snapshot.o 27TRACE_CMD_OBJS += trace-stat.o 28TRACE_CMD_OBJS += trace-profile.o 29TRACE_CMD_OBJS += trace-stream.o 30TRACE_CMD_OBJS += trace-record.o 31TRACE_CMD_OBJS += trace-restore.o 32TRACE_CMD_OBJS += trace-check-events.o 33TRACE_CMD_OBJS += trace-show.o 34TRACE_CMD_OBJS += trace-list.o 35TRACE_CMD_OBJS += trace-usage.o 36TRACE_CMD_OBJS += trace-dump.o 37TRACE_CMD_OBJS += trace-clear.o 38TRACE_CMD_OBJS += trace-vm.o 39TRACE_CMD_OBJS += trace-convert.o 40TRACE_CMD_OBJS += trace-attach.o 41TRACE_CMD_OBJS += trace-agent.o 42TRACE_CMD_OBJS += trace-tsync.o 43TRACE_CMD_OBJS += trace-setup-guest.o 44TRACE_CMD_OBJS += trace-sqlhist.o 45ifeq ($(VSOCK_DEFINED), 1) 46TRACE_CMD_OBJS += trace-vsock.o 47endif 48 49ALL_OBJS := $(TRACE_CMD_OBJS:%.o=$(bdir)/%.o) 50 51all_objs := $(sort $(ALL_OBJS)) 52all_deps := $(all_objs:$(bdir)/%.o=$(bdir)/.%.d) 53 54LPTHREAD ?= -lpthread 55LRT ?= -lrt 56 57CONFIG_INCLUDES = 58CONFIG_LIBS = $(LRT) $(LPTHREAD) $(TRACE_LIBS) $(ZLIB_LDLAGS) $(LIBZSTD_LDLAGS) 59CONFIG_FLAGS = 60 61all: $(TARGETS) 62 63$(bdir): 64 @mkdir -p $(bdir) 65 66$(bdir)/include: | $(bdir) 67 @mkdir -p $(bdir)/include 68 69$(TC_VERSION): force | $(bdir)/include 70 $(Q)$(call update_version.h) 71 72$(all_deps): | $(bdir) 73$(all_objs): | $(bdir) 74 75$(bdir)/trace-cmd: $(ALL_OBJS) 76 $(Q)$(do_app_build) 77 78$(bdir)/trace-cmd: $(LIBTRACECMD_STATIC) 79 80$(bdir)/%.o: %.c 81 $(Q)$(call do_compile) 82 83$(all_deps): $(bdir)/.%.d: %.c 84 $(Q)$(CC) -M -MT $(bdir)/$*.o $(CPPFLAGS) $(CFLAGS) $< > $@ 85 86$(all_deps): $(TC_VERSION) 87 88$(all_objs): $(bdir)/%.o : $(bdir)/.%.d 89 90dep_includes := $(wildcard $(DEPS)) 91 92ifneq ($(dep_includes),) 93 include $(dep_includes) 94endif 95 96clean: 97 $(RM) $(bdir)/*.a $(bdir)/*.so $(bdir)/*.o $(bdir)/.*.d $(TARGETS) 98 99force: 100.PHONY: clean 101