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