xref: /linux/tools/tracing/latency/Makefile (revision 9f5270d758d955506dcb114cb863a86b30a4c783)
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