diff options
Diffstat (limited to 'tools/perf/Makefile')
| -rw-r--r-- | tools/perf/Makefile | 167 |
1 files changed, 139 insertions, 28 deletions
diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 7e190d522cd5..652a470b5f74 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | all:: | 2 | all:: |
| 3 | 3 | ||
| 4 | # Define V=1 to have a more verbose compile. | 4 | # Define V=1 to have a more verbose compile. |
| 5 | # Define V=2 to have an even more verbose compile. | ||
| 5 | # | 6 | # |
| 6 | # Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf() | 7 | # Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf() |
| 7 | # or vsnprintf() return -1 instead of number of characters which would | 8 | # or vsnprintf() return -1 instead of number of characters which would |
| @@ -145,6 +146,10 @@ all:: | |||
| 145 | # Define NO_EXTERNAL_GREP if you don't want "perf grep" to ever call | 146 | # Define NO_EXTERNAL_GREP if you don't want "perf grep" to ever call |
| 146 | # your external grep (e.g., if your system lacks grep, if its grep is | 147 | # your external grep (e.g., if your system lacks grep, if its grep is |
| 147 | # broken, or spawning external process is slower than built-in grep perf has). | 148 | # broken, or spawning external process is slower than built-in grep perf has). |
| 149 | # | ||
| 150 | # Define LDFLAGS=-static to build a static binary. | ||
| 151 | # | ||
| 152 | # Define EXTRA_CFLAGS=-m64 or EXTRA_CFLAGS=-m32 as appropriate for cross-builds. | ||
| 148 | 153 | ||
| 149 | PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE | 154 | PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE |
| 150 | @$(SHELL_PATH) util/PERF-VERSION-GEN | 155 | @$(SHELL_PATH) util/PERF-VERSION-GEN |
| @@ -157,20 +162,6 @@ uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') | |||
| 157 | uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not') | 162 | uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not') |
| 158 | uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not') | 163 | uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not') |
| 159 | 164 | ||
| 160 | # | ||
| 161 | # Add -m32 for cross-builds: | ||
| 162 | # | ||
| 163 | ifdef NO_64BIT | ||
| 164 | MBITS := -m32 | ||
| 165 | else | ||
| 166 | # | ||
| 167 | # If we're on a 64-bit kernel, use -m64: | ||
| 168 | # | ||
| 169 | ifneq ($(patsubst %64,%,$(uname_M)),$(uname_M)) | ||
| 170 | MBITS := -m64 | ||
| 171 | endif | ||
| 172 | endif | ||
| 173 | |||
| 174 | # CFLAGS and LDFLAGS are for the users to override from the command line. | 165 | # CFLAGS and LDFLAGS are for the users to override from the command line. |
| 175 | 166 | ||
| 176 | # | 167 | # |
| @@ -200,8 +191,15 @@ EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wold-style-definition | |||
| 200 | EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wstrict-prototypes | 191 | EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wstrict-prototypes |
| 201 | EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wdeclaration-after-statement | 192 | EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wdeclaration-after-statement |
| 202 | 193 | ||
| 203 | CFLAGS = $(MBITS) -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -fstack-protector-all -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) | 194 | ifeq ("$(origin DEBUG)", "command line") |
| 204 | LDFLAGS = -lpthread -lrt -lelf -lm | 195 | PERF_DEBUG = $(DEBUG) |
| 196 | endif | ||
| 197 | ifndef PERF_DEBUG | ||
| 198 | CFLAGS_OPTIMIZE = -O6 | ||
| 199 | endif | ||
| 200 | |||
| 201 | CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) | ||
| 202 | EXTLIBS = -lpthread -lrt -lelf -lm | ||
| 205 | ALL_CFLAGS = $(CFLAGS) | 203 | ALL_CFLAGS = $(CFLAGS) |
| 206 | ALL_LDFLAGS = $(LDFLAGS) | 204 | ALL_LDFLAGS = $(LDFLAGS) |
| 207 | STRIP ?= strip | 205 | STRIP ?= strip |
| @@ -239,8 +237,8 @@ lib = lib | |||
| 239 | 237 | ||
| 240 | export prefix bindir sharedir sysconfdir | 238 | export prefix bindir sharedir sysconfdir |
| 241 | 239 | ||
| 242 | CC = gcc | 240 | CC = $(CROSS_COMPILE)gcc |
| 243 | AR = ar | 241 | AR = $(CROSS_COMPILE)ar |
| 244 | RM = rm -f | 242 | RM = rm -f |
| 245 | TAR = tar | 243 | TAR = tar |
| 246 | FIND = find | 244 | FIND = find |
| @@ -252,6 +250,9 @@ PTHREAD_LIBS = -lpthread | |||
| 252 | # explicitly what architecture to check for. Fix this up for yours.. | 250 | # explicitly what architecture to check for. Fix this up for yours.. |
| 253 | SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__ | 251 | SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__ |
| 254 | 252 | ||
| 253 | ifeq ($(shell sh -c "echo 'int foo(void) {char X[2]; return 3;}' | $(CC) -x c -c -Werror -fstack-protector-all - -o /dev/null "$(QUIET_STDERR)" && echo y"), y) | ||
| 254 | CFLAGS := $(CFLAGS) -fstack-protector-all | ||
| 255 | endif | ||
| 255 | 256 | ||
| 256 | 257 | ||
| 257 | ### --- END CONFIGURATION SECTION --- | 258 | ### --- END CONFIGURATION SECTION --- |
| @@ -327,30 +328,66 @@ LIB_FILE=libperf.a | |||
| 327 | LIB_H += ../../include/linux/perf_event.h | 328 | LIB_H += ../../include/linux/perf_event.h |
| 328 | LIB_H += ../../include/linux/rbtree.h | 329 | LIB_H += ../../include/linux/rbtree.h |
| 329 | LIB_H += ../../include/linux/list.h | 330 | LIB_H += ../../include/linux/list.h |
| 331 | LIB_H += ../../include/linux/stringify.h | ||
| 332 | LIB_H += util/include/linux/bitmap.h | ||
| 333 | LIB_H += util/include/linux/bitops.h | ||
| 334 | LIB_H += util/include/linux/compiler.h | ||
| 335 | LIB_H += util/include/linux/ctype.h | ||
| 336 | LIB_H += util/include/linux/kernel.h | ||
| 330 | LIB_H += util/include/linux/list.h | 337 | LIB_H += util/include/linux/list.h |
| 338 | LIB_H += util/include/linux/module.h | ||
| 339 | LIB_H += util/include/linux/poison.h | ||
| 340 | LIB_H += util/include/linux/prefetch.h | ||
| 341 | LIB_H += util/include/linux/rbtree.h | ||
| 342 | LIB_H += util/include/linux/string.h | ||
| 343 | LIB_H += util/include/linux/types.h | ||
| 344 | LIB_H += util/include/asm/asm-offsets.h | ||
| 345 | LIB_H += util/include/asm/bitops.h | ||
| 346 | LIB_H += util/include/asm/bug.h | ||
| 347 | LIB_H += util/include/asm/byteorder.h | ||
| 348 | LIB_H += util/include/asm/swab.h | ||
| 349 | LIB_H += util/include/asm/system.h | ||
| 350 | LIB_H += util/include/asm/uaccess.h | ||
| 331 | LIB_H += perf.h | 351 | LIB_H += perf.h |
| 352 | LIB_H += util/cache.h | ||
| 353 | LIB_H += util/callchain.h | ||
| 354 | LIB_H += util/debug.h | ||
| 355 | LIB_H += util/debugfs.h | ||
| 356 | LIB_H += util/event.h | ||
| 357 | LIB_H += util/exec_cmd.h | ||
| 332 | LIB_H += util/types.h | 358 | LIB_H += util/types.h |
| 333 | LIB_H += util/levenshtein.h | 359 | LIB_H += util/levenshtein.h |
| 334 | LIB_H += util/parse-options.h | 360 | LIB_H += util/parse-options.h |
| 335 | LIB_H += util/parse-events.h | 361 | LIB_H += util/parse-events.h |
| 336 | LIB_H += util/quote.h | 362 | LIB_H += util/quote.h |
| 337 | LIB_H += util/util.h | 363 | LIB_H += util/util.h |
| 364 | LIB_H += util/header.h | ||
| 338 | LIB_H += util/help.h | 365 | LIB_H += util/help.h |
| 366 | LIB_H += util/session.h | ||
| 339 | LIB_H += util/strbuf.h | 367 | LIB_H += util/strbuf.h |
| 340 | LIB_H += util/string.h | 368 | LIB_H += util/string.h |
| 341 | LIB_H += util/strlist.h | 369 | LIB_H += util/strlist.h |
| 370 | LIB_H += util/svghelper.h | ||
| 342 | LIB_H += util/run-command.h | 371 | LIB_H += util/run-command.h |
| 343 | LIB_H += util/sigchain.h | 372 | LIB_H += util/sigchain.h |
| 344 | LIB_H += util/symbol.h | 373 | LIB_H += util/symbol.h |
| 345 | LIB_H += util/module.h | ||
| 346 | LIB_H += util/color.h | 374 | LIB_H += util/color.h |
| 347 | LIB_H += util/values.h | 375 | LIB_H += util/values.h |
| 376 | LIB_H += util/sort.h | ||
| 377 | LIB_H += util/hist.h | ||
| 378 | LIB_H += util/thread.h | ||
| 379 | LIB_H += util/trace-event.h | ||
| 380 | LIB_H += util/trace-event-perl.h | ||
| 381 | LIB_H += util/probe-finder.h | ||
| 382 | LIB_H += util/probe-event.h | ||
| 348 | 383 | ||
| 349 | LIB_OBJS += util/abspath.o | 384 | LIB_OBJS += util/abspath.o |
| 350 | LIB_OBJS += util/alias.o | 385 | LIB_OBJS += util/alias.o |
| 351 | LIB_OBJS += util/config.o | 386 | LIB_OBJS += util/config.o |
| 352 | LIB_OBJS += util/ctype.o | 387 | LIB_OBJS += util/ctype.o |
| 388 | LIB_OBJS += util/debugfs.o | ||
| 353 | LIB_OBJS += util/environment.o | 389 | LIB_OBJS += util/environment.o |
| 390 | LIB_OBJS += util/event.o | ||
| 354 | LIB_OBJS += util/exec_cmd.o | 391 | LIB_OBJS += util/exec_cmd.o |
| 355 | LIB_OBJS += util/help.o | 392 | LIB_OBJS += util/help.o |
| 356 | LIB_OBJS += util/levenshtein.o | 393 | LIB_OBJS += util/levenshtein.o |
| @@ -358,6 +395,9 @@ LIB_OBJS += util/parse-options.o | |||
| 358 | LIB_OBJS += util/parse-events.o | 395 | LIB_OBJS += util/parse-events.o |
| 359 | LIB_OBJS += util/path.o | 396 | LIB_OBJS += util/path.o |
| 360 | LIB_OBJS += util/rbtree.o | 397 | LIB_OBJS += util/rbtree.o |
| 398 | LIB_OBJS += util/bitmap.o | ||
| 399 | LIB_OBJS += util/hweight.o | ||
| 400 | LIB_OBJS += util/find_next_bit.o | ||
| 361 | LIB_OBJS += util/run-command.o | 401 | LIB_OBJS += util/run-command.o |
| 362 | LIB_OBJS += util/quote.o | 402 | LIB_OBJS += util/quote.o |
| 363 | LIB_OBJS += util/strbuf.o | 403 | LIB_OBJS += util/strbuf.o |
| @@ -367,7 +407,6 @@ LIB_OBJS += util/usage.o | |||
| 367 | LIB_OBJS += util/wrapper.o | 407 | LIB_OBJS += util/wrapper.o |
| 368 | LIB_OBJS += util/sigchain.o | 408 | LIB_OBJS += util/sigchain.o |
| 369 | LIB_OBJS += util/symbol.o | 409 | LIB_OBJS += util/symbol.o |
| 370 | LIB_OBJS += util/module.o | ||
| 371 | LIB_OBJS += util/color.o | 410 | LIB_OBJS += util/color.o |
| 372 | LIB_OBJS += util/pager.o | 411 | LIB_OBJS += util/pager.o |
| 373 | LIB_OBJS += util/header.o | 412 | LIB_OBJS += util/header.o |
| @@ -375,15 +414,31 @@ LIB_OBJS += util/callchain.o | |||
| 375 | LIB_OBJS += util/values.o | 414 | LIB_OBJS += util/values.o |
| 376 | LIB_OBJS += util/debug.o | 415 | LIB_OBJS += util/debug.o |
| 377 | LIB_OBJS += util/map.o | 416 | LIB_OBJS += util/map.o |
| 417 | LIB_OBJS += util/session.o | ||
| 378 | LIB_OBJS += util/thread.o | 418 | LIB_OBJS += util/thread.o |
| 379 | LIB_OBJS += util/trace-event-parse.o | 419 | LIB_OBJS += util/trace-event-parse.o |
| 380 | LIB_OBJS += util/trace-event-read.o | 420 | LIB_OBJS += util/trace-event-read.o |
| 381 | LIB_OBJS += util/trace-event-info.o | 421 | LIB_OBJS += util/trace-event-info.o |
| 422 | LIB_OBJS += util/trace-event-perl.o | ||
| 382 | LIB_OBJS += util/svghelper.o | 423 | LIB_OBJS += util/svghelper.o |
| 424 | LIB_OBJS += util/sort.o | ||
| 425 | LIB_OBJS += util/hist.o | ||
| 426 | LIB_OBJS += util/data_map.o | ||
| 427 | LIB_OBJS += util/probe-event.o | ||
| 383 | 428 | ||
| 384 | BUILTIN_OBJS += builtin-annotate.o | 429 | BUILTIN_OBJS += builtin-annotate.o |
| 430 | |||
| 431 | BUILTIN_OBJS += builtin-bench.o | ||
| 432 | |||
| 433 | # Benchmark modules | ||
| 434 | BUILTIN_OBJS += bench/sched-messaging.o | ||
| 435 | BUILTIN_OBJS += bench/sched-pipe.o | ||
| 436 | BUILTIN_OBJS += bench/mem-memcpy.o | ||
| 437 | |||
| 438 | BUILTIN_OBJS += builtin-diff.o | ||
| 385 | BUILTIN_OBJS += builtin-help.o | 439 | BUILTIN_OBJS += builtin-help.o |
| 386 | BUILTIN_OBJS += builtin-sched.o | 440 | BUILTIN_OBJS += builtin-sched.o |
| 441 | BUILTIN_OBJS += builtin-buildid-list.o | ||
| 387 | BUILTIN_OBJS += builtin-list.o | 442 | BUILTIN_OBJS += builtin-list.o |
| 388 | BUILTIN_OBJS += builtin-record.o | 443 | BUILTIN_OBJS += builtin-record.o |
| 389 | BUILTIN_OBJS += builtin-report.o | 444 | BUILTIN_OBJS += builtin-report.o |
| @@ -391,9 +446,16 @@ BUILTIN_OBJS += builtin-stat.o | |||
| 391 | BUILTIN_OBJS += builtin-timechart.o | 446 | BUILTIN_OBJS += builtin-timechart.o |
| 392 | BUILTIN_OBJS += builtin-top.o | 447 | BUILTIN_OBJS += builtin-top.o |
| 393 | BUILTIN_OBJS += builtin-trace.o | 448 | BUILTIN_OBJS += builtin-trace.o |
| 449 | BUILTIN_OBJS += builtin-probe.o | ||
| 450 | BUILTIN_OBJS += builtin-kmem.o | ||
| 394 | 451 | ||
| 395 | PERFLIBS = $(LIB_FILE) | 452 | PERFLIBS = $(LIB_FILE) |
| 396 | 453 | ||
| 454 | ifeq ($(V), 2) | ||
| 455 | QUIET_STDERR = ">/dev/null" | ||
| 456 | else | ||
| 457 | QUIET_STDERR = ">/dev/null 2>&1" | ||
| 458 | endif | ||
| 397 | # | 459 | # |
| 398 | # Platform specific tweaks | 460 | # Platform specific tweaks |
| 399 | # | 461 | # |
| @@ -421,36 +483,61 @@ ifeq ($(uname_S),Darwin) | |||
| 421 | PTHREAD_LIBS = | 483 | PTHREAD_LIBS = |
| 422 | endif | 484 | endif |
| 423 | 485 | ||
| 424 | ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) > /dev/null 2>&1 && echo y"), y) | 486 | ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) |
| 425 | ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) > /dev/null 2>&1 && echo y"), y) | 487 | ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) |
| 488 | msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static); | ||
| 489 | endif | ||
| 490 | |||
| 491 | ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) | ||
| 426 | BASIC_CFLAGS += -DLIBELF_NO_MMAP | 492 | BASIC_CFLAGS += -DLIBELF_NO_MMAP |
| 427 | endif | 493 | endif |
| 428 | else | 494 | else |
| 429 | msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel and glibc-dev[el]); | 495 | msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel and glibc-dev[el]); |
| 430 | endif | 496 | endif |
| 431 | 497 | ||
| 498 | ifneq ($(shell sh -c "(echo '\#ifndef _MIPS_SZLONG'; echo '\#define _MIPS_SZLONG 0'; echo '\#endif'; echo '\#include <dwarf.h>'; echo '\#include <libdwarf.h>'; echo 'int main(void) { Dwarf_Debug dbg; Dwarf_Error err; Dwarf_Ranges *rng; dwarf_init(0, DW_DLC_READ, 0, 0, &dbg, &err); dwarf_get_ranges(dbg, 0, &rng, 0, 0, &err); return (long)dbg; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/libdwarf -ldwarf -lelf -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) | ||
| 499 | msg := $(warning No libdwarf.h found or old libdwarf.h found, disables dwarf support. Please install libdwarf-dev/libdwarf-devel >= 20081231); | ||
| 500 | BASIC_CFLAGS += -DNO_LIBDWARF | ||
| 501 | else | ||
| 502 | BASIC_CFLAGS += -I/usr/include/libdwarf | ||
| 503 | EXTLIBS += -lelf -ldwarf | ||
| 504 | LIB_OBJS += util/probe-finder.o | ||
| 505 | endif | ||
| 506 | |||
| 507 | ifndef NO_LIBPERL | ||
| 508 | PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts 2>/dev/null` | ||
| 509 | PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` | ||
| 510 | endif | ||
| 511 | |||
| 512 | ifneq ($(shell sh -c "(echo '\#include <EXTERN.h>'; echo '\#include <perl.h>'; echo 'int main(void) { perl_alloc(); return 0; }') | $(CC) -x c - $(PERL_EMBED_CCOPTS) -o /dev/null $(PERL_EMBED_LDOPTS) > /dev/null 2>&1 && echo y"), y) | ||
| 513 | BASIC_CFLAGS += -DNO_LIBPERL | ||
| 514 | else | ||
| 515 | ALL_LDFLAGS += $(PERL_EMBED_LDOPTS) | ||
| 516 | LIB_OBJS += scripts/perl/Perf-Trace-Util/Context.o | ||
| 517 | endif | ||
| 518 | |||
| 432 | ifdef NO_DEMANGLE | 519 | ifdef NO_DEMANGLE |
| 433 | BASIC_CFLAGS += -DNO_DEMANGLE | 520 | BASIC_CFLAGS += -DNO_DEMANGLE |
| 434 | else | 521 | else |
| 435 | has_bfd := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -lbfd > /dev/null 2>&1 && echo y") | 522 | has_bfd := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -lbfd "$(QUIET_STDERR)" && echo y") |
| 436 | 523 | ||
| 437 | ifeq ($(has_bfd),y) | 524 | ifeq ($(has_bfd),y) |
| 438 | EXTLIBS += -lbfd | 525 | EXTLIBS += -lbfd |
| 439 | else | 526 | else |
| 440 | has_bfd_iberty := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -lbfd -liberty > /dev/null 2>&1 && echo y") | 527 | has_bfd_iberty := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -lbfd -liberty "$(QUIET_STDERR)" && echo y") |
| 441 | ifeq ($(has_bfd_iberty),y) | 528 | ifeq ($(has_bfd_iberty),y) |
| 442 | EXTLIBS += -lbfd -liberty | 529 | EXTLIBS += -lbfd -liberty |
| 443 | else | 530 | else |
| 444 | has_bfd_iberty_z := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -lbfd -liberty -lz > /dev/null 2>&1 && echo y") | 531 | has_bfd_iberty_z := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -lbfd -liberty -lz "$(QUIET_STDERR)" && echo y") |
| 445 | ifeq ($(has_bfd_iberty_z),y) | 532 | ifeq ($(has_bfd_iberty_z),y) |
| 446 | EXTLIBS += -lbfd -liberty -lz | 533 | EXTLIBS += -lbfd -liberty -lz |
| 447 | else | 534 | else |
| 448 | has_cplus_demangle := $(shell sh -c "(echo 'extern char *cplus_demangle(const char *, int);'; echo 'int main(void) { cplus_demangle(0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -liberty > /dev/null 2>&1 && echo y") | 535 | has_cplus_demangle := $(shell sh -c "(echo 'extern char *cplus_demangle(const char *, int);'; echo 'int main(void) { cplus_demangle(0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -liberty "$(QUIET_STDERR)" && echo y") |
| 449 | ifeq ($(has_cplus_demangle),y) | 536 | ifeq ($(has_cplus_demangle),y) |
| 450 | EXTLIBS += -liberty | 537 | EXTLIBS += -liberty |
| 451 | BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE | 538 | BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE |
| 452 | else | 539 | else |
| 453 | msg := $(warning No bfd.h/libbfd found, install binutils-dev[el] to gain symbol demangling) | 540 | msg := $(warning No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demangling) |
| 454 | BASIC_CFLAGS += -DNO_DEMANGLE | 541 | BASIC_CFLAGS += -DNO_DEMANGLE |
| 455 | endif | 542 | endif |
| 456 | endif | 543 | endif |
| @@ -787,6 +874,25 @@ util/config.o: util/config.c PERF-CFLAGS | |||
| 787 | util/rbtree.o: ../../lib/rbtree.c PERF-CFLAGS | 874 | util/rbtree.o: ../../lib/rbtree.c PERF-CFLAGS |
| 788 | $(QUIET_CC)$(CC) -o util/rbtree.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< | 875 | $(QUIET_CC)$(CC) -o util/rbtree.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< |
| 789 | 876 | ||
| 877 | # some perf warning policies can't fit to lib/bitmap.c, eg: it warns about variable shadowing | ||
| 878 | # from <string.h> that comes from kernel headers wrapping. | ||
| 879 | KBITMAP_FLAGS=`echo $(ALL_CFLAGS) | sed s/-Wshadow// | sed s/-Wswitch-default// | sed s/-Wextra//` | ||
| 880 | |||
| 881 | util/bitmap.o: ../../lib/bitmap.c PERF-CFLAGS | ||
| 882 | $(QUIET_CC)$(CC) -o util/bitmap.o -c $(KBITMAP_FLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< | ||
| 883 | |||
| 884 | util/hweight.o: ../../lib/hweight.c PERF-CFLAGS | ||
| 885 | $(QUIET_CC)$(CC) -o util/hweight.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< | ||
| 886 | |||
| 887 | util/find_next_bit.o: ../../lib/find_next_bit.c PERF-CFLAGS | ||
| 888 | $(QUIET_CC)$(CC) -o util/find_next_bit.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< | ||
| 889 | |||
| 890 | util/trace-event-perl.o: util/trace-event-perl.c PERF-CFLAGS | ||
| 891 | $(QUIET_CC)$(CC) -o util/trace-event-perl.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $< | ||
| 892 | |||
| 893 | scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c PERF-CFLAGS | ||
| 894 | $(QUIET_CC)$(CC) -o scripts/perl/Perf-Trace-Util/Context.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $< | ||
| 895 | |||
| 790 | perf-%$X: %.o $(PERFLIBS) | 896 | perf-%$X: %.o $(PERFLIBS) |
| 791 | $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) | 897 | $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) |
| 792 | 898 | ||
| @@ -894,6 +1000,11 @@ export perfexec_instdir | |||
| 894 | install: all | 1000 | install: all |
| 895 | $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)' | 1001 | $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)' |
| 896 | $(INSTALL) perf$X '$(DESTDIR_SQ)$(bindir_SQ)' | 1002 | $(INSTALL) perf$X '$(DESTDIR_SQ)$(bindir_SQ)' |
| 1003 | $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' | ||
| 1004 | $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' | ||
| 1005 | $(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' | ||
| 1006 | $(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl' | ||
| 1007 | $(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' | ||
| 897 | ifdef BUILT_INS | 1008 | ifdef BUILT_INS |
| 898 | $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' | 1009 | $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' |
| 899 | $(INSTALL) $(BUILT_INS) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' | 1010 | $(INSTALL) $(BUILT_INS) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' |
| @@ -979,7 +1090,7 @@ distclean: clean | |||
| 979 | # $(RM) configure | 1090 | # $(RM) configure |
| 980 | 1091 | ||
| 981 | clean: | 1092 | clean: |
| 982 | $(RM) *.o */*.o $(LIB_FILE) | 1093 | $(RM) *.o */*.o */*/*.o */*/*/*.o $(LIB_FILE) |
| 983 | $(RM) $(ALL_PROGRAMS) $(BUILT_INS) perf$X | 1094 | $(RM) $(ALL_PROGRAMS) $(BUILT_INS) perf$X |
| 984 | $(RM) $(TEST_PROGRAMS) | 1095 | $(RM) $(TEST_PROGRAMS) |
| 985 | $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope* | 1096 | $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope* |
