Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf build: Add build documentation

Adding file describing the basics of perf build process.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Tested-by: Will Deacon <will.deacon@arm.com>
Cc: Alexis Berlemont <alexis.berlemont@gmail.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-ibgf7vxyduwohlqqfayl11xb@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Jiri Olsa and committed by
Arnaldo Carvalho de Melo
f819f703 db848662

+49
+49
tools/perf/Documentation/Build.txt
··· 1 + 2 + 1) perf build 3 + ============= 4 + The perf build process consists of several separated building blocks, 5 + which are linked together to form the perf binary: 6 + - libperf library (static) 7 + - perf builtin commands 8 + - traceevent library (static) 9 + - GTK ui library 10 + 11 + Several makefiles govern the perf build: 12 + 13 + - Makefile 14 + top level Makefile working as a wrapper that calls the main 15 + Makefile.perf with a -j option to do parallel builds. 16 + 17 + - Makefile.perf 18 + main makefile that triggers build of all perf objects including 19 + installation and documentation processing. 20 + 21 + - tools/build/Makefile.build 22 + main makefile of the build framework 23 + 24 + - tools/build/Build.include 25 + build framework generic definitions 26 + 27 + - Build makefiles 28 + makefiles that defines build objects 29 + 30 + Please refer to tools/build/Documentation/Build.txt for more 31 + information about build framework. 32 + 33 + 34 + 2) perf build 35 + ============= 36 + The Makefile.perf triggers the build framework for build objects: 37 + perf, libperf, gtk 38 + 39 + resulting in following objects: 40 + $ ls *-in.o 41 + gtk-in.o libperf-in.o perf-in.o 42 + 43 + Those objects are then used in final linking: 44 + libperf-gtk.so <- gtk-in.o libperf-in.o 45 + perf <- perf-in.o libperf-in.o 46 + 47 + 48 + NOTE this description is omitting other libraries involved, only 49 + focusing on build framework outcomes