1012e4e77SDaniel Bristot de Oliveira# SPDX-License-Identifier: GPL-2.0-only 24bc4b131SDaniel Bristot de Oliveira 3012e4e77SDaniel Bristot de Oliveiraifeq ($(srctree),) 4012e4e77SDaniel Bristot de Oliveira srctree := $(patsubst %/,%,$(dir $(CURDIR))) 5012e4e77SDaniel Bristot de Oliveira srctree := $(patsubst %/,%,$(dir $(srctree))) 6012e4e77SDaniel Bristot de Oliveira srctree := $(patsubst %/,%,$(dir $(srctree))) 7f9b2c871SDaniel Bristot de Oliveiraendif 8f9b2c871SDaniel Bristot de Oliveira 9012e4e77SDaniel Bristot de Oliveirainclude $(srctree)/tools/scripts/Makefile.include 104bc4b131SDaniel Bristot de Oliveira 11012e4e77SDaniel Bristot de Oliveira# O is an alias for OUTPUT 12012e4e77SDaniel Bristot de OliveiraOUTPUT := $(O) 134bc4b131SDaniel Bristot de Oliveira 14012e4e77SDaniel Bristot de Oliveiraifeq ($(OUTPUT),) 15012e4e77SDaniel Bristot de Oliveira OUTPUT := $(CURDIR)/ 16afc70ccbSDaniel Bristot de Oliveiraelse 17012e4e77SDaniel Bristot de Oliveira # subdir is used by the ../Makefile in $(call descend,) 18012e4e77SDaniel Bristot de Oliveira ifneq ($(subdir),) 19012e4e77SDaniel Bristot de Oliveira OUTPUT := $(OUTPUT)/$(subdir) 20012e4e77SDaniel Bristot de Oliveira endif 21afc70ccbSDaniel Bristot de Oliveiraendif 22afc70ccbSDaniel Bristot de Oliveira 23012e4e77SDaniel Bristot de Oliveiraifneq ($(patsubst %/,,$(lastword $(OUTPUT))),) 24012e4e77SDaniel Bristot de Oliveira OUTPUT := $(OUTPUT)/ 254bc4b131SDaniel Bristot de Oliveiraendif 264bc4b131SDaniel Bristot de Oliveira 27012e4e77SDaniel Bristot de OliveiraRV := $(OUTPUT)rv 28012e4e77SDaniel Bristot de OliveiraRV_IN := $(RV)-in.o 29012e4e77SDaniel Bristot de Oliveira 30012e4e77SDaniel Bristot de OliveiraVERSION := $(shell sh -c "make -sC ../../.. kernelversion | grep -v make") 31012e4e77SDaniel Bristot de OliveiraDOCSRC := ../../../Documentation/tools/rv/ 32012e4e77SDaniel Bristot de Oliveira 33012e4e77SDaniel Bristot de OliveiraFEATURE_TESTS := libtraceevent 34012e4e77SDaniel Bristot de OliveiraFEATURE_TESTS += libtracefs 35012e4e77SDaniel Bristot de OliveiraFEATURE_DISPLAY := libtraceevent 36012e4e77SDaniel Bristot de OliveiraFEATURE_DISPLAY += libtracefs 37012e4e77SDaniel Bristot de Oliveira 38012e4e77SDaniel Bristot de Oliveiraall: $(RV) 394bc4b131SDaniel Bristot de Oliveira 40012e4e77SDaniel Bristot de Oliveirainclude $(srctree)/tools/build/Makefile.include 41012e4e77SDaniel Bristot de Oliveirainclude Makefile.rv 424bc4b131SDaniel Bristot de Oliveira 43012e4e77SDaniel Bristot de Oliveira# check for dependencies only on required targets 44012e4e77SDaniel Bristot de OliveiraNON_CONFIG_TARGETS := clean install doc doc_clean doc_install 454bc4b131SDaniel Bristot de Oliveira 46012e4e77SDaniel Bristot de Oliveiraconfig := 1 47012e4e77SDaniel Bristot de Oliveiraifdef MAKECMDGOALS 48012e4e77SDaniel Bristot de Oliveira ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),) 49012e4e77SDaniel Bristot de Oliveira config := 0 50012e4e77SDaniel Bristot de Oliveiraendif 514bc4b131SDaniel Bristot de Oliveiraendif 524bc4b131SDaniel Bristot de Oliveira 53012e4e77SDaniel Bristot de Oliveiraifeq ($(config),1) 54012e4e77SDaniel Bristot de Oliveira include $(srctree)/tools/build/Makefile.feature 55012e4e77SDaniel Bristot de Oliveira include Makefile.config 56012e4e77SDaniel Bristot de Oliveiraendif 574bc4b131SDaniel Bristot de Oliveira 58012e4e77SDaniel Bristot de OliveiraCFLAGS += $(INCLUDES) $(LIB_INCLUDES) 594bc4b131SDaniel Bristot de Oliveira 60012e4e77SDaniel Bristot de Oliveiraexport CFLAGS OUTPUT srctree 614bc4b131SDaniel Bristot de Oliveira 62012e4e77SDaniel Bristot de Oliveira$(RV): $(RV_IN) 63012e4e77SDaniel Bristot de Oliveira $(QUIET_LINK)$(CC) $(LDFLAGS) -o $(RV) $(RV_IN) $(EXTLIBS) 64afc70ccbSDaniel Bristot de Oliveira 65012e4e77SDaniel Bristot de Oliveirastatic: $(RV_IN) 66012e4e77SDaniel Bristot de Oliveira $(eval LDFLAGS += -static) 67012e4e77SDaniel Bristot de Oliveira $(QUIET_LINK)$(CC) $(LDFLAGS) -o $(RV)-static $(RV_IN) $(EXTLIBS) 68afc70ccbSDaniel Bristot de Oliveira 69012e4e77SDaniel Bristot de Oliveirarv.%: fixdep FORCE 70012e4e77SDaniel Bristot de Oliveira make -f $(srctree)/tools/build/Makefile.build dir=. $@ 71afc70ccbSDaniel Bristot de Oliveira 72012e4e77SDaniel Bristot de Oliveira$(RV_IN): fixdep FORCE 73012e4e77SDaniel Bristot de Oliveira make $(build)=rv 74012e4e77SDaniel Bristot de Oliveira 75012e4e77SDaniel Bristot de Oliveiraclean: doc_clean fixdep-clean 76012e4e77SDaniel Bristot de Oliveira $(call QUIET_CLEAN, rv) 77012e4e77SDaniel Bristot de Oliveira $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete 78012e4e77SDaniel Bristot de Oliveira $(Q)rm -f rv rv-static fixdep FEATURE-DUMP rv-* 79012e4e77SDaniel Bristot de Oliveira $(Q)rm -rf feature 80012e4e77SDaniel Bristot de Oliveira 81*92f0ce55SGabriele Monacocheck: $(RV) 82*92f0ce55SGabriele Monaco RV=$(RV) prove -o --directives -f tests/ 83*92f0ce55SGabriele Monaco 84*92f0ce55SGabriele Monaco.PHONY: FORCE clean check 85