mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-05-09 21:42:09 +02:00
5519b69183
If libperl is installed then the perf tool build will build against
it. There appears to be limited interest in the scripting support for
perl so let's make it opt-in and deprecate it.
With this patch applied you need to add LIBPERL=1 to get libperl
support in perf - there is no warning if libperl is missing, but
building will fail if libperl is missing and the build has LIBPERL=1.
The perf version output is changed to:
```
$ perf version --build-options
perf version 6.17.rc3.g8eca69269947
aio: [ on ] # HAVE_AIO_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
bpf_skeletons: [ on ] # HAVE_BPF_SKEL
debuginfod: [ on ] # HAVE_DEBUGINFOD_SUPPORT
dwarf: [ on ] # HAVE_LIBDW_SUPPORT
dwarf_getlocations: [ on ] # HAVE_LIBDW_SUPPORT
dwarf-unwind: [ on ] # HAVE_DWARF_UNWIND_SUPPORT
auxtrace: [ on ] # HAVE_AUXTRACE_SUPPORT
libbfd: [ OFF ] # HAVE_LIBBFD_SUPPORT ( tip: Deprecated, license incompatibility, use BUILD_NONDISTRO=1 and install binutils-dev[el] )
libbpf-strings: [ on ] # HAVE_LIBBPF_STRINGS_SUPPORT
libcapstone: [ on ] # HAVE_LIBCAPSTONE_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_LIBDW_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
libopencsd: [ OFF ] # HAVE_CSTRACE_SUPPORT
libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT ( tip:
Deprecated, use LIBPERL=1 and install libperl-dev to build with it )
libpfm4: [ on ] # HAVE_LIBPFM
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libtraceevent: [ on ] # HAVE_LIBTRACEEVENT
libunwind: [ OFF ] # HAVE_LIBUNWIND_SUPPORT ( tip:
Deprecated, use LIBUNWIND=1 and install libunwind-dev[el] to build
with it )
lzma: [ on ] # HAVE_LZMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
zstd: [ on ] # HAVE_ZSTD_SUPPORT
```
i.e. there is a tip saying about deprecation and how to get support
back.
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Charlie Jenkins <charlie@rivosinc.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Leo Yan <leo.yan@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Monnet <qmo@kernel.org>
Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Tomas Glozar <tglozar@redhat.com>
Cc: Yuzhuo Jing <yuzhuo@google.com>
Link: https://lore.kernel.org/lkml/aMrk03gigBlGcYLK@x1/
Link: https://lore.kernel.org/lkml/CAP-5=fVX+bLBRJCiziDi_hBySgv2NFtDoghtpheSSxVAvvETGw@mail.gmail.com
[ Keep the pre-existing perl-ExtUtils-Embed hint for Fedora/RHEL systems ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
417 lines
13 KiB
Plaintext
417 lines
13 KiB
Plaintext
include ../scripts/Makefile.include
|
|
|
|
ifndef MK
|
|
ifeq ($(MAKECMDGOALS),)
|
|
# no target specified, trigger the whole suite
|
|
all:
|
|
@echo "Testing Makefile"; $(MAKE) -sf tests/make MK=Makefile
|
|
@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1 SET_O=1
|
|
else
|
|
# run only specific test over 'Makefile'
|
|
%:
|
|
@echo "Testing Makefile"; $(MAKE) -sf tests/make MK=Makefile $@
|
|
endif
|
|
else
|
|
PERF := .
|
|
PERF_O := $(PERF)
|
|
O_OPT :=
|
|
FULL_O := $(shell readlink -f $(PERF_O) || echo $(PERF_O))
|
|
|
|
ifneq ($(O),)
|
|
FULL_O := $(shell readlink -f $(O) || echo $(O))
|
|
PERF_O := $(FULL_O)
|
|
ifeq ($(SET_O),1)
|
|
O_OPT := 'O=$(FULL_O)'
|
|
endif
|
|
K_O_OPT := 'O=$(FULL_O)'
|
|
endif
|
|
|
|
PARALLEL_OPT=
|
|
ifeq ($(SET_PARALLEL),1)
|
|
ifeq ($(JOBS),)
|
|
cores := $(shell (getconf _NPROCESSORS_ONLN || grep -E -c '^processor|^CPU[0-9]' /proc/cpuinfo) 2>/dev/null)
|
|
ifeq ($(cores),0)
|
|
cores := 1
|
|
endif
|
|
else
|
|
cores=$(JOBS)
|
|
endif
|
|
PARALLEL_OPT="-j$(cores)"
|
|
endif
|
|
|
|
# As per kernel Makefile, avoid funny character set dependencies
|
|
unexport LC_ALL
|
|
LC_COLLATE=C
|
|
LC_NUMERIC=C
|
|
export LC_COLLATE LC_NUMERIC
|
|
|
|
ifeq ($(srctree),)
|
|
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
|
|
srctree := $(patsubst %/,%,$(dir $(srctree)))
|
|
#$(info Determined 'srctree' to be $(srctree))
|
|
endif
|
|
|
|
include $(srctree)/tools/scripts/Makefile.arch
|
|
|
|
# FIXME looks like x86 is the only arch running tests ;-)
|
|
# we need some IS_(32/64) flag to make this generic
|
|
ifeq ($(ARCH)$(IS_64_BIT), x861)
|
|
lib = lib64
|
|
else
|
|
lib = lib
|
|
endif
|
|
|
|
has = $(shell which $1 2>/dev/null)
|
|
python_perf_so := $(shell $(MAKE) python_perf_target|grep "Target is:"|awk '{print $$3}')
|
|
|
|
# standard single make variable specified
|
|
make_clean_all := clean all
|
|
make_python_perf_so := $(python_perf_so)
|
|
make_debug := DEBUG=1
|
|
make_nondistro := BUILD_NONDISTRO=1
|
|
make_extra_tests := EXTRA_TESTS=1
|
|
make_jevents_all := JEVENTS_ARCH=all
|
|
make_no_bpf_skel := BUILD_BPF_SKEL=0
|
|
make_gen_vmlinux_h := GEN_VMLINUX_H=1
|
|
make_libperl := LIBPERL=1
|
|
make_no_libpython := NO_LIBPYTHON=1
|
|
make_no_scripts := NO_LIBPYTHON=1
|
|
make_no_slang := NO_SLANG=1
|
|
make_no_gtk2 := NO_GTK2=1
|
|
make_no_ui := NO_SLANG=1 NO_GTK2=1
|
|
make_no_demangle := NO_DEMANGLE=1
|
|
make_no_libelf := NO_LIBELF=1
|
|
make_no_libdw := NO_LIBDW=1
|
|
make_libunwind := LIBUNWIND=1
|
|
make_no_libdw_dwarf_unwind := NO_LIBDW_DWARF_UNWIND=1
|
|
make_no_backtrace := NO_BACKTRACE=1
|
|
make_no_libcapstone := NO_CAPSTONE=1
|
|
make_no_libnuma := NO_LIBNUMA=1
|
|
make_no_libbionic := NO_LIBBIONIC=1
|
|
make_no_auxtrace := NO_AUXTRACE=1
|
|
make_no_libbpf := NO_LIBBPF=1
|
|
make_libbpf_dynamic := LIBBPF_DYNAMIC=1
|
|
make_no_libbpf_DEBUG := NO_LIBBPF=1 DEBUG=1
|
|
make_no_libllvm := NO_LIBLLVM=1
|
|
make_with_babeltrace:= LIBBABELTRACE=1
|
|
make_with_coresight := CORESIGHT=1
|
|
make_no_sdt := NO_SDT=1
|
|
make_no_libpfm4 := NO_LIBPFM4=1
|
|
make_with_gtk2 := GTK2=1
|
|
make_refcnt_check := EXTRA_CFLAGS="-DREFCNT_CHECKING=1"
|
|
make_tags := tags
|
|
make_cscope := cscope
|
|
make_help := help
|
|
make_doc := doc
|
|
make_perf_o := perf.o
|
|
make_util_map_o := util/map.o
|
|
make_util_pmu_bison_o := util/pmu-bison.o
|
|
make_install := install
|
|
make_install_bin := install-bin
|
|
make_install_doc := install-doc
|
|
make_install_man := install-man
|
|
make_install_html := install-html
|
|
make_install_info := install-info
|
|
make_install_pdf := install-pdf
|
|
make_install_prefix := install prefix=/tmp/krava
|
|
make_install_prefix_slash := install prefix=/tmp/krava/
|
|
make_static := LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 NO_LIBTRACEEVENT=1 NO_LIBELF=1
|
|
|
|
# all the NO_* variable combined
|
|
make_minimal := NO_LIBPYTHON=1 NO_GTK2=1
|
|
make_minimal += NO_DEMANGLE=1 NO_LIBELF=1 NO_BACKTRACE=1
|
|
make_minimal += NO_LIBNUMA=1 NO_LIBBIONIC=1 NO_LIBDW=1
|
|
make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1
|
|
make_minimal += NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1
|
|
make_minimal += NO_LIBCAP=1 NO_CAPSTONE=1
|
|
|
|
# $(run) contains all available tests
|
|
run := make_pure
|
|
# Targets 'clean all' can be run together only through top level
|
|
# Makefile because we detect clean target in Makefile.perf and
|
|
# disable features detection
|
|
ifeq ($(MK),Makefile)
|
|
run += make_clean_all
|
|
MAKE_F := $(MAKE)
|
|
else
|
|
MAKE_F := $(MAKE) -f $(MK)
|
|
endif
|
|
run += make_python_perf_so
|
|
run += make_debug
|
|
run += make_nondistro
|
|
run += make_extra_tests
|
|
run += make_jevents_all
|
|
run += make_no_bpf_skel
|
|
run += make_gen_vmlinux_h
|
|
run += make_libperl
|
|
run += make_no_libpython
|
|
run += make_no_scripts
|
|
run += make_no_slang
|
|
run += make_no_gtk2
|
|
run += make_no_ui
|
|
run += make_no_demangle
|
|
run += make_no_libelf
|
|
run += make_no_libdw
|
|
run += make_libunwind
|
|
run += make_no_libdw_dwarf_unwind
|
|
run += make_no_backtrace
|
|
run += make_no_libcapstone
|
|
run += make_no_libnuma
|
|
run += make_no_libbionic
|
|
run += make_no_auxtrace
|
|
run += make_no_libbpf
|
|
run += make_no_libbpf_DEBUG
|
|
run += make_no_libllvm
|
|
run += make_no_sdt
|
|
run += make_no_syscall_tbl
|
|
run += make_with_babeltrace
|
|
run += make_with_coresight
|
|
run += make_with_clangllvm
|
|
run += make_no_libpfm4
|
|
run += make_refcnt_check
|
|
run += make_help
|
|
run += make_doc
|
|
run += make_perf_o
|
|
run += make_util_map_o
|
|
run += make_util_pmu_bison_o
|
|
run += make_install
|
|
run += make_install_bin
|
|
run += make_install_prefix
|
|
run += make_install_prefix_slash
|
|
# FIXME 'install-*' commented out till they're fixed
|
|
# run += make_install_doc
|
|
# run += make_install_man
|
|
# run += make_install_html
|
|
# run += make_install_info
|
|
# run += make_install_pdf
|
|
run += make_minimal
|
|
|
|
old_libbpf := $(shell echo '\#include <bpf/libbpf.h>' | $(CC) -E -dM -x c -| grep -q -E "define[[:space:]]+LIBBPF_MAJOR_VERSION[[:space:]]+0{1}")
|
|
|
|
ifneq ($(old_libbpf),)
|
|
run += make_libbpf_dynamic
|
|
endif
|
|
|
|
ifneq ($(call has,ctags),)
|
|
run += make_tags
|
|
endif
|
|
ifneq ($(call has,cscope),)
|
|
run += make_cscope
|
|
endif
|
|
|
|
# $(run_O) contains same portion of $(run) tests with '_O' attached
|
|
# to distinguish O=... tests
|
|
run_O := $(addsuffix _O,$(run))
|
|
|
|
# disable some tests for O=...
|
|
run_O := $(filter-out make_python_perf_so_O,$(run_O))
|
|
|
|
# define test for each compile as 'test_NAME' variable
|
|
# with the test itself as a value
|
|
test_make_tags = test -f tags
|
|
test_make_cscope = test -f cscope.out
|
|
|
|
test_make_tags_O := $(test_make_tags)
|
|
test_make_cscope_O := $(test_make_cscope)
|
|
|
|
test_ok := true
|
|
test_make_help := $(test_ok)
|
|
test_make_doc := $(test_ok)
|
|
test_make_help_O := $(test_ok)
|
|
test_make_doc_O := $(test_ok)
|
|
|
|
test_make_python_perf_so := test -f $(PERF_O)/$(python_perf_so)
|
|
|
|
test_make_perf_o := test -f $(PERF_O)/perf.o
|
|
test_make_util_map_o := test -f $(PERF_O)/util/map.o
|
|
test_make_util_pmu_bison_o := test -f $(PERF_O)/util/pmu-bison.o
|
|
|
|
define test_dest_files
|
|
for file in $(1); do \
|
|
if [ ! -x $$TMP_DEST/$$file ]; then \
|
|
echo " failed to find: $$file"; \
|
|
fi \
|
|
done
|
|
endef
|
|
|
|
installed_files_bin := bin/perf
|
|
installed_files_bin += etc/bash_completion.d/perf
|
|
installed_files_bin += libexec/perf-core/perf-archive
|
|
|
|
installed_files_all := $(installed_files_bin)
|
|
|
|
test_make_install := $(call test_dest_files,$(installed_files_all))
|
|
test_make_install_O := $(call test_dest_files,$(installed_files_all))
|
|
test_make_install_bin := $(call test_dest_files,$(installed_files_bin))
|
|
test_make_install_bin_O := $(call test_dest_files,$(installed_files_bin))
|
|
|
|
# We prefix all installed files for make_install_prefix(_slash)
|
|
# with '/tmp/krava' to match installed/prefix-ed files.
|
|
installed_files_all_prefix := $(addprefix /tmp/krava/,$(installed_files_all))
|
|
test_make_install_prefix := $(call test_dest_files,$(installed_files_all_prefix))
|
|
test_make_install_prefix_O := $(call test_dest_files,$(installed_files_all_prefix))
|
|
|
|
test_make_install_prefix_slash := $(test_make_install_prefix)
|
|
test_make_install_prefix_slash_O := $(test_make_install_prefix_O)
|
|
|
|
# FIXME nothing gets installed
|
|
test_make_install_man := test -f $$TMP_DEST/share/man/man1/perf.1
|
|
test_make_install_man_O := $(test_make_install_man)
|
|
|
|
# FIXME nothing gets installed
|
|
test_make_install_doc := $(test_ok)
|
|
test_make_install_doc_O := $(test_ok)
|
|
|
|
# FIXME nothing gets installed
|
|
test_make_install_html := $(test_ok)
|
|
test_make_install_html_O := $(test_ok)
|
|
|
|
# FIXME nothing gets installed
|
|
test_make_install_info := $(test_ok)
|
|
test_make_install_info_O := $(test_ok)
|
|
|
|
# FIXME nothing gets installed
|
|
test_make_install_pdf := $(test_ok)
|
|
test_make_install_pdf_O := $(test_ok)
|
|
|
|
test_make_libbpf_dynamic := ldd $(PERF_O)/perf | grep -q libbpf
|
|
test_make_libbpf_dynamic_O := ldd $$TMP_O/perf | grep -q libbpf
|
|
|
|
test_make_python_perf_so_O := test -f $$TMP_O/python/perf.so
|
|
test_make_perf_o_O := test -f $$TMP_O/perf.o
|
|
test_make_util_map_o_O := test -f $$TMP_O/util/map.o
|
|
test_make_util_pmu_bison_o_O := test -f $$TMP_O/util/pmu-bison.o
|
|
|
|
test_default = test -x $(PERF_O)/perf
|
|
test = $(if $(test_$1),$(test_$1),$(test_default))
|
|
|
|
test_default_O = test -x $$TMP_O/perf
|
|
test_O = $(if $(test_$1),$(test_$1),$(test_default_O))
|
|
|
|
all:
|
|
|
|
ifdef SHUF
|
|
run := $(shell shuf -e $(run))
|
|
run_O := $(shell shuf -e $(run_O))
|
|
endif
|
|
|
|
max_width := $(shell echo $(run_O) | sed 's/ /\n/g' | wc -L)
|
|
|
|
ifdef DEBUG
|
|
d := $(info run $(run))
|
|
d := $(info run_O $(run_O))
|
|
endif
|
|
|
|
MAKEFLAGS := --no-print-directory
|
|
|
|
clean := @(cd $(PERF); $(MAKE_F) -s $(O_OPT) clean >/dev/null && $(MAKE) -s $(O_OPT) -C ../build clean >/dev/null)
|
|
|
|
$(run):
|
|
$(call clean)
|
|
@TMP_DEST=$$(mktemp -d); \
|
|
cmd="cd $(PERF) && $(MAKE_F) $($@) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST"; \
|
|
printf "%*.*s: %s\n" $(max_width) $(max_width) "$@" "$$cmd" && echo $$cmd > $@ && \
|
|
( eval $$cmd ) >> $@ 2>&1; \
|
|
echo " test: $(call test,$@)" >> $@ 2>&1; \
|
|
$(call test,$@) && \
|
|
rm -rf $@ $$TMP_DEST || (cat $@ ; false)
|
|
|
|
make_with_gtk2:
|
|
$(call clean)
|
|
@TMP_DEST=$$(mktemp -d); \
|
|
cmd="cd $(PERF) && $(MAKE_F) $($@) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST"; \
|
|
printf "%*.*s: %s\n" $(max_width) $(max_width) "$@" "$$cmd" && echo $$cmd > $@ && \
|
|
( eval $$cmd ) >> $@ 2>&1; \
|
|
echo " test: $(call test,$@)" >> $@ 2>&1; \
|
|
$(call test,$@) && \
|
|
rm -rf $@ $$TMP_DEST || (cat $@ ; false)
|
|
|
|
make_static:
|
|
$(call clean)
|
|
@TMP_DEST=$$(mktemp -d); \
|
|
cmd="cd $(PERF) && $(MAKE_F) $($@) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST"; \
|
|
printf "%*.*s: %s\n" $(max_width) $(max_width) "$@" "$$cmd" && echo $$cmd > $@ && \
|
|
( eval $$cmd ) >> $@ 2>&1; \
|
|
echo " test: $(call test,$@)" >> $@ 2>&1; \
|
|
$(call test,$@) && \
|
|
rm -rf $@ $$TMP_DEST || (cat $@ ; false)
|
|
|
|
$(run_O):
|
|
$(call clean)
|
|
@TMP_O=$$(mktemp -d); \
|
|
TMP_DEST=$$(mktemp -d); \
|
|
cmd="cd $(PERF) && $(MAKE_F) $($(patsubst %_O,%,$@)) $(PARALLEL_OPT) O=$$TMP_O DESTDIR=$$TMP_DEST"; \
|
|
printf "%*.*s: %s\n" $(max_width) $(max_width) "$@" "$$cmd" && echo $$cmd > $@ && \
|
|
( eval $$cmd ) >> $@ 2>&1 && \
|
|
echo " test: $(call test_O,$@)" >> $@ 2>&1; \
|
|
$(call test_O,$@) && \
|
|
rm -rf $@ $$TMP_O $$TMP_DEST || (cat $@ ; false)
|
|
|
|
tarpkg:
|
|
@cmd="$(PERF)/tests/perf-targz-src-pkg $(PERF)"; \
|
|
echo "- $@: $$cmd" && echo $$cmd > $@ && \
|
|
( eval $$cmd ) >> $@ 2>&1 && \
|
|
rm -f $@
|
|
|
|
KERNEL_O := ../..
|
|
ifneq ($(O),)
|
|
KERNEL_O := $(O)
|
|
endif
|
|
|
|
make_kernelsrc:
|
|
@echo "- make -C <kernelsrc> $(PARALLEL_OPT) $(K_O_OPT) tools/perf"
|
|
$(call clean); \
|
|
(make -C ../.. $(PARALLEL_OPT) $(K_O_OPT) tools/perf) > $@ 2>&1 && \
|
|
test -x $(KERNEL_O)/tools/perf/perf && rm -f $@ || (cat $@ ; false)
|
|
|
|
make_kernelsrc_tools:
|
|
@echo "- make -C <kernelsrc>/tools $(PARALLEL_OPT) $(K_O_OPT) perf"
|
|
$(call clean); \
|
|
(make -C ../../tools $(PARALLEL_OPT) $(K_O_OPT) perf) > $@ 2>&1 && \
|
|
test -x $(KERNEL_O)/tools/perf/perf && rm -f $@ || (cat $@ ; false)
|
|
|
|
make_libperf:
|
|
@echo "- make -C lib";
|
|
make -C lib clean >$@ 2>&1; make -C lib >>$@ 2>&1 && rm $@
|
|
|
|
FEATURES_DUMP_FILE := $(FULL_O)/BUILD_TEST_FEATURE_DUMP
|
|
FEATURES_DUMP_FILE_STATIC := $(FULL_O)/BUILD_TEST_FEATURE_DUMP_STATIC
|
|
|
|
all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools
|
|
@echo OK
|
|
@rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC)
|
|
|
|
out: $(run_O)
|
|
@echo OK
|
|
@rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC)
|
|
|
|
ifeq ($(REUSE_FEATURES_DUMP),1)
|
|
$(FEATURES_DUMP_FILE):
|
|
$(call clean)
|
|
@cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) feature-dump"; \
|
|
echo "- $@: $$cmd" && echo $$cmd && \
|
|
( eval $$cmd ) > /dev/null 2>&1
|
|
|
|
$(FEATURES_DUMP_FILE_STATIC):
|
|
$(call clean)
|
|
@cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \
|
|
echo "- $@: $$cmd" && echo $$cmd && \
|
|
( eval $$cmd ) > /dev/null 2>&1
|
|
|
|
# Add feature dump dependency for run/run_O targets
|
|
$(foreach t,$(run) $(run_O),$(eval \
|
|
$(t): $(if $(findstring make_static,$(t)),\
|
|
$(FEATURES_DUMP_FILE_STATIC),\
|
|
$(FEATURES_DUMP_FILE))))
|
|
|
|
# Append 'FEATURES_DUMP=' option to all test cases. For example:
|
|
# make_no_libbpf: NO_LIBBPF=1 --> NO_LIBBPF=1 FEATURES_DUMP=/a/b/BUILD_TEST_FEATURE_DUMP
|
|
# make_static: LDFLAGS=-static --> LDFLAGS=-static FEATURES_DUMP=/a/b/BUILD_TEST_FEATURE_DUMP_STATIC
|
|
$(foreach t,$(run),$(if $(findstring make_static,$(t)),\
|
|
$(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\
|
|
$(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE))))
|
|
endif
|
|
|
|
.PHONY: all $(run) $(run_O) tarpkg clean make_kernelsrc make_kernelsrc_tools make_libperf
|
|
endif # ifndef MK
|