1# SPDX-License-Identifier: GPL-2.0 2# Some of the tools (perf) use same make variables 3# as in kernel build. 4export srctree= 5export objtree= 6 7include scripts/Makefile.include 8 9help: 10 @echo 'Possible targets:' 11 @echo '' 12 @echo ' acpi - ACPI tools' 13 @echo ' bpf - misc BPF tools' 14 @echo ' cgroup - cgroup tools' 15 @echo ' cpupower - a tool for all things x86 CPU power' 16 @echo ' debugging - tools for debugging' 17 @echo ' firewire - the userspace part of nosy, an IEEE-1394 traffic sniffer' 18 @echo ' firmware - Firmware tools' 19 @echo ' freefall - laptop accelerometer program for disk protection' 20 @echo ' gpio - GPIO tools' 21 @echo ' hv - tools used when in Hyper-V clients' 22 @echo ' iio - IIO tools' 23 @echo ' intel-speed-select - Intel Speed Select tool' 24 @echo ' kvm_stat - top-like utility for displaying kvm statistics' 25 @echo ' leds - LEDs tools' 26 @echo ' liblockdep - user-space wrapper for kernel locking-validator' 27 @echo ' objtool - an ELF object analysis tool' 28 @echo ' pci - PCI tools' 29 @echo ' perf - Linux performance measurement and analysis tool' 30 @echo ' selftests - various kernel selftests' 31 @echo ' bootconfig - boot config tool' 32 @echo ' spi - spi tools' 33 @echo ' tmon - thermal monitoring and tuning tool' 34 @echo ' turbostat - Intel CPU idle stats and freq reporting tool' 35 @echo ' usb - USB testing tools' 36 @echo ' virtio - vhost test module' 37 @echo ' vm - misc vm tools' 38 @echo ' wmi - WMI interface examples' 39 @echo ' x86_energy_perf_policy - Intel energy policy tool' 40 @echo '' 41 @echo 'You can do:' 42 @echo ' $$ make -C tools/ <tool>_install' 43 @echo '' 44 @echo ' from the kernel command line to build and install one of' 45 @echo ' the tools above' 46 @echo '' 47 @echo ' $$ make tools/all' 48 @echo '' 49 @echo ' builds all tools.' 50 @echo '' 51 @echo ' $$ make tools/install' 52 @echo '' 53 @echo ' installs all tools.' 54 @echo '' 55 @echo 'Cleaning targets:' 56 @echo '' 57 @echo ' all of the above with the "_clean" string appended cleans' 58 @echo ' the respective build directory.' 59 @echo ' clean: a summary clean target to clean _all_ folders' 60 61acpi: FORCE 62 $(call descend,power/$@) 63 64cpupower: FORCE 65 $(call descend,power/$@) 66 67cgroup firewire hv guest bootconfig spi usb virtio vm bpf iio gpio objtool leds wmi pci firmware debugging: FORCE 68 $(call descend,$@) 69 70bpf/%: FORCE 71 $(call descend,$@) 72 73liblockdep: FORCE 74 $(call descend,lib/lockdep) 75 76libapi: FORCE 77 $(call descend,lib/api) 78 79# The perf build does not follow the descend function setup, 80# invoking it via it's own make rule. 81PERF_O = $(if $(O),$(O)/tools/perf,) 82 83perf: FORCE 84 $(Q)mkdir -p $(PERF_O) . 85 $(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir= 86 87selftests: FORCE 88 $(call descend,testing/$@) 89 90turbostat x86_energy_perf_policy intel-speed-select: FORCE 91 $(call descend,power/x86/$@) 92 93tmon: FORCE 94 $(call descend,thermal/$@) 95 96freefall: FORCE 97 $(call descend,laptop/$@) 98 99kvm_stat: FORCE 100 $(call descend,kvm/$@) 101 102all: acpi cgroup cpupower gpio hv firewire liblockdep \ 103 perf selftests bootconfig spi turbostat usb \ 104 virtio vm bpf x86_energy_perf_policy \ 105 tmon freefall iio objtool kvm_stat wmi \ 106 pci debugging 107 108acpi_install: 109 $(call descend,power/$(@:_install=),install) 110 111cpupower_install: 112 $(call descend,power/$(@:_install=),install) 113 114cgroup_install firewire_install gpio_install hv_install iio_install perf_install bootconfig_install spi_install usb_install virtio_install vm_install bpf_install objtool_install wmi_install pci_install debugging_install: 115 $(call descend,$(@:_install=),install) 116 117liblockdep_install: 118 $(call descend,lib/lockdep,install) 119 120selftests_install: 121 $(call descend,testing/$(@:_install=),install) 122 123turbostat_install x86_energy_perf_policy_install intel-speed-select_install: 124 $(call descend,power/x86/$(@:_install=),install) 125 126tmon_install: 127 $(call descend,thermal/$(@:_install=),install) 128 129freefall_install: 130 $(call descend,laptop/$(@:_install=),install) 131 132kvm_stat_install: 133 $(call descend,kvm/$(@:_install=),install) 134 135install: acpi_install cgroup_install cpupower_install gpio_install \ 136 hv_install firewire_install iio_install liblockdep_install \ 137 perf_install selftests_install turbostat_install usb_install \ 138 virtio_install vm_install bpf_install x86_energy_perf_policy_install \ 139 tmon_install freefall_install objtool_install kvm_stat_install \ 140 wmi_install pci_install debugging_install intel-speed-select_install 141 142acpi_clean: 143 $(call descend,power/acpi,clean) 144 145cpupower_clean: 146 $(call descend,power/cpupower,clean) 147 148cgroup_clean hv_clean firewire_clean bootconfig_clean spi_clean usb_clean virtio_clean vm_clean wmi_clean bpf_clean iio_clean gpio_clean objtool_clean leds_clean pci_clean firmware_clean debugging_clean: 149 $(call descend,$(@:_clean=),clean) 150 151liblockdep_clean: 152 $(call descend,lib/lockdep,clean) 153 154libapi_clean: 155 $(call descend,lib/api,clean) 156 157libbpf_clean: 158 $(call descend,lib/bpf,clean) 159 160libsubcmd_clean: 161 $(call descend,lib/subcmd,clean) 162 163perf_clean: 164 $(Q)mkdir -p $(PERF_O) . 165 $(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir= clean 166 167selftests_clean: 168 $(call descend,testing/$(@:_clean=),clean) 169 170turbostat_clean x86_energy_perf_policy_clean intel-speed-select_clean: 171 $(call descend,power/x86/$(@:_clean=),clean) 172 173tmon_clean: 174 $(call descend,thermal/tmon,clean) 175 176freefall_clean: 177 $(call descend,laptop/freefall,clean) 178 179build_clean: 180 $(call descend,build,clean) 181 182clean: acpi_clean cgroup_clean cpupower_clean hv_clean firewire_clean \ 183 perf_clean selftests_clean turbostat_clean bootconfig_clean spi_clean usb_clean virtio_clean \ 184 vm_clean bpf_clean iio_clean x86_energy_perf_policy_clean tmon_clean \ 185 freefall_clean build_clean libbpf_clean libsubcmd_clean liblockdep_clean \ 186 gpio_clean objtool_clean leds_clean wmi_clean pci_clean firmware_clean debugging_clean \ 187 intel-speed-select_clean 188 189.PHONY: FORCE 190