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