|  |  | 
|  | 1) perf build | 
|  | ============= | 
|  | The perf build process consists of several separated building blocks, | 
|  | which are linked together to form the perf binary: | 
|  | - libperf library (static) | 
|  | - perf builtin commands | 
|  | - traceevent library (static) | 
|  | - GTK ui library | 
|  |  | 
|  | Several makefiles govern the perf build: | 
|  |  | 
|  | - Makefile | 
|  | top level Makefile working as a wrapper that calls the main | 
|  | Makefile.perf with a -j option to do parallel builds. | 
|  |  | 
|  | - Makefile.perf | 
|  | main makefile that triggers build of all perf objects including | 
|  | installation and documentation processing. | 
|  |  | 
|  | - tools/build/Makefile.build | 
|  | main makefile of the build framework | 
|  |  | 
|  | - tools/build/Build.include | 
|  | build framework generic definitions | 
|  |  | 
|  | - Build makefiles | 
|  | makefiles that defines build objects | 
|  |  | 
|  | Please refer to tools/build/Documentation/Build.txt for more | 
|  | information about build framework. | 
|  |  | 
|  |  | 
|  | 2) perf build | 
|  | ============= | 
|  | The Makefile.perf triggers the build framework for build objects: | 
|  | perf, libperf, gtk | 
|  |  | 
|  | resulting in following objects: | 
|  | $ ls  *-in.o | 
|  | gtk-in.o  libperf-in.o  perf-in.o | 
|  |  | 
|  | Those objects are then used in final linking: | 
|  | libperf-gtk.so <- gtk-in.o  libperf-in.o | 
|  | perf           <- perf-in.o libperf-in.o | 
|  |  | 
|  |  | 
|  | NOTE this description is omitting other libraries involved, only | 
|  | focusing on build framework outcomes |