xref: /linux/tools/verification/rv/Makefile (revision 357660d7596bd40d1004762739e426b1fbe10a14)
1*012e4e77SDaniel Bristot de Oliveira# SPDX-License-Identifier: GPL-2.0-only
24bc4b131SDaniel Bristot de Oliveira
3*012e4e77SDaniel Bristot de Oliveiraifeq ($(srctree),)
4*012e4e77SDaniel Bristot de Oliveira  srctree	:= $(patsubst %/,%,$(dir $(CURDIR)))
5*012e4e77SDaniel Bristot de Oliveira  srctree	:= $(patsubst %/,%,$(dir $(srctree)))
6*012e4e77SDaniel Bristot de Oliveira  srctree	:= $(patsubst %/,%,$(dir $(srctree)))
7f9b2c871SDaniel Bristot de Oliveiraendif
8f9b2c871SDaniel Bristot de Oliveira
9*012e4e77SDaniel Bristot de Oliveirainclude $(srctree)/tools/scripts/Makefile.include
104bc4b131SDaniel Bristot de Oliveira
11*012e4e77SDaniel Bristot de Oliveira# O is an alias for OUTPUT
12*012e4e77SDaniel Bristot de OliveiraOUTPUT          := $(O)
134bc4b131SDaniel Bristot de Oliveira
14*012e4e77SDaniel Bristot de Oliveiraifeq ($(OUTPUT),)
15*012e4e77SDaniel Bristot de Oliveira  OUTPUT       := $(CURDIR)/
16afc70ccbSDaniel Bristot de Oliveiraelse
17*012e4e77SDaniel Bristot de Oliveira  # subdir is used by the ../Makefile in $(call descend,)
18*012e4e77SDaniel Bristot de Oliveira  ifneq ($(subdir),)
19*012e4e77SDaniel Bristot de Oliveira    OUTPUT        := $(OUTPUT)/$(subdir)
20*012e4e77SDaniel Bristot de Oliveira  endif
21afc70ccbSDaniel Bristot de Oliveiraendif
22afc70ccbSDaniel Bristot de Oliveira
23*012e4e77SDaniel Bristot de Oliveiraifneq ($(patsubst %/,,$(lastword $(OUTPUT))),)
24*012e4e77SDaniel Bristot de Oliveira  OUTPUT := $(OUTPUT)/
254bc4b131SDaniel Bristot de Oliveiraendif
264bc4b131SDaniel Bristot de Oliveira
27*012e4e77SDaniel Bristot de OliveiraRV		:= $(OUTPUT)rv
28*012e4e77SDaniel Bristot de OliveiraRV_IN		:= $(RV)-in.o
29*012e4e77SDaniel Bristot de Oliveira
30*012e4e77SDaniel Bristot de OliveiraVERSION		:= $(shell sh -c "make -sC ../../.. kernelversion | grep -v make")
31*012e4e77SDaniel Bristot de OliveiraDOCSRC		:= ../../../Documentation/tools/rv/
32*012e4e77SDaniel Bristot de Oliveira
33*012e4e77SDaniel Bristot de OliveiraFEATURE_TESTS	:= libtraceevent
34*012e4e77SDaniel Bristot de OliveiraFEATURE_TESTS	+= libtracefs
35*012e4e77SDaniel Bristot de OliveiraFEATURE_DISPLAY	:= libtraceevent
36*012e4e77SDaniel Bristot de OliveiraFEATURE_DISPLAY	+= libtracefs
37*012e4e77SDaniel Bristot de Oliveira
38*012e4e77SDaniel Bristot de Oliveiraall: $(RV)
394bc4b131SDaniel Bristot de Oliveira
40*012e4e77SDaniel Bristot de Oliveirainclude $(srctree)/tools/build/Makefile.include
41*012e4e77SDaniel Bristot de Oliveirainclude Makefile.rv
424bc4b131SDaniel Bristot de Oliveira
43*012e4e77SDaniel Bristot de Oliveira# check for dependencies only on required targets
44*012e4e77SDaniel Bristot de OliveiraNON_CONFIG_TARGETS := clean install doc doc_clean doc_install
454bc4b131SDaniel Bristot de Oliveira
46*012e4e77SDaniel Bristot de Oliveiraconfig		:= 1
47*012e4e77SDaniel Bristot de Oliveiraifdef MAKECMDGOALS
48*012e4e77SDaniel Bristot de Oliveira  ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
49*012e4e77SDaniel Bristot de Oliveira  config	:= 0
50*012e4e77SDaniel Bristot de Oliveiraendif
514bc4b131SDaniel Bristot de Oliveiraendif
524bc4b131SDaniel Bristot de Oliveira
53*012e4e77SDaniel Bristot de Oliveiraifeq ($(config),1)
54*012e4e77SDaniel Bristot de Oliveira  include $(srctree)/tools/build/Makefile.feature
55*012e4e77SDaniel Bristot de Oliveira  include Makefile.config
56*012e4e77SDaniel Bristot de Oliveiraendif
574bc4b131SDaniel Bristot de Oliveira
58*012e4e77SDaniel Bristot de OliveiraCFLAGS		+= $(INCLUDES) $(LIB_INCLUDES)
594bc4b131SDaniel Bristot de Oliveira
60*012e4e77SDaniel Bristot de Oliveiraexport CFLAGS OUTPUT srctree
614bc4b131SDaniel Bristot de Oliveira
62*012e4e77SDaniel Bristot de Oliveira$(RV): $(RV_IN)
63*012e4e77SDaniel Bristot de Oliveira	$(QUIET_LINK)$(CC) $(LDFLAGS) -o $(RV) $(RV_IN) $(EXTLIBS)
64afc70ccbSDaniel Bristot de Oliveira
65*012e4e77SDaniel Bristot de Oliveirastatic: $(RV_IN)
66*012e4e77SDaniel Bristot de Oliveira	$(eval LDFLAGS += -static)
67*012e4e77SDaniel Bristot de Oliveira	$(QUIET_LINK)$(CC) $(LDFLAGS) -o $(RV)-static $(RV_IN) $(EXTLIBS)
68afc70ccbSDaniel Bristot de Oliveira
69*012e4e77SDaniel Bristot de Oliveirarv.%: fixdep FORCE
70*012e4e77SDaniel Bristot de Oliveira	make -f $(srctree)/tools/build/Makefile.build dir=. $@
71afc70ccbSDaniel Bristot de Oliveira
72*012e4e77SDaniel Bristot de Oliveira$(RV_IN): fixdep FORCE
73*012e4e77SDaniel Bristot de Oliveira	make $(build)=rv
74*012e4e77SDaniel Bristot de Oliveira
75*012e4e77SDaniel Bristot de Oliveiraclean: doc_clean fixdep-clean
76*012e4e77SDaniel Bristot de Oliveira	$(call QUIET_CLEAN, rv)
77*012e4e77SDaniel Bristot de Oliveira	$(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
78*012e4e77SDaniel Bristot de Oliveira	$(Q)rm -f rv rv-static fixdep FEATURE-DUMP rv-*
79*012e4e77SDaniel Bristot de Oliveira	$(Q)rm -rf feature
80*012e4e77SDaniel Bristot de Oliveira
81*012e4e77SDaniel Bristot de Oliveira.PHONY: FORCE clean
82