treewide: remove meaningless assignments in Makefiles

Message ID 20240221134201.2656908-1-masahiroy@kernel.org
State New
Headers
Series treewide: remove meaningless assignments in Makefiles |

Commit Message

Masahiro Yamada Feb. 21, 2024, 1:42 p.m. UTC
  In Makefiles, $(error ), $(warning ), and $(info ) expand to the empty
string, as explained in the GNU Make manual [1]:
 "The result of the expansion of this function is the empty string."

Therefore, they are no-op except for logging purposes.

$(shell ...) expands to the output of the command. It expands to the
empty string when the command does not print anything to stdout.
Hence, $(shell mkdir ...) is no-op except for creating the directory.

Remove meaningless assignments.

[1]: https://www.gnu.org/software/make/manual/make.html#Make-Control-Functions

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

This is a treewide cleanup, but in practice, this is touching mostly
perf Makefiles. I am sending this to perf subsystem.


 tools/perf/Makefile.config           | 90 ++++++++++++++--------------
 tools/perf/Makefile.perf             |  4 +-
 tools/perf/arch/arm64/Makefile       |  2 +-
 tools/perf/arch/loongarch/Makefile   |  2 +-
 tools/perf/arch/mips/Makefile        |  2 +-
 tools/perf/arch/powerpc/Makefile     |  2 +-
 tools/perf/arch/s390/Makefile        |  2 +-
 tools/perf/arch/x86/Makefile         |  2 +-
 tools/scripts/Makefile.include       |  2 +-
 tools/testing/selftests/kvm/Makefile |  4 +-
 10 files changed, 56 insertions(+), 56 deletions(-)
  

Comments

Ian Rogers Feb. 21, 2024, 2:39 p.m. UTC | #1
On Wed, Feb 21, 2024 at 5:42 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> In Makefiles, $(error ), $(warning ), and $(info ) expand to the empty
> string, as explained in the GNU Make manual [1]:
>  "The result of the expansion of this function is the empty string."
>
> Therefore, they are no-op except for logging purposes.
>
> $(shell ...) expands to the output of the command. It expands to the
> empty string when the command does not print anything to stdout.
> Hence, $(shell mkdir ...) is no-op except for creating the directory.
>
> Remove meaningless assignments.
>
> [1]: https://www.gnu.org/software/make/manual/make.html#Make-Control-Functions
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

I can see why it was done, but I can also see the manual saying it is
unnecessary. The assignments also get cargo culted around, so removing
them should stop this.

Reviewed-by: Ian Rogers <irogers@google.com>

Thanks,
Ian

> ---
>
> This is a treewide cleanup, but in practice, this is touching mostly
> perf Makefiles. I am sending this to perf subsystem.
>
>
>  tools/perf/Makefile.config           | 90 ++++++++++++++--------------
>  tools/perf/Makefile.perf             |  4 +-
>  tools/perf/arch/arm64/Makefile       |  2 +-
>  tools/perf/arch/loongarch/Makefile   |  2 +-
>  tools/perf/arch/mips/Makefile        |  2 +-
>  tools/perf/arch/powerpc/Makefile     |  2 +-
>  tools/perf/arch/s390/Makefile        |  2 +-
>  tools/perf/arch/x86/Makefile         |  2 +-
>  tools/scripts/Makefile.include       |  2 +-
>  tools/testing/selftests/kvm/Makefile |  4 +-
>  10 files changed, 56 insertions(+), 56 deletions(-)
>
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index aa55850fbc21..6edf9916d41c 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -209,11 +209,11 @@ endif
>  include $(srctree)/tools/scripts/utilities.mak
>
>  ifeq ($(call get-executable,$(FLEX)),)
> -  dummy := $(error Error: $(FLEX) is missing on this system, please install it)
> +  $(error Error: $(FLEX) is missing on this system, please install it)
>  endif
>
>  ifeq ($(call get-executable,$(BISON)),)
> -  dummy := $(error Error: $(BISON) is missing on this system, please install it)
> +  $(error Error: $(BISON) is missing on this system, please install it)
>  endif
>
>  ifneq ($(OUTPUT),)
> @@ -438,46 +438,46 @@ else
>        LIBC_SUPPORT := 1
>      endif
>      ifeq ($(LIBC_SUPPORT),1)
> -      msg := $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
> +      $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
>      else
>        ifneq ($(filter s% -fsanitize=address%,$(EXTRA_CFLAGS),),)
>          ifneq ($(shell ldconfig -p | grep libasan >/dev/null 2>&1; echo $$?), 0)
> -          msg := $(error No libasan found, please install libasan);
> +          $(error No libasan found, please install libasan)
>          endif
>        endif
>
>        ifneq ($(filter s% -fsanitize=undefined%,$(EXTRA_CFLAGS),),)
>          ifneq ($(shell ldconfig -p | grep libubsan >/dev/null 2>&1; echo $$?), 0)
> -          msg := $(error No libubsan found, please install libubsan);
> +          $(error No libubsan found, please install libubsan)
>          endif
>        endif
>
>        ifneq ($(filter s% -static%,$(LDFLAGS),),)
> -        msg := $(error No static glibc found, please install glibc-static);
> +        $(error No static glibc found, please install glibc-static)
>        else
> -        msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]);
> +        $(error No gnu/libc-version.h found, please install glibc-dev[el])
>        endif
>      endif
>    else
>      ifndef NO_LIBDW_DWARF_UNWIND
>        ifneq ($(feature-libdw-dwarf-unwind),1)
>          NO_LIBDW_DWARF_UNWIND := 1
> -        msg := $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR);
> +        $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR)
>        endif
>      endif
>      ifneq ($(feature-dwarf), 1)
>        ifndef NO_DWARF
> -        msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
> +        $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev)
>          NO_DWARF := 1
>        endif
>      else
>        ifneq ($(feature-dwarf_getlocations), 1)
> -        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157);
> +        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157)
>        else
>          CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SUPPORT
>        endif # dwarf_getlocations
>        ifneq ($(feature-dwarf_getcfi), 1)
> -        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142);
> +        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142)
>        else
>          CFLAGS += -DHAVE_DWARF_CFI_SUPPORT
>        endif # dwarf_getcfi
> @@ -525,7 +525,7 @@ ifdef CORESIGHT
>        endif
>      endif
>    else
> -    dummy := $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
> +    $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
>    endif
>  endif
>
> @@ -551,7 +551,7 @@ ifndef NO_LIBELF
>    ifeq ($(feature-libelf-gelf_getnote), 1)
>      CFLAGS += -DHAVE_GELF_GETNOTE_SUPPORT
>    else
> -    msg := $(warning gelf_getnote() not found on libelf, SDT support disabled);
> +    $(warning gelf_getnote() not found on libelf, SDT support disabled)
>    endif
>
>    ifeq ($(feature-libelf-getshdrstrndx), 1)
> @@ -568,7 +568,7 @@ ifndef NO_LIBELF
>
>    ifndef NO_DWARF
>      ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
> -      msg := $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled);
> +      $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled)
>        NO_DWARF := 1
>      else
>        CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
> @@ -590,11 +590,11 @@ ifndef NO_LIBELF
>            $(call detected,CONFIG_LIBBPF)
>            $(call detected,CONFIG_LIBBPF_DYNAMIC)
>          else
> -          dummy := $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel);
> +          $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel)
>          endif
>        else
>          ifeq ($(NO_ZLIB), 1)
> -          dummy := $(warning Warning: Statically building libbpf not possible as zlib is missing)
> +          $(warning Warning: Statically building libbpf not possible as zlib is missing)
>            NO_LIBBPF := 1
>          else
>            # Libbpf will be built as a static library from tools/lib/bpf.
> @@ -609,7 +609,7 @@ endif # NO_LIBELF
>
>  ifndef NO_SDT
>    ifneq ($(feature-sdt), 1)
> -    msg := $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev);
> +    $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev)
>      NO_SDT := 1;
>    else
>      CFLAGS += -DHAVE_SDT_EVENT
> @@ -651,13 +651,13 @@ ifndef NO_LIBUNWIND
>      have_libunwind = 1
>      $(call feature_check,libunwind-debug-frame-aarch64)
>      ifneq ($(feature-libunwind-debug-frame-aarch64), 1)
> -      msg := $(warning No debug_frame support found in libunwind-aarch64);
> +      $(warning No debug_frame support found in libunwind-aarch64)
>        CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME_AARCH64
>      endif
>    endif
>
>    ifneq ($(feature-libunwind), 1)
> -    msg := $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR);
> +    $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR)
>      NO_LOCAL_LIBUNWIND := 1
>    else
>      have_libunwind := 1
> @@ -673,7 +673,7 @@ endif
>
>  ifndef NO_LIBBPF
>    ifneq ($(feature-bpf), 1)
> -    msg := $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
> +    $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
>      NO_LIBBPF := 1
>    endif
>  endif
> @@ -686,28 +686,28 @@ endif
>
>  ifeq ($(BUILD_BPF_SKEL),1)
>    ifeq ($(filter -DHAVE_LIBELF_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
> +    $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(filter -DHAVE_ZLIB_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
> +    $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as libbpf is required)
> +    $(warning Warning: Disabled BPF skeletons as libbpf is required)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(call get-executable,$(CLANG)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
> +    $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
>      BUILD_BPF_SKEL := 0
>    else
>      CLANG_VERSION := $(shell $(CLANG) --version | head -1 | sed 's/.*clang version \([[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+\).*/\1/g')
>      ifeq ($(call version-lt3,$(CLANG_VERSION),12.0.1),1)
> -      dummy := $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
> +      $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
>        BUILD_BPF_SKEL := 0
>      endif
>    endif
>    ifeq ($(BUILD_BPF_SKEL),1)
>      $(call feature_check,clang-bpf-co-re)
>      ifeq ($(feature-clang-bpf-co-re), 0)
> -      dummy := $(warning Warning: Disabled BPF skeletons as clang is too old)
> +      $(warning Warning: Disabled BPF skeletons as clang is too old)
>        BUILD_BPF_SKEL := 0
>      endif
>    endif
> @@ -727,7 +727,7 @@ dwarf-post-unwind-text := BUG
>  # setup DWARF post unwinder
>  ifdef NO_LIBUNWIND
>    ifdef NO_LIBDW_DWARF_UNWIND
> -    msg := $(warning Disabling post unwind, no support found.);
> +    $(warning Disabling post unwind, no support found.)
>      dwarf-post-unwind := 0
>    else
>      dwarf-post-unwind-text := libdw
> @@ -753,7 +753,7 @@ ifndef NO_LOCAL_LIBUNWIND
>    ifeq ($(SRCARCH),$(filter $(SRCARCH),arm arm64))
>      $(call feature_check,libunwind-debug-frame)
>      ifneq ($(feature-libunwind-debug-frame), 1)
> -      msg := $(warning No debug_frame support found in libunwind);
> +      $(warning No debug_frame support found in libunwind)
>        CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
>      endif
>    else
> @@ -782,7 +782,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
>      ifndef NO_LIBAUDIT
>        $(call feature_check,libaudit)
>        ifneq ($(feature-libaudit), 1)
> -        msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
> +        $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev)
>          NO_LIBAUDIT := 1
>        else
>          CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
> @@ -795,7 +795,7 @@ endif
>
>  ifndef NO_LIBCRYPTO
>    ifneq ($(feature-libcrypto), 1)
> -    msg := $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev);
> +    $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev)
>      NO_LIBCRYPTO := 1
>    else
>      CFLAGS += -DHAVE_LIBCRYPTO_SUPPORT
> @@ -807,7 +807,7 @@ endif
>  ifndef NO_SLANG
>    ifneq ($(feature-libslang), 1)
>      ifneq ($(feature-libslang-include-subdir), 1)
> -      msg := $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev);
> +      $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev)
>        NO_SLANG := 1
>      else
>        CFLAGS += -DHAVE_SLANG_INCLUDE_SUBDIR
> @@ -825,7 +825,7 @@ ifdef GTK2
>    FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)
>    $(call feature_check,gtk2)
>    ifneq ($(feature-gtk2), 1)
> -    msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
> +    $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev)
>      NO_GTK2 := 1
>    else
>      $(call feature_check,gtk2-infobar)
> @@ -854,7 +854,7 @@ else
>    ifneq ($(feature-libperl), 1)
>      CFLAGS += -DNO_LIBPERL
>      NO_LIBPERL := 1
> -    msg := $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev);
> +    $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev)
>    else
>      LDFLAGS += $(PERL_EMBED_LDFLAGS)
>      EXTLIBS += $(PERL_EMBED_LIBADD)
> @@ -869,7 +869,7 @@ endif
>  ifeq ($(feature-timerfd), 1)
>    CFLAGS += -DHAVE_TIMERFD_SUPPORT
>  else
> -  msg := $(warning No timerfd support. Disables 'perf kvm stat live');
> +  $(warning No timerfd support. Disables 'perf kvm stat live')
>  endif
>
>  disable-python = $(eval $(disable-python_code))
> @@ -903,7 +903,7 @@ else
>             PYTHON_EXTENSION_SUFFIX := $(shell $(PYTHON) -c 'from importlib import machinery; print(machinery.EXTENSION_SUFFIXES[0])')
>             LANG_BINDINGS += $(obj-perf)python/perf$(PYTHON_EXTENSION_SUFFIX)
>          else
> -           msg := $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent);
> +           $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent)
>           endif
>           CFLAGS += -DHAVE_LIBPYTHON_SUPPORT
>           $(call detected,CONFIG_LIBPYTHON)
> @@ -962,7 +962,7 @@ ifdef BUILD_NONDISTRO
>    ifeq ($(feature-libbfd-buildid), 1)
>      CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
>    else
> -    msg := $(warning Old version of libbfd/binutils things like PE executable profiling will not be available);
> +    $(warning Old version of libbfd/binutils things like PE executable profiling will not be available)
>    endif
>  endif
>
> @@ -994,7 +994,7 @@ ifndef NO_LZMA
>      EXTLIBS += -llzma
>      $(call detected,CONFIG_LZMA)
>    else
> -    msg := $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev);
> +    $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev)
>      NO_LZMA := 1
>    endif
>  endif
> @@ -1007,7 +1007,7 @@ ifndef NO_LIBZSTD
>      EXTLIBS += -lzstd
>      $(call detected,CONFIG_ZSTD)
>    else
> -    msg := $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR);
> +    $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR)
>      NO_LIBZSTD := 1
>    endif
>  endif
> @@ -1018,7 +1018,7 @@ ifndef NO_LIBCAP
>      EXTLIBS += -lcap
>      $(call detected,CONFIG_LIBCAP)
>    else
> -    msg := $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev);
> +    $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev)
>      NO_LIBCAP := 1
>    endif
>  endif
> @@ -1031,11 +1031,11 @@ endif
>
>  ifndef NO_LIBNUMA
>    ifeq ($(feature-libnuma), 0)
> -    msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev);
> +    $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev)
>      NO_LIBNUMA := 1
>    else
>      ifeq ($(feature-numa_num_possible_cpus), 0)
> -      msg := $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8);
> +      $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8)
>        NO_LIBNUMA := 1
>      else
>        CFLAGS += -DHAVE_LIBNUMA_SUPPORT
> @@ -1090,14 +1090,14 @@ ifndef NO_LIBBABELTRACE
>      EXTLIBS += -lbabeltrace-ctf
>      $(call detected,CONFIG_LIBBABELTRACE)
>    else
> -    msg := $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev);
> +    $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev)
>    endif
>  endif
>
>  ifndef NO_AUXTRACE
>    ifeq ($(SRCARCH),x86)
>      ifeq ($(feature-get_cpuid), 0)
> -      msg := $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc);
> +      $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc)
>        NO_AUXTRACE := 1
>      endif
>    endif
> @@ -1155,7 +1155,7 @@ ifndef NO_LIBPFM4
>      ASCIIDOC_EXTRA = -aHAVE_LIBPFM=1
>      $(call detected,CONFIG_LIBPFM4)
>    else
> -    msg := $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev);
> +    $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev)
>    endif
>  endif
>
> @@ -1173,7 +1173,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
>      CFLAGS += -DLIBTRACEEVENT_VERSION=$(LIBTRACEEVENT_VERSION_CPP)
>      $(call detected,CONFIG_LIBTRACEEVENT)
>    else
> -    dummy := $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
> +    $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
>    endif
>
>    $(call feature_check,libtracefs)
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index f8774a9b1377..3707fed8dfde 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -482,7 +482,7 @@ drm_hdr_dir := $(srctree)/tools/include/uapi/drm
>  drm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/drm_ioctl.sh
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
> +$(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
>
>  $(drm_ioctl_array): $(drm_hdr_dir)/drm.h $(drm_hdr_dir)/i915_drm.h $(drm_ioctl_tbl)
>         $(Q)$(SHELL) '$(drm_ioctl_tbl)' $(drm_hdr_dir) > $@
> @@ -672,7 +672,7 @@ tests-coresight-targets-clean:
>  all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>
>  # Create python binding output directory if not already present
> -_dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> +$(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
>
>  $(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) $(LIBPERF) $(LIBSUBCMD)
>         $(QUIET_GEN)LDSHARED="$(CC) -pthread -shared" \
> diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> index fab3095fb5d0..5735ed4479bb 100644
> --- a/tools/perf/arch/arm64/Makefile
> +++ b/tools/perf/arch/arm64/Makefile
> @@ -18,7 +18,7 @@ sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
> diff --git a/tools/perf/arch/loongarch/Makefile b/tools/perf/arch/loongarch/Makefile
> index c392e7af4743..3992a67a87d9 100644
> --- a/tools/perf/arch/loongarch/Makefile
> +++ b/tools/perf/arch/loongarch/Makefile
> @@ -17,7 +17,7 @@ sysprf := $(srctree)/tools/perf/arch/loongarch/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
> diff --git a/tools/perf/arch/mips/Makefile b/tools/perf/arch/mips/Makefile
> index 8bc09072e3d6..cd0b011b3be5 100644
> --- a/tools/perf/arch/mips/Makefile
> +++ b/tools/perf/arch/mips/Makefile
> @@ -11,7 +11,7 @@ sysdef := $(sysprf)/syscall_n64.tbl
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
> diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
> index 840ea0e59287..bf6d323574f6 100644
> --- a/tools/perf/arch/powerpc/Makefile
> +++ b/tools/perf/arch/powerpc/Makefile
> @@ -19,7 +19,7 @@ sysdef := $(sysprf)/syscall.tbl
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header64): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' '64' $(sysdef) > $@
> diff --git a/tools/perf/arch/s390/Makefile b/tools/perf/arch/s390/Makefile
> index 74bffbea03e2..56994e63b43a 100644
> --- a/tools/perf/arch/s390/Makefile
> +++ b/tools/perf/arch/s390/Makefile
> @@ -17,7 +17,7 @@ sysdef := $(sysprf)/syscall.tbl
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
> diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
> index 5a9f9a7bf07d..8952e00f9b60 100644
> --- a/tools/perf/arch/x86/Makefile
> +++ b/tools/perf/arch/x86/Makefile
> @@ -17,7 +17,7 @@ sys       := $(srctree)/tools/perf/arch/x86/entry/syscalls
>  systbl    := $(sys)/syscalltbl.sh
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sys)/syscall_64.tbl $(systbl)
>         $(Q)$(SHELL) '$(systbl)' $(sys)/syscall_64.tbl 'x86_64' > $@
> diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> index 6fba29f3222d..0aa4005017c7 100644
> --- a/tools/scripts/Makefile.include
> +++ b/tools/scripts/Makefile.include
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>  ifneq ($(O),)
>  ifeq ($(origin O), command line)
> -       dummy := $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
> +        $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
>         ABSOLUTE_O := $(shell cd $(PWD); cd $(O) ; pwd)
>         OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
>         COMMAND_O := O=$(ABSOLUTE_O)
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 492e937fab00..14684aeb4b55 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -285,7 +285,7 @@ EXTRA_CLEAN += $(GEN_HDRS) \
>                $(TEST_GEN_OBJ) \
>                cscope.*
>
> -x := $(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
> +$(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
>  $(LIBKVM_C_OBJ): $(OUTPUT)/%.o: %.c $(GEN_HDRS)
>         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
>
> @@ -298,7 +298,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS)
>  $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c
>         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
>
> -x := $(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
> +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
>  $(SPLIT_TESTS_OBJS): $(GEN_HDRS)
>  $(TEST_GEN_PROGS): $(LIBKVM_OBJS)
>  $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
> --
> 2.40.1
>
  
Arnaldo Carvalho de Melo Feb. 21, 2024, 5:08 p.m. UTC | #2
On Wed, Feb 21, 2024 at 10:42:01PM +0900, Masahiro Yamada wrote:
> In Makefiles, $(error ), $(warning ), and $(info ) expand to the empty
> string, as explained in the GNU Make manual [1]:
>  "The result of the expansion of this function is the empty string."
> 
> Therefore, they are no-op except for logging purposes.
> 
> $(shell ...) expands to the output of the command. It expands to the
> empty string when the command does not print anything to stdout.
> Hence, $(shell mkdir ...) is no-op except for creating the directory.
> 
> Remove meaningless assignments.
> 
> [1]: https://www.gnu.org/software/make/manual/make.html#Make-Control-Functions

Ok, some were already done without those assignments:

tools/perf/Makefile.config:    $(warning No alternatives command found, you need to set JDIR= to point to the root of your Java directory)
tools/perf/Makefile.config:    $(warning No openjdk development package found, please install JDK package, e.g. openjdk-8-jdk, java-1.8.0-openjdk-devel)

And the docs says its meaningless, and it makes the Makefiles more
compact, all good:

Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>

- Arnaldo
 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
> This is a treewide cleanup, but in practice, this is touching mostly
> perf Makefiles. I am sending this to perf subsystem.
> 
> 
>  tools/perf/Makefile.config           | 90 ++++++++++++++--------------
>  tools/perf/Makefile.perf             |  4 +-
>  tools/perf/arch/arm64/Makefile       |  2 +-
>  tools/perf/arch/loongarch/Makefile   |  2 +-
>  tools/perf/arch/mips/Makefile        |  2 +-
>  tools/perf/arch/powerpc/Makefile     |  2 +-
>  tools/perf/arch/s390/Makefile        |  2 +-
>  tools/perf/arch/x86/Makefile         |  2 +-
>  tools/scripts/Makefile.include       |  2 +-
>  tools/testing/selftests/kvm/Makefile |  4 +-
>  10 files changed, 56 insertions(+), 56 deletions(-)
> 
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index aa55850fbc21..6edf9916d41c 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -209,11 +209,11 @@ endif
>  include $(srctree)/tools/scripts/utilities.mak
>  
>  ifeq ($(call get-executable,$(FLEX)),)
> -  dummy := $(error Error: $(FLEX) is missing on this system, please install it)
> +  $(error Error: $(FLEX) is missing on this system, please install it)
>  endif
>  
>  ifeq ($(call get-executable,$(BISON)),)
> -  dummy := $(error Error: $(BISON) is missing on this system, please install it)
> +  $(error Error: $(BISON) is missing on this system, please install it)
>  endif
>  
>  ifneq ($(OUTPUT),)
> @@ -438,46 +438,46 @@ else
>        LIBC_SUPPORT := 1
>      endif
>      ifeq ($(LIBC_SUPPORT),1)
> -      msg := $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
> +      $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
>      else
>        ifneq ($(filter s% -fsanitize=address%,$(EXTRA_CFLAGS),),)
>          ifneq ($(shell ldconfig -p | grep libasan >/dev/null 2>&1; echo $$?), 0)
> -          msg := $(error No libasan found, please install libasan);
> +          $(error No libasan found, please install libasan)
>          endif
>        endif
>  
>        ifneq ($(filter s% -fsanitize=undefined%,$(EXTRA_CFLAGS),),)
>          ifneq ($(shell ldconfig -p | grep libubsan >/dev/null 2>&1; echo $$?), 0)
> -          msg := $(error No libubsan found, please install libubsan);
> +          $(error No libubsan found, please install libubsan)
>          endif
>        endif
>  
>        ifneq ($(filter s% -static%,$(LDFLAGS),),)
> -        msg := $(error No static glibc found, please install glibc-static);
> +        $(error No static glibc found, please install glibc-static)
>        else
> -        msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]);
> +        $(error No gnu/libc-version.h found, please install glibc-dev[el])
>        endif
>      endif
>    else
>      ifndef NO_LIBDW_DWARF_UNWIND
>        ifneq ($(feature-libdw-dwarf-unwind),1)
>          NO_LIBDW_DWARF_UNWIND := 1
> -        msg := $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR);
> +        $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR)
>        endif
>      endif
>      ifneq ($(feature-dwarf), 1)
>        ifndef NO_DWARF
> -        msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
> +        $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev)
>          NO_DWARF := 1
>        endif
>      else
>        ifneq ($(feature-dwarf_getlocations), 1)
> -        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157);
> +        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157)
>        else
>          CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SUPPORT
>        endif # dwarf_getlocations
>        ifneq ($(feature-dwarf_getcfi), 1)
> -        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142);
> +        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142)
>        else
>          CFLAGS += -DHAVE_DWARF_CFI_SUPPORT
>        endif # dwarf_getcfi
> @@ -525,7 +525,7 @@ ifdef CORESIGHT
>        endif
>      endif
>    else
> -    dummy := $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
> +    $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
>    endif
>  endif
>  
> @@ -551,7 +551,7 @@ ifndef NO_LIBELF
>    ifeq ($(feature-libelf-gelf_getnote), 1)
>      CFLAGS += -DHAVE_GELF_GETNOTE_SUPPORT
>    else
> -    msg := $(warning gelf_getnote() not found on libelf, SDT support disabled);
> +    $(warning gelf_getnote() not found on libelf, SDT support disabled)
>    endif
>  
>    ifeq ($(feature-libelf-getshdrstrndx), 1)
> @@ -568,7 +568,7 @@ ifndef NO_LIBELF
>  
>    ifndef NO_DWARF
>      ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
> -      msg := $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled);
> +      $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled)
>        NO_DWARF := 1
>      else
>        CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
> @@ -590,11 +590,11 @@ ifndef NO_LIBELF
>            $(call detected,CONFIG_LIBBPF)
>            $(call detected,CONFIG_LIBBPF_DYNAMIC)
>          else
> -          dummy := $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel);
> +          $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel)
>          endif
>        else
>          ifeq ($(NO_ZLIB), 1)
> -          dummy := $(warning Warning: Statically building libbpf not possible as zlib is missing)
> +          $(warning Warning: Statically building libbpf not possible as zlib is missing)
>            NO_LIBBPF := 1
>          else
>            # Libbpf will be built as a static library from tools/lib/bpf.
> @@ -609,7 +609,7 @@ endif # NO_LIBELF
>  
>  ifndef NO_SDT
>    ifneq ($(feature-sdt), 1)
> -    msg := $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev);
> +    $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev)
>      NO_SDT := 1;
>    else
>      CFLAGS += -DHAVE_SDT_EVENT
> @@ -651,13 +651,13 @@ ifndef NO_LIBUNWIND
>      have_libunwind = 1
>      $(call feature_check,libunwind-debug-frame-aarch64)
>      ifneq ($(feature-libunwind-debug-frame-aarch64), 1)
> -      msg := $(warning No debug_frame support found in libunwind-aarch64);
> +      $(warning No debug_frame support found in libunwind-aarch64)
>        CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME_AARCH64
>      endif
>    endif
>  
>    ifneq ($(feature-libunwind), 1)
> -    msg := $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR);
> +    $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR)
>      NO_LOCAL_LIBUNWIND := 1
>    else
>      have_libunwind := 1
> @@ -673,7 +673,7 @@ endif
>  
>  ifndef NO_LIBBPF
>    ifneq ($(feature-bpf), 1)
> -    msg := $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
> +    $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
>      NO_LIBBPF := 1
>    endif
>  endif
> @@ -686,28 +686,28 @@ endif
>  
>  ifeq ($(BUILD_BPF_SKEL),1)
>    ifeq ($(filter -DHAVE_LIBELF_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
> +    $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(filter -DHAVE_ZLIB_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
> +    $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as libbpf is required)
> +    $(warning Warning: Disabled BPF skeletons as libbpf is required)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(call get-executable,$(CLANG)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
> +    $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
>      BUILD_BPF_SKEL := 0
>    else
>      CLANG_VERSION := $(shell $(CLANG) --version | head -1 | sed 's/.*clang version \([[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+\).*/\1/g')
>      ifeq ($(call version-lt3,$(CLANG_VERSION),12.0.1),1)
> -      dummy := $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
> +      $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
>        BUILD_BPF_SKEL := 0
>      endif
>    endif
>    ifeq ($(BUILD_BPF_SKEL),1)
>      $(call feature_check,clang-bpf-co-re)
>      ifeq ($(feature-clang-bpf-co-re), 0)
> -      dummy := $(warning Warning: Disabled BPF skeletons as clang is too old)
> +      $(warning Warning: Disabled BPF skeletons as clang is too old)
>        BUILD_BPF_SKEL := 0
>      endif
>    endif
> @@ -727,7 +727,7 @@ dwarf-post-unwind-text := BUG
>  # setup DWARF post unwinder
>  ifdef NO_LIBUNWIND
>    ifdef NO_LIBDW_DWARF_UNWIND
> -    msg := $(warning Disabling post unwind, no support found.);
> +    $(warning Disabling post unwind, no support found.)
>      dwarf-post-unwind := 0
>    else
>      dwarf-post-unwind-text := libdw
> @@ -753,7 +753,7 @@ ifndef NO_LOCAL_LIBUNWIND
>    ifeq ($(SRCARCH),$(filter $(SRCARCH),arm arm64))
>      $(call feature_check,libunwind-debug-frame)
>      ifneq ($(feature-libunwind-debug-frame), 1)
> -      msg := $(warning No debug_frame support found in libunwind);
> +      $(warning No debug_frame support found in libunwind)
>        CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
>      endif
>    else
> @@ -782,7 +782,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
>      ifndef NO_LIBAUDIT
>        $(call feature_check,libaudit)
>        ifneq ($(feature-libaudit), 1)
> -        msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
> +        $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev)
>          NO_LIBAUDIT := 1
>        else
>          CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
> @@ -795,7 +795,7 @@ endif
>  
>  ifndef NO_LIBCRYPTO
>    ifneq ($(feature-libcrypto), 1)
> -    msg := $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev);
> +    $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev)
>      NO_LIBCRYPTO := 1
>    else
>      CFLAGS += -DHAVE_LIBCRYPTO_SUPPORT
> @@ -807,7 +807,7 @@ endif
>  ifndef NO_SLANG
>    ifneq ($(feature-libslang), 1)
>      ifneq ($(feature-libslang-include-subdir), 1)
> -      msg := $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev);
> +      $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev)
>        NO_SLANG := 1
>      else
>        CFLAGS += -DHAVE_SLANG_INCLUDE_SUBDIR
> @@ -825,7 +825,7 @@ ifdef GTK2
>    FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)
>    $(call feature_check,gtk2)
>    ifneq ($(feature-gtk2), 1)
> -    msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
> +    $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev)
>      NO_GTK2 := 1
>    else
>      $(call feature_check,gtk2-infobar)
> @@ -854,7 +854,7 @@ else
>    ifneq ($(feature-libperl), 1)
>      CFLAGS += -DNO_LIBPERL
>      NO_LIBPERL := 1
> -    msg := $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev);
> +    $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev)
>    else
>      LDFLAGS += $(PERL_EMBED_LDFLAGS)
>      EXTLIBS += $(PERL_EMBED_LIBADD)
> @@ -869,7 +869,7 @@ endif
>  ifeq ($(feature-timerfd), 1)
>    CFLAGS += -DHAVE_TIMERFD_SUPPORT
>  else
> -  msg := $(warning No timerfd support. Disables 'perf kvm stat live');
> +  $(warning No timerfd support. Disables 'perf kvm stat live')
>  endif
>  
>  disable-python = $(eval $(disable-python_code))
> @@ -903,7 +903,7 @@ else
>             PYTHON_EXTENSION_SUFFIX := $(shell $(PYTHON) -c 'from importlib import machinery; print(machinery.EXTENSION_SUFFIXES[0])')
>             LANG_BINDINGS += $(obj-perf)python/perf$(PYTHON_EXTENSION_SUFFIX)
>  	 else
> -           msg := $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent);
> +           $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent)
>           endif
>           CFLAGS += -DHAVE_LIBPYTHON_SUPPORT
>           $(call detected,CONFIG_LIBPYTHON)
> @@ -962,7 +962,7 @@ ifdef BUILD_NONDISTRO
>    ifeq ($(feature-libbfd-buildid), 1)
>      CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
>    else
> -    msg := $(warning Old version of libbfd/binutils things like PE executable profiling will not be available);
> +    $(warning Old version of libbfd/binutils things like PE executable profiling will not be available)
>    endif
>  endif
>  
> @@ -994,7 +994,7 @@ ifndef NO_LZMA
>      EXTLIBS += -llzma
>      $(call detected,CONFIG_LZMA)
>    else
> -    msg := $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev);
> +    $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev)
>      NO_LZMA := 1
>    endif
>  endif
> @@ -1007,7 +1007,7 @@ ifndef NO_LIBZSTD
>      EXTLIBS += -lzstd
>      $(call detected,CONFIG_ZSTD)
>    else
> -    msg := $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR);
> +    $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR)
>      NO_LIBZSTD := 1
>    endif
>  endif
> @@ -1018,7 +1018,7 @@ ifndef NO_LIBCAP
>      EXTLIBS += -lcap
>      $(call detected,CONFIG_LIBCAP)
>    else
> -    msg := $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev);
> +    $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev)
>      NO_LIBCAP := 1
>    endif
>  endif
> @@ -1031,11 +1031,11 @@ endif
>  
>  ifndef NO_LIBNUMA
>    ifeq ($(feature-libnuma), 0)
> -    msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev);
> +    $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev)
>      NO_LIBNUMA := 1
>    else
>      ifeq ($(feature-numa_num_possible_cpus), 0)
> -      msg := $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8);
> +      $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8)
>        NO_LIBNUMA := 1
>      else
>        CFLAGS += -DHAVE_LIBNUMA_SUPPORT
> @@ -1090,14 +1090,14 @@ ifndef NO_LIBBABELTRACE
>      EXTLIBS += -lbabeltrace-ctf
>      $(call detected,CONFIG_LIBBABELTRACE)
>    else
> -    msg := $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev);
> +    $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev)
>    endif
>  endif
>  
>  ifndef NO_AUXTRACE
>    ifeq ($(SRCARCH),x86)
>      ifeq ($(feature-get_cpuid), 0)
> -      msg := $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc);
> +      $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc)
>        NO_AUXTRACE := 1
>      endif
>    endif
> @@ -1155,7 +1155,7 @@ ifndef NO_LIBPFM4
>      ASCIIDOC_EXTRA = -aHAVE_LIBPFM=1
>      $(call detected,CONFIG_LIBPFM4)
>    else
> -    msg := $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev);
> +    $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev)
>    endif
>  endif
>  
> @@ -1173,7 +1173,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
>      CFLAGS += -DLIBTRACEEVENT_VERSION=$(LIBTRACEEVENT_VERSION_CPP)
>      $(call detected,CONFIG_LIBTRACEEVENT)
>    else
> -    dummy := $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
> +    $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
>    endif
>  
>    $(call feature_check,libtracefs)
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index f8774a9b1377..3707fed8dfde 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -482,7 +482,7 @@ drm_hdr_dir := $(srctree)/tools/include/uapi/drm
>  drm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/drm_ioctl.sh
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
> +$(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
>  
>  $(drm_ioctl_array): $(drm_hdr_dir)/drm.h $(drm_hdr_dir)/i915_drm.h $(drm_ioctl_tbl)
>  	$(Q)$(SHELL) '$(drm_ioctl_tbl)' $(drm_hdr_dir) > $@
> @@ -672,7 +672,7 @@ tests-coresight-targets-clean:
>  all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>  
>  # Create python binding output directory if not already present
> -_dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> +$(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
>  
>  $(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) $(LIBPERF) $(LIBSUBCMD)
>  	$(QUIET_GEN)LDSHARED="$(CC) -pthread -shared" \
> diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> index fab3095fb5d0..5735ed4479bb 100644
> --- a/tools/perf/arch/arm64/Makefile
> +++ b/tools/perf/arch/arm64/Makefile
> @@ -18,7 +18,7 @@ sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header): $(sysdef) $(systbl)
>  	$(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
> diff --git a/tools/perf/arch/loongarch/Makefile b/tools/perf/arch/loongarch/Makefile
> index c392e7af4743..3992a67a87d9 100644
> --- a/tools/perf/arch/loongarch/Makefile
> +++ b/tools/perf/arch/loongarch/Makefile
> @@ -17,7 +17,7 @@ sysprf := $(srctree)/tools/perf/arch/loongarch/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header): $(sysdef) $(systbl)
>  	$(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
> diff --git a/tools/perf/arch/mips/Makefile b/tools/perf/arch/mips/Makefile
> index 8bc09072e3d6..cd0b011b3be5 100644
> --- a/tools/perf/arch/mips/Makefile
> +++ b/tools/perf/arch/mips/Makefile
> @@ -11,7 +11,7 @@ sysdef := $(sysprf)/syscall_n64.tbl
>  systbl := $(sysprf)/mksyscalltbl
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header): $(sysdef) $(systbl)
>  	$(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
> diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
> index 840ea0e59287..bf6d323574f6 100644
> --- a/tools/perf/arch/powerpc/Makefile
> +++ b/tools/perf/arch/powerpc/Makefile
> @@ -19,7 +19,7 @@ sysdef := $(sysprf)/syscall.tbl
>  systbl := $(sysprf)/mksyscalltbl
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header64): $(sysdef) $(systbl)
>  	$(Q)$(SHELL) '$(systbl)' '64' $(sysdef) > $@
> diff --git a/tools/perf/arch/s390/Makefile b/tools/perf/arch/s390/Makefile
> index 74bffbea03e2..56994e63b43a 100644
> --- a/tools/perf/arch/s390/Makefile
> +++ b/tools/perf/arch/s390/Makefile
> @@ -17,7 +17,7 @@ sysdef := $(sysprf)/syscall.tbl
>  systbl := $(sysprf)/mksyscalltbl
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header): $(sysdef) $(systbl)
>  	$(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
> diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
> index 5a9f9a7bf07d..8952e00f9b60 100644
> --- a/tools/perf/arch/x86/Makefile
> +++ b/tools/perf/arch/x86/Makefile
> @@ -17,7 +17,7 @@ sys       := $(srctree)/tools/perf/arch/x86/entry/syscalls
>  systbl    := $(sys)/syscalltbl.sh
>  
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header): $(sys)/syscall_64.tbl $(systbl)
>  	$(Q)$(SHELL) '$(systbl)' $(sys)/syscall_64.tbl 'x86_64' > $@
> diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> index 6fba29f3222d..0aa4005017c7 100644
> --- a/tools/scripts/Makefile.include
> +++ b/tools/scripts/Makefile.include
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>  ifneq ($(O),)
>  ifeq ($(origin O), command line)
> -	dummy := $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
> +        $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
>  	ABSOLUTE_O := $(shell cd $(PWD); cd $(O) ; pwd)
>  	OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
>  	COMMAND_O := O=$(ABSOLUTE_O)
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 492e937fab00..14684aeb4b55 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -285,7 +285,7 @@ EXTRA_CLEAN += $(GEN_HDRS) \
>  	       $(TEST_GEN_OBJ) \
>  	       cscope.*
>  
> -x := $(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
> +$(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
>  $(LIBKVM_C_OBJ): $(OUTPUT)/%.o: %.c $(GEN_HDRS)
>  	$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
>  
> @@ -298,7 +298,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS)
>  $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c
>  	$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
>  
> -x := $(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
> +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
>  $(SPLIT_TESTS_OBJS): $(GEN_HDRS)
>  $(TEST_GEN_PROGS): $(LIBKVM_OBJS)
>  $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
> -- 
> 2.40.1
  
Namhyung Kim Feb. 22, 2024, 5:08 p.m. UTC | #3
Hello,

On Wed, Feb 21, 2024 at 5:42 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> In Makefiles, $(error ), $(warning ), and $(info ) expand to the empty
> string, as explained in the GNU Make manual [1]:
>  "The result of the expansion of this function is the empty string."
>
> Therefore, they are no-op except for logging purposes.
>
> $(shell ...) expands to the output of the command. It expands to the
> empty string when the command does not print anything to stdout.
> Hence, $(shell mkdir ...) is no-op except for creating the directory.
>
> Remove meaningless assignments.
>
> [1]: https://www.gnu.org/software/make/manual/make.html#Make-Control-Functions
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
> This is a treewide cleanup, but in practice, this is touching mostly
> perf Makefiles. I am sending this to perf subsystem.

How do you want to route this?  I can take it to perf tree if you're ok.

Thanks,
Namhyung

>
>
>  tools/perf/Makefile.config           | 90 ++++++++++++++--------------
>  tools/perf/Makefile.perf             |  4 +-
>  tools/perf/arch/arm64/Makefile       |  2 +-
>  tools/perf/arch/loongarch/Makefile   |  2 +-
>  tools/perf/arch/mips/Makefile        |  2 +-
>  tools/perf/arch/powerpc/Makefile     |  2 +-
>  tools/perf/arch/s390/Makefile        |  2 +-
>  tools/perf/arch/x86/Makefile         |  2 +-
>  tools/scripts/Makefile.include       |  2 +-
>  tools/testing/selftests/kvm/Makefile |  4 +-
>  10 files changed, 56 insertions(+), 56 deletions(-)
>
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index aa55850fbc21..6edf9916d41c 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -209,11 +209,11 @@ endif
>  include $(srctree)/tools/scripts/utilities.mak
>
>  ifeq ($(call get-executable,$(FLEX)),)
> -  dummy := $(error Error: $(FLEX) is missing on this system, please install it)
> +  $(error Error: $(FLEX) is missing on this system, please install it)
>  endif
>
>  ifeq ($(call get-executable,$(BISON)),)
> -  dummy := $(error Error: $(BISON) is missing on this system, please install it)
> +  $(error Error: $(BISON) is missing on this system, please install it)
>  endif
>
>  ifneq ($(OUTPUT),)
> @@ -438,46 +438,46 @@ else
>        LIBC_SUPPORT := 1
>      endif
>      ifeq ($(LIBC_SUPPORT),1)
> -      msg := $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
> +      $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
>      else
>        ifneq ($(filter s% -fsanitize=address%,$(EXTRA_CFLAGS),),)
>          ifneq ($(shell ldconfig -p | grep libasan >/dev/null 2>&1; echo $$?), 0)
> -          msg := $(error No libasan found, please install libasan);
> +          $(error No libasan found, please install libasan)
>          endif
>        endif
>
>        ifneq ($(filter s% -fsanitize=undefined%,$(EXTRA_CFLAGS),),)
>          ifneq ($(shell ldconfig -p | grep libubsan >/dev/null 2>&1; echo $$?), 0)
> -          msg := $(error No libubsan found, please install libubsan);
> +          $(error No libubsan found, please install libubsan)
>          endif
>        endif
>
>        ifneq ($(filter s% -static%,$(LDFLAGS),),)
> -        msg := $(error No static glibc found, please install glibc-static);
> +        $(error No static glibc found, please install glibc-static)
>        else
> -        msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]);
> +        $(error No gnu/libc-version.h found, please install glibc-dev[el])
>        endif
>      endif
>    else
>      ifndef NO_LIBDW_DWARF_UNWIND
>        ifneq ($(feature-libdw-dwarf-unwind),1)
>          NO_LIBDW_DWARF_UNWIND := 1
> -        msg := $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR);
> +        $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR)
>        endif
>      endif
>      ifneq ($(feature-dwarf), 1)
>        ifndef NO_DWARF
> -        msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
> +        $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev)
>          NO_DWARF := 1
>        endif
>      else
>        ifneq ($(feature-dwarf_getlocations), 1)
> -        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157);
> +        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157)
>        else
>          CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SUPPORT
>        endif # dwarf_getlocations
>        ifneq ($(feature-dwarf_getcfi), 1)
> -        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142);
> +        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142)
>        else
>          CFLAGS += -DHAVE_DWARF_CFI_SUPPORT
>        endif # dwarf_getcfi
> @@ -525,7 +525,7 @@ ifdef CORESIGHT
>        endif
>      endif
>    else
> -    dummy := $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
> +    $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
>    endif
>  endif
>
> @@ -551,7 +551,7 @@ ifndef NO_LIBELF
>    ifeq ($(feature-libelf-gelf_getnote), 1)
>      CFLAGS += -DHAVE_GELF_GETNOTE_SUPPORT
>    else
> -    msg := $(warning gelf_getnote() not found on libelf, SDT support disabled);
> +    $(warning gelf_getnote() not found on libelf, SDT support disabled)
>    endif
>
>    ifeq ($(feature-libelf-getshdrstrndx), 1)
> @@ -568,7 +568,7 @@ ifndef NO_LIBELF
>
>    ifndef NO_DWARF
>      ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
> -      msg := $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled);
> +      $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled)
>        NO_DWARF := 1
>      else
>        CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
> @@ -590,11 +590,11 @@ ifndef NO_LIBELF
>            $(call detected,CONFIG_LIBBPF)
>            $(call detected,CONFIG_LIBBPF_DYNAMIC)
>          else
> -          dummy := $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel);
> +          $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel)
>          endif
>        else
>          ifeq ($(NO_ZLIB), 1)
> -          dummy := $(warning Warning: Statically building libbpf not possible as zlib is missing)
> +          $(warning Warning: Statically building libbpf not possible as zlib is missing)
>            NO_LIBBPF := 1
>          else
>            # Libbpf will be built as a static library from tools/lib/bpf.
> @@ -609,7 +609,7 @@ endif # NO_LIBELF
>
>  ifndef NO_SDT
>    ifneq ($(feature-sdt), 1)
> -    msg := $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev);
> +    $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev)
>      NO_SDT := 1;
>    else
>      CFLAGS += -DHAVE_SDT_EVENT
> @@ -651,13 +651,13 @@ ifndef NO_LIBUNWIND
>      have_libunwind = 1
>      $(call feature_check,libunwind-debug-frame-aarch64)
>      ifneq ($(feature-libunwind-debug-frame-aarch64), 1)
> -      msg := $(warning No debug_frame support found in libunwind-aarch64);
> +      $(warning No debug_frame support found in libunwind-aarch64)
>        CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME_AARCH64
>      endif
>    endif
>
>    ifneq ($(feature-libunwind), 1)
> -    msg := $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR);
> +    $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR)
>      NO_LOCAL_LIBUNWIND := 1
>    else
>      have_libunwind := 1
> @@ -673,7 +673,7 @@ endif
>
>  ifndef NO_LIBBPF
>    ifneq ($(feature-bpf), 1)
> -    msg := $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
> +    $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
>      NO_LIBBPF := 1
>    endif
>  endif
> @@ -686,28 +686,28 @@ endif
>
>  ifeq ($(BUILD_BPF_SKEL),1)
>    ifeq ($(filter -DHAVE_LIBELF_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
> +    $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(filter -DHAVE_ZLIB_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
> +    $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as libbpf is required)
> +    $(warning Warning: Disabled BPF skeletons as libbpf is required)
>      BUILD_BPF_SKEL := 0
>    else ifeq ($(call get-executable,$(CLANG)),)
> -    dummy := $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
> +    $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
>      BUILD_BPF_SKEL := 0
>    else
>      CLANG_VERSION := $(shell $(CLANG) --version | head -1 | sed 's/.*clang version \([[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+\).*/\1/g')
>      ifeq ($(call version-lt3,$(CLANG_VERSION),12.0.1),1)
> -      dummy := $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
> +      $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
>        BUILD_BPF_SKEL := 0
>      endif
>    endif
>    ifeq ($(BUILD_BPF_SKEL),1)
>      $(call feature_check,clang-bpf-co-re)
>      ifeq ($(feature-clang-bpf-co-re), 0)
> -      dummy := $(warning Warning: Disabled BPF skeletons as clang is too old)
> +      $(warning Warning: Disabled BPF skeletons as clang is too old)
>        BUILD_BPF_SKEL := 0
>      endif
>    endif
> @@ -727,7 +727,7 @@ dwarf-post-unwind-text := BUG
>  # setup DWARF post unwinder
>  ifdef NO_LIBUNWIND
>    ifdef NO_LIBDW_DWARF_UNWIND
> -    msg := $(warning Disabling post unwind, no support found.);
> +    $(warning Disabling post unwind, no support found.)
>      dwarf-post-unwind := 0
>    else
>      dwarf-post-unwind-text := libdw
> @@ -753,7 +753,7 @@ ifndef NO_LOCAL_LIBUNWIND
>    ifeq ($(SRCARCH),$(filter $(SRCARCH),arm arm64))
>      $(call feature_check,libunwind-debug-frame)
>      ifneq ($(feature-libunwind-debug-frame), 1)
> -      msg := $(warning No debug_frame support found in libunwind);
> +      $(warning No debug_frame support found in libunwind)
>        CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
>      endif
>    else
> @@ -782,7 +782,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
>      ifndef NO_LIBAUDIT
>        $(call feature_check,libaudit)
>        ifneq ($(feature-libaudit), 1)
> -        msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
> +        $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev)
>          NO_LIBAUDIT := 1
>        else
>          CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
> @@ -795,7 +795,7 @@ endif
>
>  ifndef NO_LIBCRYPTO
>    ifneq ($(feature-libcrypto), 1)
> -    msg := $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev);
> +    $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev)
>      NO_LIBCRYPTO := 1
>    else
>      CFLAGS += -DHAVE_LIBCRYPTO_SUPPORT
> @@ -807,7 +807,7 @@ endif
>  ifndef NO_SLANG
>    ifneq ($(feature-libslang), 1)
>      ifneq ($(feature-libslang-include-subdir), 1)
> -      msg := $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev);
> +      $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev)
>        NO_SLANG := 1
>      else
>        CFLAGS += -DHAVE_SLANG_INCLUDE_SUBDIR
> @@ -825,7 +825,7 @@ ifdef GTK2
>    FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)
>    $(call feature_check,gtk2)
>    ifneq ($(feature-gtk2), 1)
> -    msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
> +    $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev)
>      NO_GTK2 := 1
>    else
>      $(call feature_check,gtk2-infobar)
> @@ -854,7 +854,7 @@ else
>    ifneq ($(feature-libperl), 1)
>      CFLAGS += -DNO_LIBPERL
>      NO_LIBPERL := 1
> -    msg := $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev);
> +    $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev)
>    else
>      LDFLAGS += $(PERL_EMBED_LDFLAGS)
>      EXTLIBS += $(PERL_EMBED_LIBADD)
> @@ -869,7 +869,7 @@ endif
>  ifeq ($(feature-timerfd), 1)
>    CFLAGS += -DHAVE_TIMERFD_SUPPORT
>  else
> -  msg := $(warning No timerfd support. Disables 'perf kvm stat live');
> +  $(warning No timerfd support. Disables 'perf kvm stat live')
>  endif
>
>  disable-python = $(eval $(disable-python_code))
> @@ -903,7 +903,7 @@ else
>             PYTHON_EXTENSION_SUFFIX := $(shell $(PYTHON) -c 'from importlib import machinery; print(machinery.EXTENSION_SUFFIXES[0])')
>             LANG_BINDINGS += $(obj-perf)python/perf$(PYTHON_EXTENSION_SUFFIX)
>          else
> -           msg := $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent);
> +           $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent)
>           endif
>           CFLAGS += -DHAVE_LIBPYTHON_SUPPORT
>           $(call detected,CONFIG_LIBPYTHON)
> @@ -962,7 +962,7 @@ ifdef BUILD_NONDISTRO
>    ifeq ($(feature-libbfd-buildid), 1)
>      CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
>    else
> -    msg := $(warning Old version of libbfd/binutils things like PE executable profiling will not be available);
> +    $(warning Old version of libbfd/binutils things like PE executable profiling will not be available)
>    endif
>  endif
>
> @@ -994,7 +994,7 @@ ifndef NO_LZMA
>      EXTLIBS += -llzma
>      $(call detected,CONFIG_LZMA)
>    else
> -    msg := $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev);
> +    $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev)
>      NO_LZMA := 1
>    endif
>  endif
> @@ -1007,7 +1007,7 @@ ifndef NO_LIBZSTD
>      EXTLIBS += -lzstd
>      $(call detected,CONFIG_ZSTD)
>    else
> -    msg := $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR);
> +    $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR)
>      NO_LIBZSTD := 1
>    endif
>  endif
> @@ -1018,7 +1018,7 @@ ifndef NO_LIBCAP
>      EXTLIBS += -lcap
>      $(call detected,CONFIG_LIBCAP)
>    else
> -    msg := $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev);
> +    $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev)
>      NO_LIBCAP := 1
>    endif
>  endif
> @@ -1031,11 +1031,11 @@ endif
>
>  ifndef NO_LIBNUMA
>    ifeq ($(feature-libnuma), 0)
> -    msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev);
> +    $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev)
>      NO_LIBNUMA := 1
>    else
>      ifeq ($(feature-numa_num_possible_cpus), 0)
> -      msg := $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8);
> +      $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8)
>        NO_LIBNUMA := 1
>      else
>        CFLAGS += -DHAVE_LIBNUMA_SUPPORT
> @@ -1090,14 +1090,14 @@ ifndef NO_LIBBABELTRACE
>      EXTLIBS += -lbabeltrace-ctf
>      $(call detected,CONFIG_LIBBABELTRACE)
>    else
> -    msg := $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev);
> +    $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev)
>    endif
>  endif
>
>  ifndef NO_AUXTRACE
>    ifeq ($(SRCARCH),x86)
>      ifeq ($(feature-get_cpuid), 0)
> -      msg := $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc);
> +      $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc)
>        NO_AUXTRACE := 1
>      endif
>    endif
> @@ -1155,7 +1155,7 @@ ifndef NO_LIBPFM4
>      ASCIIDOC_EXTRA = -aHAVE_LIBPFM=1
>      $(call detected,CONFIG_LIBPFM4)
>    else
> -    msg := $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev);
> +    $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev)
>    endif
>  endif
>
> @@ -1173,7 +1173,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
>      CFLAGS += -DLIBTRACEEVENT_VERSION=$(LIBTRACEEVENT_VERSION_CPP)
>      $(call detected,CONFIG_LIBTRACEEVENT)
>    else
> -    dummy := $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
> +    $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
>    endif
>
>    $(call feature_check,libtracefs)
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index f8774a9b1377..3707fed8dfde 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -482,7 +482,7 @@ drm_hdr_dir := $(srctree)/tools/include/uapi/drm
>  drm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/drm_ioctl.sh
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
> +$(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
>
>  $(drm_ioctl_array): $(drm_hdr_dir)/drm.h $(drm_hdr_dir)/i915_drm.h $(drm_ioctl_tbl)
>         $(Q)$(SHELL) '$(drm_ioctl_tbl)' $(drm_hdr_dir) > $@
> @@ -672,7 +672,7 @@ tests-coresight-targets-clean:
>  all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>
>  # Create python binding output directory if not already present
> -_dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> +$(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
>
>  $(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) $(LIBPERF) $(LIBSUBCMD)
>         $(QUIET_GEN)LDSHARED="$(CC) -pthread -shared" \
> diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> index fab3095fb5d0..5735ed4479bb 100644
> --- a/tools/perf/arch/arm64/Makefile
> +++ b/tools/perf/arch/arm64/Makefile
> @@ -18,7 +18,7 @@ sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
> diff --git a/tools/perf/arch/loongarch/Makefile b/tools/perf/arch/loongarch/Makefile
> index c392e7af4743..3992a67a87d9 100644
> --- a/tools/perf/arch/loongarch/Makefile
> +++ b/tools/perf/arch/loongarch/Makefile
> @@ -17,7 +17,7 @@ sysprf := $(srctree)/tools/perf/arch/loongarch/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
> diff --git a/tools/perf/arch/mips/Makefile b/tools/perf/arch/mips/Makefile
> index 8bc09072e3d6..cd0b011b3be5 100644
> --- a/tools/perf/arch/mips/Makefile
> +++ b/tools/perf/arch/mips/Makefile
> @@ -11,7 +11,7 @@ sysdef := $(sysprf)/syscall_n64.tbl
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
> diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
> index 840ea0e59287..bf6d323574f6 100644
> --- a/tools/perf/arch/powerpc/Makefile
> +++ b/tools/perf/arch/powerpc/Makefile
> @@ -19,7 +19,7 @@ sysdef := $(sysprf)/syscall.tbl
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header64): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' '64' $(sysdef) > $@
> diff --git a/tools/perf/arch/s390/Makefile b/tools/perf/arch/s390/Makefile
> index 74bffbea03e2..56994e63b43a 100644
> --- a/tools/perf/arch/s390/Makefile
> +++ b/tools/perf/arch/s390/Makefile
> @@ -17,7 +17,7 @@ sysdef := $(sysprf)/syscall.tbl
>  systbl := $(sysprf)/mksyscalltbl
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sysdef) $(systbl)
>         $(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
> diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
> index 5a9f9a7bf07d..8952e00f9b60 100644
> --- a/tools/perf/arch/x86/Makefile
> +++ b/tools/perf/arch/x86/Makefile
> @@ -17,7 +17,7 @@ sys       := $(srctree)/tools/perf/arch/x86/entry/syscalls
>  systbl    := $(sys)/syscalltbl.sh
>
>  # Create output directory if not already present
> -_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>
>  $(header): $(sys)/syscall_64.tbl $(systbl)
>         $(Q)$(SHELL) '$(systbl)' $(sys)/syscall_64.tbl 'x86_64' > $@
> diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> index 6fba29f3222d..0aa4005017c7 100644
> --- a/tools/scripts/Makefile.include
> +++ b/tools/scripts/Makefile.include
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>  ifneq ($(O),)
>  ifeq ($(origin O), command line)
> -       dummy := $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
> +        $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
>         ABSOLUTE_O := $(shell cd $(PWD); cd $(O) ; pwd)
>         OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
>         COMMAND_O := O=$(ABSOLUTE_O)
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 492e937fab00..14684aeb4b55 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -285,7 +285,7 @@ EXTRA_CLEAN += $(GEN_HDRS) \
>                $(TEST_GEN_OBJ) \
>                cscope.*
>
> -x := $(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
> +$(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
>  $(LIBKVM_C_OBJ): $(OUTPUT)/%.o: %.c $(GEN_HDRS)
>         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
>
> @@ -298,7 +298,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS)
>  $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c
>         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
>
> -x := $(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
> +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
>  $(SPLIT_TESTS_OBJS): $(GEN_HDRS)
>  $(TEST_GEN_PROGS): $(LIBKVM_OBJS)
>  $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
> --
> 2.40.1
>
  
Masahiro Yamada Feb. 23, 2024, 2:25 a.m. UTC | #4
On Fri, Feb 23, 2024 at 2:08 AM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hello,
>
> On Wed, Feb 21, 2024 at 5:42 AM Masahiro Yamada <masahiroy@kernelorg> wrote:
> >
> > In Makefiles, $(error ), $(warning ), and $(info ) expand to the empty
> > string, as explained in the GNU Make manual [1]:
> >  "The result of the expansion of this function is the empty string."
> >
> > Therefore, they are no-op except for logging purposes.
> >
> > $(shell ...) expands to the output of the command. It expands to the
> > empty string when the command does not print anything to stdout.
> > Hence, $(shell mkdir ...) is no-op except for creating the directory.
> >
> > Remove meaningless assignments.
> >
> > [1]: https://www.gnu.org/software/make/manual/make.html#Make-Control-Functions
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > ---
> >
> > This is a treewide cleanup, but in practice, this is touching mostly
> > perf Makefiles. I am sending this to perf subsystem.
>
> How do you want to route this?  I can take it to perf tree if you're ok.


Yes, that is my expectation because it will reduce the risk
of merge conflicts.

I only included the perf maintainers and ML to To:,
and anything else in CC:
  
Namhyung Kim Feb. 26, 2024, 4:20 p.m. UTC | #5
On Wed, 21 Feb 2024 22:42:01 +0900, Masahiro Yamada wrote:
> In Makefiles, $(error ), $(warning ), and $(info ) expand to the empty
> string, as explained in the GNU Make manual [1]:
>  "The result of the expansion of this function is the empty string."
> 
> Therefore, they are no-op except for logging purposes.
> 
> $(shell ...) expands to the output of the command. It expands to the
> empty string when the command does not print anything to stdout.
> Hence, $(shell mkdir ...) is no-op except for creating the directory.
> 
> [...]

Applied to perf-tools-next, thanks!

Best regards,
  

Patch

diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index aa55850fbc21..6edf9916d41c 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -209,11 +209,11 @@  endif
 include $(srctree)/tools/scripts/utilities.mak
 
 ifeq ($(call get-executable,$(FLEX)),)
-  dummy := $(error Error: $(FLEX) is missing on this system, please install it)
+  $(error Error: $(FLEX) is missing on this system, please install it)
 endif
 
 ifeq ($(call get-executable,$(BISON)),)
-  dummy := $(error Error: $(BISON) is missing on this system, please install it)
+  $(error Error: $(BISON) is missing on this system, please install it)
 endif
 
 ifneq ($(OUTPUT),)
@@ -438,46 +438,46 @@  else
       LIBC_SUPPORT := 1
     endif
     ifeq ($(LIBC_SUPPORT),1)
-      msg := $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
+      $(error ERROR: No libelf found. Disables 'probe' tool, jvmti and BPF support. Please install libelf-dev, libelf-devel, elfutils-libelf-devel or build with NO_LIBELF=1.)
     else
       ifneq ($(filter s% -fsanitize=address%,$(EXTRA_CFLAGS),),)
         ifneq ($(shell ldconfig -p | grep libasan >/dev/null 2>&1; echo $$?), 0)
-          msg := $(error No libasan found, please install libasan);
+          $(error No libasan found, please install libasan)
         endif
       endif
 
       ifneq ($(filter s% -fsanitize=undefined%,$(EXTRA_CFLAGS),),)
         ifneq ($(shell ldconfig -p | grep libubsan >/dev/null 2>&1; echo $$?), 0)
-          msg := $(error No libubsan found, please install libubsan);
+          $(error No libubsan found, please install libubsan)
         endif
       endif
 
       ifneq ($(filter s% -static%,$(LDFLAGS),),)
-        msg := $(error No static glibc found, please install glibc-static);
+        $(error No static glibc found, please install glibc-static)
       else
-        msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]);
+        $(error No gnu/libc-version.h found, please install glibc-dev[el])
       endif
     endif
   else
     ifndef NO_LIBDW_DWARF_UNWIND
       ifneq ($(feature-libdw-dwarf-unwind),1)
         NO_LIBDW_DWARF_UNWIND := 1
-        msg := $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR);
+        $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR)
       endif
     endif
     ifneq ($(feature-dwarf), 1)
       ifndef NO_DWARF
-        msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
+        $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev)
         NO_DWARF := 1
       endif
     else
       ifneq ($(feature-dwarf_getlocations), 1)
-        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157);
+        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157)
       else
         CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SUPPORT
       endif # dwarf_getlocations
       ifneq ($(feature-dwarf_getcfi), 1)
-        msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142);
+        $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142)
       else
         CFLAGS += -DHAVE_DWARF_CFI_SUPPORT
       endif # dwarf_getcfi
@@ -525,7 +525,7 @@  ifdef CORESIGHT
       endif
     endif
   else
-    dummy := $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
+    $(error Error: No libopencsd library found or the version is not up-to-date. Please install recent libopencsd to build with CORESIGHT=1)
   endif
 endif
 
@@ -551,7 +551,7 @@  ifndef NO_LIBELF
   ifeq ($(feature-libelf-gelf_getnote), 1)
     CFLAGS += -DHAVE_GELF_GETNOTE_SUPPORT
   else
-    msg := $(warning gelf_getnote() not found on libelf, SDT support disabled);
+    $(warning gelf_getnote() not found on libelf, SDT support disabled)
   endif
 
   ifeq ($(feature-libelf-getshdrstrndx), 1)
@@ -568,7 +568,7 @@  ifndef NO_LIBELF
 
   ifndef NO_DWARF
     ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
-      msg := $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled);
+      $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled)
       NO_DWARF := 1
     else
       CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
@@ -590,11 +590,11 @@  ifndef NO_LIBELF
           $(call detected,CONFIG_LIBBPF)
           $(call detected,CONFIG_LIBBPF_DYNAMIC)
         else
-          dummy := $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel);
+          $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel)
         endif
       else
         ifeq ($(NO_ZLIB), 1)
-          dummy := $(warning Warning: Statically building libbpf not possible as zlib is missing)
+          $(warning Warning: Statically building libbpf not possible as zlib is missing)
           NO_LIBBPF := 1
         else
           # Libbpf will be built as a static library from tools/lib/bpf.
@@ -609,7 +609,7 @@  endif # NO_LIBELF
 
 ifndef NO_SDT
   ifneq ($(feature-sdt), 1)
-    msg := $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev);
+    $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev)
     NO_SDT := 1;
   else
     CFLAGS += -DHAVE_SDT_EVENT
@@ -651,13 +651,13 @@  ifndef NO_LIBUNWIND
     have_libunwind = 1
     $(call feature_check,libunwind-debug-frame-aarch64)
     ifneq ($(feature-libunwind-debug-frame-aarch64), 1)
-      msg := $(warning No debug_frame support found in libunwind-aarch64);
+      $(warning No debug_frame support found in libunwind-aarch64)
       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME_AARCH64
     endif
   endif
 
   ifneq ($(feature-libunwind), 1)
-    msg := $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR);
+    $(warning No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR)
     NO_LOCAL_LIBUNWIND := 1
   else
     have_libunwind := 1
@@ -673,7 +673,7 @@  endif
 
 ifndef NO_LIBBPF
   ifneq ($(feature-bpf), 1)
-    msg := $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
+    $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.)
     NO_LIBBPF := 1
   endif
 endif
@@ -686,28 +686,28 @@  endif
 
 ifeq ($(BUILD_BPF_SKEL),1)
   ifeq ($(filter -DHAVE_LIBELF_SUPPORT, $(CFLAGS)),)
-    dummy := $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
+    $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
     BUILD_BPF_SKEL := 0
   else ifeq ($(filter -DHAVE_ZLIB_SUPPORT, $(CFLAGS)),)
-    dummy := $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
+    $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
     BUILD_BPF_SKEL := 0
   else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
-    dummy := $(warning Warning: Disabled BPF skeletons as libbpf is required)
+    $(warning Warning: Disabled BPF skeletons as libbpf is required)
     BUILD_BPF_SKEL := 0
   else ifeq ($(call get-executable,$(CLANG)),)
-    dummy := $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
+    $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
     BUILD_BPF_SKEL := 0
   else
     CLANG_VERSION := $(shell $(CLANG) --version | head -1 | sed 's/.*clang version \([[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+\).*/\1/g')
     ifeq ($(call version-lt3,$(CLANG_VERSION),12.0.1),1)
-      dummy := $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
+      $(warning Warning: Disabled BPF skeletons as reliable BTF generation needs at least $(CLANG) version 12.0.1)
       BUILD_BPF_SKEL := 0
     endif
   endif
   ifeq ($(BUILD_BPF_SKEL),1)
     $(call feature_check,clang-bpf-co-re)
     ifeq ($(feature-clang-bpf-co-re), 0)
-      dummy := $(warning Warning: Disabled BPF skeletons as clang is too old)
+      $(warning Warning: Disabled BPF skeletons as clang is too old)
       BUILD_BPF_SKEL := 0
     endif
   endif
@@ -727,7 +727,7 @@  dwarf-post-unwind-text := BUG
 # setup DWARF post unwinder
 ifdef NO_LIBUNWIND
   ifdef NO_LIBDW_DWARF_UNWIND
-    msg := $(warning Disabling post unwind, no support found.);
+    $(warning Disabling post unwind, no support found.)
     dwarf-post-unwind := 0
   else
     dwarf-post-unwind-text := libdw
@@ -753,7 +753,7 @@  ifndef NO_LOCAL_LIBUNWIND
   ifeq ($(SRCARCH),$(filter $(SRCARCH),arm arm64))
     $(call feature_check,libunwind-debug-frame)
     ifneq ($(feature-libunwind-debug-frame), 1)
-      msg := $(warning No debug_frame support found in libunwind);
+      $(warning No debug_frame support found in libunwind)
       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
     endif
   else
@@ -782,7 +782,7 @@  ifneq ($(NO_LIBTRACEEVENT),1)
     ifndef NO_LIBAUDIT
       $(call feature_check,libaudit)
       ifneq ($(feature-libaudit), 1)
-        msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
+        $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev)
         NO_LIBAUDIT := 1
       else
         CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
@@ -795,7 +795,7 @@  endif
 
 ifndef NO_LIBCRYPTO
   ifneq ($(feature-libcrypto), 1)
-    msg := $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev);
+    $(warning No libcrypto.h found, disables jitted code injection, please install openssl-devel or libssl-dev)
     NO_LIBCRYPTO := 1
   else
     CFLAGS += -DHAVE_LIBCRYPTO_SUPPORT
@@ -807,7 +807,7 @@  endif
 ifndef NO_SLANG
   ifneq ($(feature-libslang), 1)
     ifneq ($(feature-libslang-include-subdir), 1)
-      msg := $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev);
+      $(warning slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev)
       NO_SLANG := 1
     else
       CFLAGS += -DHAVE_SLANG_INCLUDE_SUBDIR
@@ -825,7 +825,7 @@  ifdef GTK2
   FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)
   $(call feature_check,gtk2)
   ifneq ($(feature-gtk2), 1)
-    msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
+    $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev)
     NO_GTK2 := 1
   else
     $(call feature_check,gtk2-infobar)
@@ -854,7 +854,7 @@  else
   ifneq ($(feature-libperl), 1)
     CFLAGS += -DNO_LIBPERL
     NO_LIBPERL := 1
-    msg := $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev);
+    $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev)
   else
     LDFLAGS += $(PERL_EMBED_LDFLAGS)
     EXTLIBS += $(PERL_EMBED_LIBADD)
@@ -869,7 +869,7 @@  endif
 ifeq ($(feature-timerfd), 1)
   CFLAGS += -DHAVE_TIMERFD_SUPPORT
 else
-  msg := $(warning No timerfd support. Disables 'perf kvm stat live');
+  $(warning No timerfd support. Disables 'perf kvm stat live')
 endif
 
 disable-python = $(eval $(disable-python_code))
@@ -903,7 +903,7 @@  else
            PYTHON_EXTENSION_SUFFIX := $(shell $(PYTHON) -c 'from importlib import machinery; print(machinery.EXTENSION_SUFFIXES[0])')
            LANG_BINDINGS += $(obj-perf)python/perf$(PYTHON_EXTENSION_SUFFIX)
 	 else
-           msg := $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent);
+           $(warning Missing python setuptools, the python binding won't be built, please install python3-setuptools or equivalent)
          endif
          CFLAGS += -DHAVE_LIBPYTHON_SUPPORT
          $(call detected,CONFIG_LIBPYTHON)
@@ -962,7 +962,7 @@  ifdef BUILD_NONDISTRO
   ifeq ($(feature-libbfd-buildid), 1)
     CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
   else
-    msg := $(warning Old version of libbfd/binutils things like PE executable profiling will not be available);
+    $(warning Old version of libbfd/binutils things like PE executable profiling will not be available)
   endif
 endif
 
@@ -994,7 +994,7 @@  ifndef NO_LZMA
     EXTLIBS += -llzma
     $(call detected,CONFIG_LZMA)
   else
-    msg := $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev);
+    $(warning No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev)
     NO_LZMA := 1
   endif
 endif
@@ -1007,7 +1007,7 @@  ifndef NO_LIBZSTD
     EXTLIBS += -lzstd
     $(call detected,CONFIG_ZSTD)
   else
-    msg := $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR);
+    $(warning No libzstd found, disables trace compression, please install libzstd-dev[el] and/or set LIBZSTD_DIR)
     NO_LIBZSTD := 1
   endif
 endif
@@ -1018,7 +1018,7 @@  ifndef NO_LIBCAP
     EXTLIBS += -lcap
     $(call detected,CONFIG_LIBCAP)
   else
-    msg := $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev);
+    $(warning No libcap found, disables capability support, please install libcap-devel/libcap-dev)
     NO_LIBCAP := 1
   endif
 endif
@@ -1031,11 +1031,11 @@  endif
 
 ifndef NO_LIBNUMA
   ifeq ($(feature-libnuma), 0)
-    msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev);
+    $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev)
     NO_LIBNUMA := 1
   else
     ifeq ($(feature-numa_num_possible_cpus), 0)
-      msg := $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8);
+      $(warning Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8)
       NO_LIBNUMA := 1
     else
       CFLAGS += -DHAVE_LIBNUMA_SUPPORT
@@ -1090,14 +1090,14 @@  ifndef NO_LIBBABELTRACE
     EXTLIBS += -lbabeltrace-ctf
     $(call detected,CONFIG_LIBBABELTRACE)
   else
-    msg := $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev);
+    $(warning No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev)
   endif
 endif
 
 ifndef NO_AUXTRACE
   ifeq ($(SRCARCH),x86)
     ifeq ($(feature-get_cpuid), 0)
-      msg := $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc);
+      $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc)
       NO_AUXTRACE := 1
     endif
   endif
@@ -1155,7 +1155,7 @@  ifndef NO_LIBPFM4
     ASCIIDOC_EXTRA = -aHAVE_LIBPFM=1
     $(call detected,CONFIG_LIBPFM4)
   else
-    msg := $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev);
+    $(warning libpfm4 not found, disables libpfm4 support. Please install libpfm4-dev)
   endif
 endif
 
@@ -1173,7 +1173,7 @@  ifneq ($(NO_LIBTRACEEVENT),1)
     CFLAGS += -DLIBTRACEEVENT_VERSION=$(LIBTRACEEVENT_VERSION_CPP)
     $(call detected,CONFIG_LIBTRACEEVENT)
   else
-    dummy := $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
+    $(error ERROR: libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel or build with NO_LIBTRACEEVENT=1)
   endif
 
   $(call feature_check,libtracefs)
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index f8774a9b1377..3707fed8dfde 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -482,7 +482,7 @@  drm_hdr_dir := $(srctree)/tools/include/uapi/drm
 drm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/drm_ioctl.sh
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
+$(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
 
 $(drm_ioctl_array): $(drm_hdr_dir)/drm.h $(drm_hdr_dir)/i915_drm.h $(drm_ioctl_tbl)
 	$(Q)$(SHELL) '$(drm_ioctl_tbl)' $(drm_hdr_dir) > $@
@@ -672,7 +672,7 @@  tests-coresight-targets-clean:
 all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
 
 # Create python binding output directory if not already present
-_dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
+$(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
 
 $(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) $(LIBPERF) $(LIBSUBCMD)
 	$(QUIET_GEN)LDSHARED="$(CC) -pthread -shared" \
diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
index fab3095fb5d0..5735ed4479bb 100644
--- a/tools/perf/arch/arm64/Makefile
+++ b/tools/perf/arch/arm64/Makefile
@@ -18,7 +18,7 @@  sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
 systbl := $(sysprf)/mksyscalltbl
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header): $(sysdef) $(systbl)
 	$(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
diff --git a/tools/perf/arch/loongarch/Makefile b/tools/perf/arch/loongarch/Makefile
index c392e7af4743..3992a67a87d9 100644
--- a/tools/perf/arch/loongarch/Makefile
+++ b/tools/perf/arch/loongarch/Makefile
@@ -17,7 +17,7 @@  sysprf := $(srctree)/tools/perf/arch/loongarch/entry/syscalls/
 systbl := $(sysprf)/mksyscalltbl
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header): $(sysdef) $(systbl)
 	$(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
diff --git a/tools/perf/arch/mips/Makefile b/tools/perf/arch/mips/Makefile
index 8bc09072e3d6..cd0b011b3be5 100644
--- a/tools/perf/arch/mips/Makefile
+++ b/tools/perf/arch/mips/Makefile
@@ -11,7 +11,7 @@  sysdef := $(sysprf)/syscall_n64.tbl
 systbl := $(sysprf)/mksyscalltbl
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header): $(sysdef) $(systbl)
 	$(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
index 840ea0e59287..bf6d323574f6 100644
--- a/tools/perf/arch/powerpc/Makefile
+++ b/tools/perf/arch/powerpc/Makefile
@@ -19,7 +19,7 @@  sysdef := $(sysprf)/syscall.tbl
 systbl := $(sysprf)/mksyscalltbl
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header64): $(sysdef) $(systbl)
 	$(Q)$(SHELL) '$(systbl)' '64' $(sysdef) > $@
diff --git a/tools/perf/arch/s390/Makefile b/tools/perf/arch/s390/Makefile
index 74bffbea03e2..56994e63b43a 100644
--- a/tools/perf/arch/s390/Makefile
+++ b/tools/perf/arch/s390/Makefile
@@ -17,7 +17,7 @@  sysdef := $(sysprf)/syscall.tbl
 systbl := $(sysprf)/mksyscalltbl
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header): $(sysdef) $(systbl)
 	$(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
index 5a9f9a7bf07d..8952e00f9b60 100644
--- a/tools/perf/arch/x86/Makefile
+++ b/tools/perf/arch/x86/Makefile
@@ -17,7 +17,7 @@  sys       := $(srctree)/tools/perf/arch/x86/entry/syscalls
 systbl    := $(sys)/syscalltbl.sh
 
 # Create output directory if not already present
-_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+$(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header): $(sys)/syscall_64.tbl $(systbl)
 	$(Q)$(SHELL) '$(systbl)' $(sys)/syscall_64.tbl 'x86_64' > $@
diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
index 6fba29f3222d..0aa4005017c7 100644
--- a/tools/scripts/Makefile.include
+++ b/tools/scripts/Makefile.include
@@ -1,7 +1,7 @@ 
 # SPDX-License-Identifier: GPL-2.0
 ifneq ($(O),)
 ifeq ($(origin O), command line)
-	dummy := $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
+        $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
 	ABSOLUTE_O := $(shell cd $(PWD); cd $(O) ; pwd)
 	OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
 	COMMAND_O := O=$(ABSOLUTE_O)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
index 492e937fab00..14684aeb4b55 100644
--- a/tools/testing/selftests/kvm/Makefile
+++ b/tools/testing/selftests/kvm/Makefile
@@ -285,7 +285,7 @@  EXTRA_CLEAN += $(GEN_HDRS) \
 	       $(TEST_GEN_OBJ) \
 	       cscope.*
 
-x := $(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
+$(shell mkdir -p $(sort $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
 $(LIBKVM_C_OBJ): $(OUTPUT)/%.o: %.c $(GEN_HDRS)
 	$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
 
@@ -298,7 +298,7 @@  $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS)
 $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c
 	$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
 
-x := $(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
+$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
 $(SPLIT_TESTS_OBJS): $(GEN_HDRS)
 $(TEST_GEN_PROGS): $(LIBKVM_OBJS)
 $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)