xref: /linux/tools/verification/rv/Makefile (revision 67f8bc848ee31831336bd478e57d2f993551902e)
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