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 ' counter - counter 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 ' nolibc - nolibc headers testing and installation' 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 ' thermometer - temperature capture tool' 35 @echo ' thermal-engine - thermal monitoring tool' 36 @echo ' thermal - thermal library' 37 @echo ' tracing - misc tracing tools' 38 @echo ' turbostat - Intel CPU idle stats and freq reporting tool' 39 @echo ' usb - USB testing tools' 40 @echo ' virtio - vhost test module' 41 @echo ' mm - misc mm tools' 42 @echo ' wmi - WMI interface examples' 43 @echo ' x86_energy_perf_policy - Intel energy policy tool' 44 @echo '' 45 @echo 'You can do:' 46 @echo ' $$ make -C tools/ <tool>_install' 47 @echo '' 48 @echo ' from the kernel command line to build and install one of' 49 @echo ' the tools above' 50 @echo '' 51 @echo ' $$ make tools/all' 52 @echo '' 53 @echo ' builds all tools.' 54 @echo '' 55 @echo ' $$ make tools/install' 56 @echo '' 57 @echo ' installs all tools.' 58 @echo '' 59 @echo 'Cleaning targets:' 60 @echo '' 61 @echo ' all of the above with the "_clean" string appended cleans' 62 @echo ' the respective build directory.' 63 @echo ' clean: a summary clean target to clean _all_ folders' 64 65acpi: FORCE 66 $(call descend,power/$@) 67 68cpupower: FORCE 69 $(call descend,power/$@) 70 71counter firewire hv guest bootconfig spi usb virtio mm bpf iio gpio objtool leds wmi pci firmware debugging tracing: FORCE 72 $(call descend,$@) 73 74bpf/%: FORCE 75 $(call descend,$@) 76 77libapi: FORCE 78 $(call descend,lib/api) 79 80nolibc: FORCE 81 $(call descend,include/nolibc) 82 83nolibc_%: FORCE 84 $(call descend,include/nolibc,$(patsubst nolibc_%,%,$@)) 85 86# The perf build does not follow the descend function setup, 87# invoking it via it's own make rule. 88PERF_O = $(if $(O),$(O)/tools/perf,) 89 90perf: FORCE 91 $(Q)mkdir -p $(PERF_O) . 92 $(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir= 93 94selftests: FORCE 95 $(call descend,testing/$@) 96 97thermal: FORCE 98 $(call descend,lib/$@) 99 100turbostat x86_energy_perf_policy intel-speed-select: FORCE 101 $(call descend,power/x86/$@) 102 103tmon: FORCE 104 $(call descend,thermal/$@) 105 106thermometer: FORCE 107 $(call descend,thermal/$@) 108 109thermal-engine: FORCE thermal 110 $(call descend,thermal/$@) 111 112freefall: FORCE 113 $(call descend,laptop/$@) 114 115kvm_stat: FORCE 116 $(call descend,kvm/$@) 117 118all: acpi counter cpupower gpio hv firewire \ 119 perf selftests bootconfig spi turbostat usb \ 120 virtio mm bpf x86_energy_perf_policy \ 121 tmon freefall iio objtool kvm_stat wmi \ 122 pci debugging tracing thermal thermometer thermal-engine 123 124acpi_install: 125 $(call descend,power/$(@:_install=),install) 126 127cpupower_install: 128 $(call descend,power/$(@:_install=),install) 129 130counter_install firewire_install gpio_install hv_install iio_install perf_install bootconfig_install spi_install usb_install virtio_install mm_install bpf_install objtool_install wmi_install pci_install debugging_install tracing_install: 131 $(call descend,$(@:_install=),install) 132 133selftests_install: 134 $(call descend,testing/$(@:_install=),install) 135 136thermal_install: 137 $(call descend,lib/$(@:_install=),install) 138 139turbostat_install x86_energy_perf_policy_install intel-speed-select_install: 140 $(call descend,power/x86/$(@:_install=),install) 141 142tmon_install: 143 $(call descend,thermal/$(@:_install=),install) 144 145thermometer_install: 146 $(call descend,thermal/$(@:_install=),install) 147 148thermal-engine_install: 149 $(call descend,thermal/$(@:_install=),install) 150 151freefall_install: 152 $(call descend,laptop/$(@:_install=),install) 153 154kvm_stat_install: 155 $(call descend,kvm/$(@:_install=),install) 156 157install: acpi_install counter_install cpupower_install gpio_install \ 158 hv_install firewire_install iio_install \ 159 perf_install selftests_install turbostat_install usb_install \ 160 virtio_install mm_install bpf_install x86_energy_perf_policy_install \ 161 tmon_install freefall_install objtool_install kvm_stat_install \ 162 wmi_install pci_install debugging_install intel-speed-select_install \ 163 tracing_install thermometer_install thermal-engine_install 164 165acpi_clean: 166 $(call descend,power/acpi,clean) 167 168cpupower_clean: 169 $(call descend,power/cpupower,clean) 170 171counter_clean hv_clean firewire_clean bootconfig_clean spi_clean usb_clean virtio_clean mm_clean wmi_clean bpf_clean iio_clean gpio_clean objtool_clean leds_clean pci_clean firmware_clean debugging_clean tracing_clean: 172 $(call descend,$(@:_clean=),clean) 173 174libapi_clean: 175 $(call descend,lib/api,clean) 176 177libbpf_clean: 178 $(call descend,lib/bpf,clean) 179 180libsubcmd_clean: 181 $(call descend,lib/subcmd,clean) 182 183perf_clean: 184 $(Q)mkdir -p $(PERF_O) . 185 $(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir= clean 186 187selftests_clean: 188 $(call descend,testing/$(@:_clean=),clean) 189 190thermal_clean: 191 $(call descend,lib/thermal,clean) 192 193turbostat_clean x86_energy_perf_policy_clean intel-speed-select_clean: 194 $(call descend,power/x86/$(@:_clean=),clean) 195 196thermometer_clean: 197 $(call descend,thermal/thermometer,clean) 198 199thermal-engine_clean: 200 $(call descend,thermal/thermal-engine,clean) 201 202tmon_clean: 203 $(call descend,thermal/tmon,clean) 204 205freefall_clean: 206 $(call descend,laptop/freefall,clean) 207 208build_clean: 209 $(call descend,build,clean) 210 211clean: acpi_clean counter_clean cpupower_clean hv_clean firewire_clean \ 212 perf_clean selftests_clean turbostat_clean bootconfig_clean spi_clean usb_clean virtio_clean \ 213 mm_clean bpf_clean iio_clean x86_energy_perf_policy_clean tmon_clean \ 214 freefall_clean build_clean libbpf_clean libsubcmd_clean \ 215 gpio_clean objtool_clean leds_clean wmi_clean pci_clean firmware_clean debugging_clean \ 216 intel-speed-select_clean tracing_clean thermal_clean thermometer_clean thermal-engine_clean 217 218.PHONY: FORCE 219