1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 216671c1eSJiri Olsa# Some of the tools (perf) use same make variables 316671c1eSJiri Olsa# as in kernel build. 416671c1eSJiri Olsaexport srctree= 516671c1eSJiri Olsaexport objtree= 616671c1eSJiri Olsa 72363ecb1SBorislav Petkovinclude scripts/Makefile.include 82363ecb1SBorislav Petkov 9d5dd8afbSBorislav Petkovhelp: 10d5dd8afbSBorislav Petkov @echo 'Possible targets:' 11d5dd8afbSBorislav Petkov @echo '' 12a0c4acc0SLv Zheng @echo ' acpi - ACPI tools' 1338fe26b4SAndy Shevchenko @echo ' bpf - misc BPF tools' 1408609989SWilliam Breathitt Gray @echo ' counter - counter tools' 15d5dd8afbSBorislav Petkov @echo ' cpupower - a tool for all things x86 CPU power' 164ab5a5d2SThorsten Leemhuis @echo ' debugging - tools for debugging' 17*f74ee329SQinxin Xia @echo ' dma - tools for DMA mapping' 18d5dd8afbSBorislav Petkov @echo ' firewire - the userspace part of nosy, an IEEE-1394 traffic sniffer' 191e510603SAndrey Smirnov @echo ' firmware - Firmware tools' 2020a7add8SJosh Poimboeuf @echo ' freefall - laptop accelerometer program for disk protection' 216d591c46SLinus Walleij @echo ' gpio - GPIO tools' 223eb2094cSBjarke Istrup Pedersen @echo ' hv - tools used when in Hyper-V clients' 2353375103SRoberta Dobrescu @echo ' iio - IIO tools' 243fb4f7cdSSrinivas Pandruvada @echo ' intel-speed-select - Intel Speed Select tool' 25f9bc9e65SJanosch Frank @echo ' kvm_stat - top-like utility for displaying kvm statistics' 26fa7f3242SDavid Lechner @echo ' leds - LEDs tools' 270b37dff1SWilly Tarreau @echo ' nolibc - nolibc headers testing and installation' 2838fe26b4SAndy Shevchenko @echo ' objtool - an ELF object analysis tool' 29d5dd8afbSBorislav Petkov @echo ' perf - Linux performance measurement and analysis tool' 30d5dd8afbSBorislav Petkov @echo ' selftests - various kernel selftests' 312a52ca7cSTejun Heo @echo ' sched_ext - sched_ext example schedulers' 32950313ebSMasami Hiramatsu @echo ' bootconfig - boot config tool' 335eca4d84SJoshua Clayton @echo ' spi - spi tools' 3420a7add8SJosh Poimboeuf @echo ' tmon - thermal monitoring and tuning tool' 35110acbc6SDaniel Lezcano @echo ' thermometer - temperature capture tool' 36077df623SDaniel Lezcano @echo ' thermal-engine - thermal monitoring tool' 3747c4b0deSDaniel Lezcano @echo ' thermal - thermal library' 38e23db805SViktor Rosendahl @echo ' tracing - misc tracing tools' 39d5dd8afbSBorislav Petkov @echo ' turbostat - Intel CPU idle stats and freq reporting tool' 40d5dd8afbSBorislav Petkov @echo ' usb - USB testing tools' 41d5dd8afbSBorislav Petkov @echo ' virtio - vhost test module' 42a1014824SSeongJae Park @echo ' mm - misc mm tools' 439d64fc08SMario Limonciello @echo ' wmi - WMI interface examples' 44d5dd8afbSBorislav Petkov @echo ' x86_energy_perf_policy - Intel energy policy tool' 45a427e7f9SJoe Damato @echo ' ynl - ynl headers, library, and python tool' 46d5dd8afbSBorislav Petkov @echo '' 47ea01fa9fSBorislav Petkov @echo 'You can do:' 48ea01fa9fSBorislav Petkov @echo ' $$ make -C tools/ <tool>_install' 49ea01fa9fSBorislav Petkov @echo '' 50ea01fa9fSBorislav Petkov @echo ' from the kernel command line to build and install one of' 51ea01fa9fSBorislav Petkov @echo ' the tools above' 52ea01fa9fSBorislav Petkov @echo '' 53f6ba98c5SKamal Mostafa @echo ' $$ make tools/all' 54f6ba98c5SKamal Mostafa @echo '' 55f6ba98c5SKamal Mostafa @echo ' builds all tools.' 56f6ba98c5SKamal Mostafa @echo '' 57ea01fa9fSBorislav Petkov @echo ' $$ make tools/install' 58ea01fa9fSBorislav Petkov @echo '' 59ea01fa9fSBorislav Petkov @echo ' installs all tools.' 60ea01fa9fSBorislav Petkov @echo '' 61d5dd8afbSBorislav Petkov @echo 'Cleaning targets:' 62d5dd8afbSBorislav Petkov @echo '' 63d5dd8afbSBorislav Petkov @echo ' all of the above with the "_clean" string appended cleans' 64d5dd8afbSBorislav Petkov @echo ' the respective build directory.' 65d5dd8afbSBorislav Petkov @echo ' clean: a summary clean target to clean _all_ folders' 66d5dd8afbSBorislav Petkov 67a0c4acc0SLv Zhengacpi: FORCE 68a0c4acc0SLv Zheng $(call descend,power/$@) 69a0c4acc0SLv Zheng 702363ecb1SBorislav Petkovcpupower: FORCE 71ca9dfc6cSDavid Howells $(call descend,power/$@) 722363ecb1SBorislav Petkov 73*f74ee329SQinxin Xiacounter dma firewire hv guest bootconfig spi usb virtio mm bpf iio gpio objtool leds wmi firmware debugging tracing: FORCE 7485c66be1SBorislav Petkov $(call descend,$@) 7585c66be1SBorislav Petkov 7633a57ce0SJiri Olsabpf/%: FORCE 7733a57ce0SJiri Olsa $(call descend,$@) 7833a57ce0SJiri Olsa 79379a9a28SJiri Olsalibapi: FORCE 80553873e1SBorislav Petkov $(call descend,lib/api) 8185c66be1SBorislav Petkov 82fe20cad4SWilly Tarreaunolibc: FORCE 83fe20cad4SWilly Tarreau $(call descend,include/nolibc) 84fe20cad4SWilly Tarreau 850b37dff1SWilly Tarreaunolibc_%: FORCE 860b37dff1SWilly Tarreau $(call descend,include/nolibc,$(patsubst nolibc_%,%,$@)) 870b37dff1SWilly Tarreau 8816671c1eSJiri Olsa# The perf build does not follow the descend function setup, 8916671c1eSJiri Olsa# invoking it via it's own make rule. 9016671c1eSJiri OlsaPERF_O = $(if $(O),$(O)/tools/perf,) 9116671c1eSJiri Olsa 92379a9a28SJiri Olsaperf: FORCE 9316671c1eSJiri Olsa $(Q)mkdir -p $(PERF_O) . 9416671c1eSJiri Olsa $(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir= 952363ecb1SBorislav Petkov 962a52ca7cSTejun Heosched_ext: FORCE 972a52ca7cSTejun Heo $(call descend,sched_ext) 982a52ca7cSTejun Heo 992363ecb1SBorislav Petkovselftests: FORCE 100ca9dfc6cSDavid Howells $(call descend,testing/$@) 1012363ecb1SBorislav Petkov 10247c4b0deSDaniel Lezcanothermal: FORCE 10347c4b0deSDaniel Lezcano $(call descend,lib/$@) 10447c4b0deSDaniel Lezcano 1053fb4f7cdSSrinivas Pandruvadaturbostat x86_energy_perf_policy intel-speed-select: FORCE 106ca9dfc6cSDavid Howells $(call descend,power/x86/$@) 1072363ecb1SBorislav Petkov 10894f69966SJacob Pantmon: FORCE 10994f69966SJacob Pan $(call descend,thermal/$@) 11094f69966SJacob Pan 111110acbc6SDaniel Lezcanothermometer: FORCE 112110acbc6SDaniel Lezcano $(call descend,thermal/$@) 113110acbc6SDaniel Lezcano 114077df623SDaniel Lezcanothermal-engine: FORCE thermal 115077df623SDaniel Lezcano $(call descend,thermal/$@) 116077df623SDaniel Lezcano 117b3fd7368SPali Rohárfreefall: FORCE 118b3fd7368SPali Rohár $(call descend,laptop/$@) 119b3fd7368SPali Rohár 120ee5f7d79SJustin M. Forbeskvm_stat: FORCE 121ee5f7d79SJustin M. Forbes $(call descend,kvm/$@) 122ee5f7d79SJustin M. Forbes 123a427e7f9SJoe Damatoynl: FORCE 124a427e7f9SJoe Damato $(call descend,net/ynl) 125a427e7f9SJoe Damato 126*f74ee329SQinxin Xiaall: acpi counter cpupower dma gpio hv firewire \ 127950313ebSMasami Hiramatsu perf selftests bootconfig spi turbostat usb \ 128a1014824SSeongJae Park virtio mm bpf x86_energy_perf_policy \ 1294ab5a5d2SThorsten Leemhuis tmon freefall iio objtool kvm_stat wmi \ 130a427e7f9SJoe Damato debugging tracing thermal thermometer thermal-engine ynl 131f6ba98c5SKamal Mostafa 132a0c4acc0SLv Zhengacpi_install: 133a0c4acc0SLv Zheng $(call descend,power/$(@:_install=),install) 134a0c4acc0SLv Zheng 1352363ecb1SBorislav Petkovcpupower_install: 136ca9dfc6cSDavid Howells $(call descend,power/$(@:_install=),install) 1372363ecb1SBorislav Petkov 138*f74ee329SQinxin Xiacounter_install dma_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 debugging_install tracing_install: 139ca9dfc6cSDavid Howells $(call descend,$(@:_install=),install) 1402363ecb1SBorislav Petkov 1412363ecb1SBorislav Petkovselftests_install: 1429a13c658SKevin Hilman $(call descend,testing/$(@:_install=),install) 1432363ecb1SBorislav Petkov 14447c4b0deSDaniel Lezcanothermal_install: 14547c4b0deSDaniel Lezcano $(call descend,lib/$(@:_install=),install) 14647c4b0deSDaniel Lezcano 1473fb4f7cdSSrinivas Pandruvadaturbostat_install x86_energy_perf_policy_install intel-speed-select_install: 148ca9dfc6cSDavid Howells $(call descend,power/x86/$(@:_install=),install) 1492363ecb1SBorislav Petkov 15094f69966SJacob Pantmon_install: 15194f69966SJacob Pan $(call descend,thermal/$(@:_install=),install) 15294f69966SJacob Pan 153110acbc6SDaniel Lezcanothermometer_install: 154110acbc6SDaniel Lezcano $(call descend,thermal/$(@:_install=),install) 155110acbc6SDaniel Lezcano 156077df623SDaniel Lezcanothermal-engine_install: 157077df623SDaniel Lezcano $(call descend,thermal/$(@:_install=),install) 158077df623SDaniel Lezcano 159b3fd7368SPali Rohárfreefall_install: 160b3fd7368SPali Rohár $(call descend,laptop/$(@:_install=),install) 161b3fd7368SPali Rohár 162f9bc9e65SJanosch Frankkvm_stat_install: 163f9bc9e65SJanosch Frank $(call descend,kvm/$(@:_install=),install) 164f9bc9e65SJanosch Frank 165a427e7f9SJoe Damatoynl_install: 166a427e7f9SJoe Damato $(call descend,net/$(@:_install=),install) 167a427e7f9SJoe Damato 168*f74ee329SQinxin Xiainstall: acpi_install counter_install cpupower_install dma_install gpio_install \ 1697246f4dcSSasha Levin hv_install firewire_install iio_install \ 17092e015b1SGreg Thelen perf_install selftests_install turbostat_install usb_install \ 171a1014824SSeongJae Park virtio_install mm_install bpf_install x86_energy_perf_policy_install \ 1729d64fc08SMario Limonciello tmon_install freefall_install objtool_install kvm_stat_install \ 17386c2345aSJianfeng Liu wmi_install debugging_install intel-speed-select_install \ 174a427e7f9SJoe Damato tracing_install thermometer_install thermal-engine_install ynl_install 1752363ecb1SBorislav Petkov 176a0c4acc0SLv Zhengacpi_clean: 177a0c4acc0SLv Zheng $(call descend,power/acpi,clean) 178a0c4acc0SLv Zheng 1792363ecb1SBorislav Petkovcpupower_clean: 180ca9dfc6cSDavid Howells $(call descend,power/cpupower,clean) 1812363ecb1SBorislav Petkov 182*f74ee329SQinxin Xiacounter_clean dma_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 firmware_clean debugging_clean tracing_clean: 18385c66be1SBorislav Petkov $(call descend,$(@:_clean=),clean) 18485c66be1SBorislav Petkov 185379a9a28SJiri Olsalibapi_clean: 186553873e1SBorislav Petkov $(call descend,lib/api,clean) 18785c66be1SBorislav Petkov 1882f5a7f1dSJiri Olsalibbpf_clean: 1892f5a7f1dSJiri Olsa $(call descend,lib/bpf,clean) 1902f5a7f1dSJiri Olsa 1912f5a7f1dSJiri Olsalibsubcmd_clean: 1922f5a7f1dSJiri Olsa $(call descend,lib/subcmd,clean) 1932f5a7f1dSJiri Olsa 194379a9a28SJiri Olsaperf_clean: 195ab362f5aSJiri Olsa $(Q)mkdir -p $(PERF_O) . 196ab362f5aSJiri Olsa $(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir= clean 1972363ecb1SBorislav Petkov 1982a52ca7cSTejun Heosched_ext_clean: 1992a52ca7cSTejun Heo $(call descend,sched_ext,clean) 2002a52ca7cSTejun Heo 2012363ecb1SBorislav Petkovselftests_clean: 202ca9dfc6cSDavid Howells $(call descend,testing/$(@:_clean=),clean) 2032363ecb1SBorislav Petkov 20447c4b0deSDaniel Lezcanothermal_clean: 20547c4b0deSDaniel Lezcano $(call descend,lib/thermal,clean) 20647c4b0deSDaniel Lezcano 2073fb4f7cdSSrinivas Pandruvadaturbostat_clean x86_energy_perf_policy_clean intel-speed-select_clean: 208ca9dfc6cSDavid Howells $(call descend,power/x86/$(@:_clean=),clean) 2092363ecb1SBorislav Petkov 210110acbc6SDaniel Lezcanothermometer_clean: 211110acbc6SDaniel Lezcano $(call descend,thermal/thermometer,clean) 212110acbc6SDaniel Lezcano 213077df623SDaniel Lezcanothermal-engine_clean: 214077df623SDaniel Lezcano $(call descend,thermal/thermal-engine,clean) 215077df623SDaniel Lezcano 21694f69966SJacob Pantmon_clean: 21794f69966SJacob Pan $(call descend,thermal/tmon,clean) 21894f69966SJacob Pan 219b3fd7368SPali Rohárfreefall_clean: 220b3fd7368SPali Rohár $(call descend,laptop/freefall,clean) 221b3fd7368SPali Rohár 2222f5a7f1dSJiri Olsabuild_clean: 2232f5a7f1dSJiri Olsa $(call descend,build,clean) 2242f5a7f1dSJiri Olsa 225a427e7f9SJoe Damatoynl_clean: 226a427e7f9SJoe Damato $(call descend,net/$(@:_clean=),clean) 227a427e7f9SJoe Damato 228*f74ee329SQinxin Xiaclean: acpi_clean counter_clean cpupower_clean dma_clean hv_clean firewire_clean \ 229950313ebSMasami Hiramatsu perf_clean selftests_clean turbostat_clean bootconfig_clean spi_clean usb_clean virtio_clean \ 230a1014824SSeongJae Park mm_clean bpf_clean iio_clean x86_energy_perf_policy_clean tmon_clean \ 2317246f4dcSSasha Levin freefall_clean build_clean libbpf_clean libsubcmd_clean \ 23286c2345aSJianfeng Liu gpio_clean objtool_clean leds_clean wmi_clean firmware_clean debugging_clean \ 2332a52ca7cSTejun Heo intel-speed-select_clean tracing_clean thermal_clean thermometer_clean thermal-engine_clean \ 234a427e7f9SJoe Damato sched_ext_clean ynl_clean 2352363ecb1SBorislav Petkov 2362363ecb1SBorislav Petkov.PHONY: FORCE 237