1# SPDX-License-Identifier: GPL-2.0-only 2 3ifeq ($(srctree),) 4 srctree := $(patsubst %/,%,$(dir $(CURDIR))) 5 srctree := $(patsubst %/,%,$(dir $(srctree))) 6 srctree := $(patsubst %/,%,$(dir $(srctree))) 7endif 8 9include $(srctree)/tools/scripts/Makefile.include 10 11# O is an alias for OUTPUT 12OUTPUT := $(O) 13 14ifeq ($(OUTPUT),) 15 OUTPUT := $(CURDIR) 16else 17 # subdir is used by the ../Makefile in $(call descend,) 18 ifneq ($(subdir),) 19 OUTPUT := $(OUTPUT)/$(subdir) 20 endif 21endif 22 23ifneq ($(patsubst %/,,$(lastword $(OUTPUT))),) 24 OUTPUT := $(OUTPUT)/ 25endif 26 27LATENCY-COLLECTOR := $(OUTPUT)latency-collector 28LATENCY-COLLECTOR_IN := $(LATENCY-COLLECTOR)-in.o 29 30export CC := gcc 31export LD := ld 32export AR := ar 33export PKG_CONFIG := pkg-config 34 35FEATURE_TESTS := libtraceevent 36FEATURE_TESTS += libtracefs 37FEATURE_DISPLAY := libtraceevent 38FEATURE_DISPLAY += libtracefs 39 40all: $(LATENCY-COLLECTOR) 41 42include $(srctree)/tools/build/Makefile.include 43 44# check for dependencies only on required targets 45NON_CONFIG_TARGETS := clean install 46 47config := 1 48ifdef MAKECMDGOALS 49ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),) 50 config := 0 51endif 52endif 53 54ifeq ($(config),1) 55 include $(srctree)/tools/build/Makefile.feature 56 include Makefile.config 57endif 58 59CFLAGS += $(INCLUDES) $(LIB_INCLUDES) 60 61export CFLAGS OUTPUT srctree 62 63$(LATENCY-COLLECTOR): $(LATENCY-COLLECTOR_IN) 64 $(QUIET_LINK)$(CC) $(LDFLAGS) -o $(LATENCY-COLLECTOR) $(LATENCY-COLLECTOR_IN) $(EXTLIBS) 65 66latency-collector.%: fixdep FORCE 67 make -f $(srctree)/tools/build/Makefile.build dir=. $@ 68 69$(LATENCY-COLLECTOR_IN): fixdep FORCE 70 make $(build)=latency-collector 71 72INSTALL := install 73MKDIR := mkdir 74STRIP := strip 75BINDIR := /usr/bin 76 77install: 78 @$(MKDIR) -p $(DESTDIR)$(BINDIR) 79 $(call QUIET_INSTALL,latency-collector)$(INSTALL) $(LATENCY-COLLECTOR) -m 755 $(DESTDIR)$(BINDIR) 80 @$(STRIP) $(DESTDIR)$(BINDIR)/latency-collector 81 82clean: 83 $(call QUIET_CLEAN, latency-collector) 84 $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete 85 $(Q)@rm -f latency-collector fixdep FEATURE-DUMP 86 $(Q)rm -rf feature 87.PHONY: FORCE clean install 88