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