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