Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179# SPDX-License-Identifier: GPL-2.0-only
ifeq ($(srctree),) srctree := $(patsubst %/,%,$(dir $(CURDIR))) srctree := $(patsubst %/,%,$(dir $(srctree))) srctree := $(patsubst %/,%,$(dir $(srctree)))endif
include $(srctree)/tools/scripts/Makefile.include
# O is an alias for OUTPUTOUTPUT := $(O)
ifeq ($(OUTPUT),) OUTPUT := $(CURDIR)else # subdir is used by the ../Makefile in $(call descend,) ifneq ($(subdir),) OUTPUT := $(OUTPUT)/$(subdir) endifendif
ifneq ($(patsubst %/,,$(lastword $(OUTPUT))),) OUTPUT := $(OUTPUT)/endif
RTLA := $(OUTPUT)rtlaRTLA_IN := $(RTLA)-in.o
LIBSUBCMD_DIR = $(srctree)/tools/lib/subcmd/ifneq ($(OUTPUT),) LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmdelse LIBSUBCMD_OUTPUT = $(CURDIR)/libsubcmdendifLIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.aLIBSUBCMD_INCLUDES = $(LIBSUBCMD_OUTPUT)/includeLIBSUBCMD_MAKEFLAGS = O=$(LIBSUBCMD_OUTPUT) DESTDIR=$(LIBSUBCMD_OUTPUT) prefix= subdir=
TOOLS_INCLUDES = -I$(srctree)/tools/include
ifneq ($(OUTPUT),) LIB_OUTPUT = $(abspath $(OUTPUT))/libelse LIB_OUTPUT = $(CURDIR)/libendif
LIB_CTYPE = $(LIB_OUTPUT)/ctype.oLIB_CTYPE_SRC = $(srctree)/tools/lib/ctype.c
LIB_STRING = $(LIB_OUTPUT)/string.oLIB_STRING_SRC = $(srctree)/tools/lib/string.c
LIB_STR_ERROR_R = $(LIB_OUTPUT)/str_error_r.oLIB_STR_ERROR_R_SRC = $(srctree)/tools/lib/str_error_r.c
VERSION := $(shell sh -c "make -sC ../../.. kernelversion | grep -v make")DOCSRC := ../../../Documentation/tools/rtla/
FEATURE_TESTS := libtraceeventFEATURE_TESTS += libtracefsFEATURE_TESTS += libcpupowerFEATURE_TESTS += libcheckFEATURE_TESTS += libbpfFEATURE_TESTS += clang-bpf-co-reFEATURE_TESTS += bpftool-skeletonsFEATURE_DISPLAY := libtraceeventFEATURE_DISPLAY += libtracefsFEATURE_DISPLAY += libcpupowerFEATURE_DISPLAY += libcheckFEATURE_DISPLAY += libbpfFEATURE_DISPLAY += clang-bpf-co-reFEATURE_DISPLAY += bpftool-skeletons
all: $(RTLA)
include $(srctree)/tools/build/Makefile.includeinclude Makefile.rtlainclude tests/unit/Makefile.unit
# check for dependencies only on required targetsNON_CONFIG_TARGETS := clean install tarball doc doc_clean doc_install
config := 1ifdef MAKECMDGOALSifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),) config := 0endifendif
ifeq ($(config),1) include $(srctree)/tools/build/Makefile.feature include Makefile.configendif
CFLAGS += $(INCLUDES) $(LIB_INCLUDES) $(TOOLS_INCLUDES) -I$(LIBSUBCMD_INCLUDES)
export CFLAGS OUTPUT srctree
ifeq ($(BUILD_BPF_SKEL),1)src/timerlat.bpf.o: src/timerlat.bpf.c $(QUIET_CLANG)$(CLANG) -g -O2 -target bpf -c $(filter %.c,$^) -o $@
src/timerlat.skel.h: src/timerlat.bpf.o $(QUIET_GENSKEL)$(SYSTEM_BPFTOOL) gen skeleton $< > $@
example/timerlat_bpf_action.o: example/timerlat_bpf_action.c $(QUIET_CLANG)$(CLANG) -g -O2 -target bpf -c $(filter %.c,$^) -o $@
tests/bpf/bpf_action_map.o: tests/bpf/bpf_action_map.c $(QUIET_CLANG)$(CLANG) -g -O2 -target bpf -c $(filter %.c,$^) -o $@elsesrc/timerlat.skel.h: $(Q)echo '/* BPF skeleton is disabled */' > src/timerlat.skel.h
example/timerlat_bpf_action.o: example/timerlat_bpf_action.c $(Q)echo "BPF skeleton support is disabled, skipping example/timerlat_bpf_action.o"
tests/bpf/bpf_action_map.o: tests/bpf/bpf_action_map.c $(Q)echo "BPF skeleton support is disabled, skipping tests/bpf/bpf_action_map.o"endif
$(RTLA): $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R) $(QUIET_LINK)$(CC) $(LDFLAGS) -o $(RTLA) $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R) $(EXTLIBS)
static: $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R) $(eval LDFLAGS += -static) $(QUIET_LINK)$(CC) -static $(LDFLAGS) -o $(RTLA)-static $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R) $(EXTLIBS)
rtla.%: fixdep FORCE make -f $(srctree)/tools/build/Makefile.build dir=. $@
$(RTLA_IN): fixdep FORCE src/timerlat.skel.h $(LIBSUBCMD_INCLUDES) make $(build)=rtla
$(LIBSUBCMD_OUTPUT): $(Q)$(MKDIR) -p $@
$(LIBSUBCMD_INCLUDES): FORCE | $(LIBSUBCMD_OUTPUT) $(Q)$(MAKE) -C $(LIBSUBCMD_DIR) $(LIBSUBCMD_MAKEFLAGS) \ install_headers
$(LIBSUBCMD): FORCE | $(LIBSUBCMD_OUTPUT) $(Q)$(MAKE) -C $(LIBSUBCMD_DIR) $(LIBSUBCMD_MAKEFLAGS) \ $@
$(LIB_OUTPUT): $(Q)$(MKDIR) -p $@
$(LIB_STR_ERROR_R): $(LIB_STR_ERROR_R_SRC) | $(LIB_OUTPUT) $(QUIET_CC)$(CC) $(CFLAGS) -c -o $@ $<
$(LIB_STRING): $(LIB_STRING_SRC) | $(LIB_OUTPUT) $(QUIET_CC)$(CC) $(CFLAGS) -c -o $@ $<
$(LIB_CTYPE): $(LIB_CTYPE_SRC) | $(LIB_OUTPUT) $(QUIET_CC)$(CC) $(CFLAGS) -c -o $@ $<
libsubcmd-clean: $(call QUIET_CLEAN, libsubcmd) $(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT)
lib-clean: $(call QUIET_CLEAN, lib) $(Q)$(RM) -r -- $(LIB_OUTPUT)
clean: doc_clean fixdep-clean libsubcmd-clean lib-clean $(call QUIET_CLEAN, rtla) $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete $(Q)rm -f rtla rtla-static fixdep FEATURE-DUMP rtla-* $(Q)rm -rf feature $(Q)rm -f src/timerlat.bpf.o src/timerlat.skel.h example/timerlat_bpf_action.o $(Q)rm -f $(UNIT_TESTS)
check: $(RTLA) tests/bpf/bpf_action_map.o RTLA=$(RTLA) BPFTOOL=$(SYSTEM_BPFTOOL) prove -o -f -v tests/examples: example/timerlat_bpf_action.o.PHONY: FORCE clean check