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-agent.o 41TRACE_CMD_OBJS += trace-setup-guest.o 42ifeq ($(VSOCK_DEFINED), 1) 43TRACE_CMD_OBJS += trace-vsock.o 44endif 45 46ALL_OBJS := $(TRACE_CMD_OBJS:%.o=$(bdir)/%.o) 47 48all_objs := $(sort $(ALL_OBJS)) 49all_deps := $(all_objs:$(bdir)/%.o=$(bdir)/.%.d) 50 51CONFIG_INCLUDES = 52CONFIG_LIBS = -lrt -lpthread $(TRACE_LIBS) $(LIBZSTD_LDLAGS) 53CONFIG_FLAGS = 54 55ifeq ($(ZLIB_INSTALLED), 1) 56CONFIG_LIBS += -lz 57endif 58 59all: $(TARGETS) 60 61$(bdir): 62 @mkdir -p $(bdir) 63 64$(bdir)/include: | $(bdir) 65 @mkdir -p $(bdir)/include 66 67$(TC_VERSION): force | $(bdir)/include 68 $(Q)$(call update_version.h) 69 70$(all_deps): | $(bdir) 71$(all_objs): | $(bdir) 72 73$(bdir)/trace-cmd: $(ALL_OBJS) 74 $(Q)$(do_app_build) 75 76$(bdir)/trace-cmd: $(LIBTRACECMD_STATIC) 77 78$(bdir)/%.o: %.c 79 $(Q)$(call do_compile) 80 81$(all_deps): $(bdir)/.%.d: %.c 82 $(Q)$(CC) -M -MT $(bdir)/$*.o $(CPPFLAGS) $(CFLAGS) $< > $@ 83 84$(all_deps): $(TC_VERSION) 85 86$(all_objs): $(bdir)/%.o : $(bdir)/.%.d 87 88dep_includes := $(wildcard $(DEPS)) 89 90ifneq ($(dep_includes),) 91 include $(dep_includes) 92endif 93 94clean: 95 $(RM) $(bdir)/*.a $(bdir)/*.so $(bdir)/*.o $(bdir)/.*.d $(TARGETS) 96 97force: 98.PHONY: clean 99