1*2b9843fbSBriana Oursler# SPDX-License-Identifier: GPL-2.0 2*2b9843fbSBriana Oursler 3*2b9843fbSBriana Ourslertop_srcdir = $(abspath ../../../..) 4*2b9843fbSBriana OurslerAPIDIR := $(top_scrdir)/include/uapi 5*2b9843fbSBriana OurslerTEST_GEN_FILES = action.o 6*2b9843fbSBriana Oursler 7*2b9843fbSBriana OurslerKSFT_KHDR_INSTALL := 1 8*2b9843fbSBriana Ourslerinclude ../lib.mk 9*2b9843fbSBriana Oursler 10*2b9843fbSBriana OurslerCLANG ?= clang 11*2b9843fbSBriana OurslerLLC ?= llc 12*2b9843fbSBriana OurslerPROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1) 13*2b9843fbSBriana Oursler 14*2b9843fbSBriana Ourslerifeq ($(PROBE),) 15*2b9843fbSBriana Oursler CPU ?= probe 16*2b9843fbSBriana Ourslerelse 17*2b9843fbSBriana Oursler CPU ?= generic 18*2b9843fbSBriana Ourslerendif 19*2b9843fbSBriana Oursler 20*2b9843fbSBriana OurslerCLANG_SYS_INCLUDES := $(shell $(CLANG) -v -E - </dev/null 2>&1 \ 21*2b9843fbSBriana Oursler | sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }') 22*2b9843fbSBriana Oursler 23*2b9843fbSBriana OurslerCLANG_FLAGS = -I. -I$(APIDIR) \ 24*2b9843fbSBriana Oursler $(CLANG_SYS_INCLUDES) \ 25*2b9843fbSBriana Oursler -Wno-compare-distinct-pointer-types 26*2b9843fbSBriana Oursler 27*2b9843fbSBriana Oursler$(OUTPUT)/%.o: %.c 28*2b9843fbSBriana Oursler $(CLANG) $(CLANG_FLAGS) \ 29*2b9843fbSBriana Oursler -O2 -target bpf -emit-llvm -c $< -o - | \ 30*2b9843fbSBriana Oursler $(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@ 31*2b9843fbSBriana Oursler 32*2b9843fbSBriana OurslerTEST_PROGS += ./tdc.sh 33*2b9843fbSBriana OurslerTEST_FILES := tdc*.py Tdc*.py plugins plugin-lib tc-tests 34