Makefile文件  |  269行  |  5.88 KB

# Copyright (C) 2012 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

LOCAL_PATH := $(call my-dir)

ifeq ($(TARGET_PRODUCT),sdk)
supported_platforms := none
else
supported_platforms := linux-x86 darwin-x86
endif

cur_platform := $(filter $(HOST_OS)-$(HOST_ARCH),$(supported_platforms))

ifdef cur_platform

#
# host libperf
#

include $(CLEAR_VARS)

libperf_src_files := \
	util/added/rbtree.c \
	util/abspath.c \
	util/alias.c \
	util/annotate.c \
	util/bitmap.c \
	util/build-id.c \
	util/callchain.c \
	util/cgroup.c \
	util/color.c \
	util/config.c \
	util/cpumap.c \
	util/ctype.c \
	util/debug.c \
	util/debugfs.c \
	util/environment.c \
	util/event.c \
	util/evlist.c \
	util/evsel.c \
	util/exec_cmd.c \
	util/header.c \
	util/help.c \
	util/hist.c \
	util/hweight.c \
	util/levenshtein.c \
	util/map.c \
	util/pager.c \
	util/parse-events.c \
	util/parse-options.c \
	util/path.c \
	util/probe-event.c \
	util/probe-finder.c \
	util/pstack.c \
	util/quote.c \
	util/run-command.c \
	util/session.c \
	util/sigchain.c \
	util/sort.c \
	util/strbuf.c \
	util/strfilter.c \
	util/string.c \
	util/strlist.c \
	util/svghelper.c \
	util/symbol.c \
	util/thread.c \
	util/thread_map.c \
	util/top.c \
	util/trace-event-info.c \
	util/trace-event-parse.c \
	util/trace-event-read.c \
	util/trace-event-scripting.c \
	util/usage.c \
	util/util.c \
	util/values.c \
	util/wrapper.c \
	util/xyarray.c

LOCAL_SRC_FILES := $(libperf_src_files)

LOCAL_SRC_FILES += \
	arch/arm/util/dwarf-regs.c

LOCAL_CFLAGS := -DNO_NEWT_SUPPORT -DNO_LIBPERL -DNO_LIBPYTHON -DNO_STRLCPY -std=gnu99

LOCAL_CFLAGS += -DHAVE_ANDROID_DEMANGLE
LOCAL_CFLAGS += -DDWARF_SUPPORT

# various macros
LOCAL_CFLAGS += -DETC_PERFCONFIG='"etc/perfconfig"' \
                -DPREFIX='""' \
		-DPERF_EXEC_PATH='"libexec/perf-core"'

# in list.h: entry->next = LIST_POISON1;
LOCAL_CFLAGS += -Wno-pointer-arith

# for __used
LOCAL_CFLAGS += -include $(LOCAL_PATH)/util/include/linux/compiler.h

LOCAL_CFLAGS += \
	-include $(LOCAL_PATH)/host-$(HOST_OS)-fixup/AndroidFixup.h

LOCAL_C_INCLUDES := external/elfutils external/elfutils/libelf external/elfutils/libdw external/elfutils/libdwfl

LOCAL_C_INCLUDES += $(LOCAL_PATH)/host-$(HOST_OS)-fixup

LOCAL_MODULE := libperf

include $(BUILD_HOST_STATIC_LIBRARY)

#
# target libperf
#

include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(libperf_src_files)

LOCAL_CFLAGS := -DNO_NEWT_SUPPORT -DNO_LIBPERL -DNO_LIBPYTHON -std=gnu99

LOCAL_CFLAGS += -DHAVE_ANDROID_DEMANGLE
LOCAL_CFLAGS += -DDWARF_SUPPORT

# various macros
LOCAL_CFLAGS += -DETC_PERFCONFIG='"etc/perfconfig"' \
                -DPREFIX='""' \
		-DPERF_EXEC_PATH='"libexec/perf-core"'

# in list.h: entry->next = LIST_POISON1;
LOCAL_CFLAGS += -Wno-pointer-arith

# for __used
LOCAL_CFLAGS += -include $(LOCAL_PATH)/util/include/linux/compiler.h

# for various GNU extensions
LOCAL_CFLAGS += -include external/elfutils/bionic-fixup/AndroidFixup.h

LOCAL_CFLAGS += -Wno-attributes -Werror

LOCAL_C_INCLUDES := external/elfutils external/elfutils/libelf external/elfutils/libdw external/elfutils/libdwfl

LOCAL_MODULE := libperf

include $(BUILD_STATIC_LIBRARY)

#
# host perf
#

include $(CLEAR_VARS)

LOCAL_MODULE := perfhost

perf_src_files := \
	builtin-annotate.c \
	builtin-buildid-cache.c \
	builtin-buildid-list.c \
	builtin-diff.c \
	builtin-evlist.c \
	builtin-help.c \
	builtin-inject.c \
	builtin-kmem.c \
	builtin-kvm.c \
	builtin-list.c \
	builtin-lock.c \
	builtin-probe.c \
	builtin-record.c \
	builtin-report.c \
	builtin-sched.c \
	builtin-script.c \
	builtin-stat.c \
	builtin-timechart.c \
	builtin-top.c \
	perf.c

LOCAL_SRC_FILES := $(perf_src_files)

LOCAL_STATIC_LIBRARIES := libperf libdwfl libdw libebl libelf libgccdemangle

LOCAL_LDLIBS := -lpthread -ldl

# for clock_gettime
ifeq ($(HOST_OS),linux)
LOCAL_LDLIBS += -lrt
endif

# common
LOCAL_CFLAGS := -DNO_NEWT_SUPPORT -DNO_LIBPERL -DNO_LIBPYTHON -DNO_STRLCPY -std=gnu99

LOCAL_CFLAGS += \
	-include $(LOCAL_PATH)/host-$(HOST_OS)-fixup/AndroidFixup.h

# in list.h: entry->next = LIST_POISON1;
LOCAL_CFLAGS += -Wno-pointer-arith

# for __used
LOCAL_CFLAGS += -include $(LOCAL_PATH)/util/include/linux/compiler.h

LOCAL_CFLAGS += -DHAVE_ANDROID_DEMANGLE

# unique
LOCAL_CFLAGS += -DPERF_HTML_PATH='""'
LOCAL_CFLAGS += -DPERF_MAN_PATH='""'
LOCAL_CFLAGS += -DPERF_INFO_PATH='""'
LOCAL_CFLAGS += -DPERF_VERSION='"perf.3.0.8_android"'

LOCAL_C_INCLUDES += $(LOCAL_PATH)/host-$(HOST_OS)-fixup

include $(BUILD_HOST_EXECUTABLE)

#
# target perf
#

include $(CLEAR_VARS)

LOCAL_MODULE := perf
LOCAL_MODULE_TAGS := eng

LOCAL_SRC_FILES := $(perf_src_files)

LOCAL_SRC_FILES += \
	builtin-test.c \
	bench/mem-memcpy.c \
	bench/sched-messaging.c \
	bench/sched-pipe.c \
	arch/arm/util/dwarf-regs.c

LOCAL_STATIC_LIBRARIES := libperf libdwfl libdw libebl libelf libgccdemangle

LOCAL_SHARED_LIBRARIES := libdl

# common
LOCAL_CFLAGS := -DNO_NEWT_SUPPORT -DNO_LIBPERL -DNO_LIBPYTHON -std=gnu99

# in list.h: entry->next = LIST_POISON1;
LOCAL_CFLAGS += -Wno-pointer-arith

# for __used
LOCAL_CFLAGS += -include $(LOCAL_PATH)/util/include/linux/compiler.h

# for various GNU extensions
LOCAL_CFLAGS += -include external/elfutils/bionic-fixup/AndroidFixup.h

LOCAL_CFLAGS += -DHAVE_ANDROID_DEMANGLE

# unique
LOCAL_CFLAGS += -DPERF_HTML_PATH='""'
LOCAL_CFLAGS += -DPERF_MAN_PATH='""'
LOCAL_CFLAGS += -DPERF_INFO_PATH='""'
LOCAL_CFLAGS += -DPERF_VERSION='"perf.3.0.8_android"'

LOCAL_CFLAGS += -Wno-attributes -Werror

include $(BUILD_EXECUTABLE)

endif #cur_platform