xref: /linux/tools/perf/Makefile (revision b016a0dd08999218a05a4b176bc08a9ff68ccc5e)
1*b016a0ddSIngo Molnar
2*b016a0ddSIngo Molnar#
3*b016a0ddSIngo Molnar# Clear out the built-in rules GNU make defines by default (such as .o targets),
4*b016a0ddSIngo Molnar# so that we pass through all targets to Makefile.perf:
5*b016a0ddSIngo Molnar#
6*b016a0ddSIngo Molnar.SUFFIXES:
7*b016a0ddSIngo Molnar
8bd69cc28SIngo Molnar#
9bd69cc28SIngo Molnar# Do a parallel build with multiple jobs, based on the number of CPUs online
10bd69cc28SIngo Molnar# in this system: 'make -j8' on a 8-CPU system, etc.
11bd69cc28SIngo Molnar#
12bd69cc28SIngo Molnar# (To override it, run 'make JOBS=1' and similar.)
13bd69cc28SIngo Molnar#
14bd69cc28SIngo Molnarifeq ($(JOBS),)
15bd69cc28SIngo Molnar  JOBS := $(shell grep -c ^processor /proc/cpuinfo 2>/dev/null)
16bd69cc28SIngo Molnar  ifeq ($(JOBS),)
17bd69cc28SIngo Molnar    JOBS := 1
18bd69cc28SIngo Molnar  endif
19bd69cc28SIngo Molnarendif
20c29ede61SArnaldo Carvalho de Melo
21bd69cc28SIngo Molnarexport JOBS
22bd69cc28SIngo Molnar
2373a725f0SIngo Molnardefine print_msg
2473a725f0SIngo Molnar  @printf '    BUILD: Doing '\''make \033[33m-j'$(JOBS)'\033[m'\'' parallel build\n'
2573a725f0SIngo Molnarendef
2673a725f0SIngo Molnar
2773a725f0SIngo Molnardefine make
2873a725f0SIngo Molnar  @$(MAKE) -f Makefile.perf --no-print-directory -j$(JOBS) $@
2973a725f0SIngo Molnarendef
30bd69cc28SIngo Molnar
31bd69cc28SIngo Molnar#
32bd69cc28SIngo Molnar# Needed if no target specified:
33bd69cc28SIngo Molnar#
34a3d1ee10SMichael Wittenall:
3573a725f0SIngo Molnar	$(print_msg)
3673a725f0SIngo Molnar	$(make)
3786470930SIngo Molnar
3873a725f0SIngo Molnar#
3973a725f0SIngo Molnar# The clean target is not really parallel, don't print the jobs info:
4073a725f0SIngo Molnar#
4173a725f0SIngo Molnarclean:
4273a725f0SIngo Molnar	$(make)
4373a725f0SIngo Molnar
4473a725f0SIngo Molnar#
4573a725f0SIngo Molnar# All other targets get passed through:
4673a725f0SIngo Molnar#
47bd69cc28SIngo Molnar%:
4873a725f0SIngo Molnar	$(print_msg)
4973a725f0SIngo Molnar	$(make)
50