1# SPDX-License-Identifier: LGPL-2.1 2 3include $(src)/scripts/utils.mk 4 5OBJS = 6OBJS += tracefs-utils.o 7OBJS += tracefs-instance.o 8OBJS += tracefs-events.o 9OBJS += tracefs-tools.o 10OBJS += tracefs-marker.o 11OBJS += tracefs-kprobes.o 12OBJS += tracefs-hist.o 13OBJS += tracefs-stats.o 14OBJS += tracefs-filter.o 15OBJS += tracefs-dynevents.o 16OBJS += tracefs-eprobes.o 17OBJS += tracefs-uprobes.o 18OBJS += tracefs-record.o 19OBJS += tracefs-mmap.o 20ifeq ($(VSOCK_DEFINED), 1) 21OBJS += tracefs-vsock.o 22endif 23ifeq ($(PERF_DEFINED), 1) 24OBJS += tracefs-perf.o 25endif 26 27# Order matters for the the three below 28OBJS += sqlhist-lex.o 29OBJS += sqlhist.tab.o 30OBJS += tracefs-sqlhist.o 31 32OBJS := $(OBJS:%.o=$(bdir)/%.o) 33 34$(LIBTRACEFS_STATIC): $(OBJS) 35 $(Q)$(call do_build_static_lib) 36 37$(LIBTRACEFS_SHARED): $(OBJS) 38 $(Q)$(call do_compile_shared_library,$(notdir $(LIBTRACEFS_SHARED_VERSION))) 39 40$(LIBTRACEFS_SHARED_VERSION): $(LIBTRACEFS_SHARED) 41 @ln -sf $(<F) $@ 42 43$(LIBTRACEFS_SHARED_SO): $(LIBTRACEFS_SHARED_VERSION) 44 @ln -sf $(<F) $@ 45 46libtracefs.so: $(LIBTRACEFS_SHARED_SO) 47 48# bison will create both sqlhist.tab.c and sqlhist.tab.h 49sqlhist.tab.h: 50sqlhist.tab.c: sqlhist.y sqlhist.tab.h 51 bison --debug -v --report-file=bison.report -d -o $@ $< 52 53sqlhist-lex.c: sqlhist.l sqlhist.tab.c 54 flex -o $@ $< 55 56$(bdir)/%.o: %.c 57 $(Q)$(call do_fpic_compile) 58 59tracefs-sqlhist.o: sqlhist.tab.h 60 61$(OBJS): | $(bdir) 62 63clean: 64 $(Q)$(call do_clean,$(OBJS) .*.d) 65 66-include .*.d 67 68$(bdir)/tracefs-sqlhist.o tracefs-sqlhist.o: sqlhist.tab.h 69 70.PHONY: $(LIBTRACEFS_SHARED_SO) $(LIBTRACEFS_STATIC) 71