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