diff options
Diffstat (limited to 'benchmarks/Android.mk')
-rw-r--r-- | benchmarks/Android.mk | 113 |
1 files changed, 82 insertions, 31 deletions
diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk index 4d7ad96..e1580fe 100644 --- a/benchmarks/Android.mk +++ b/benchmarks/Android.mk @@ -14,23 +14,56 @@ # limitations under the License. # -ifneq ($(BUILD_TINY_ANDROID), true) - LOCAL_PATH := $(call my-dir) # ----------------------------------------------------------------------------- -# Benchmarks. +# Benchmarks library, usable by projects outside this directory. # ----------------------------------------------------------------------------- -benchmark_c_flags = \ +benchmark_cflags := \ -O2 \ - -Wall -Wextra -Wunused \ - -Werror \ -fno-builtin \ + -Wall \ + -Wextra \ + -Werror \ + -Wunused \ + +benchmark_cppflags := \ -std=gnu++11 \ -benchmark_src_files = \ - benchmark_main.cpp \ +benchmarklib_src_files := \ + Benchmark.cpp \ + utils.cpp \ + main.cpp \ + +include $(CLEAR_VARS) +LOCAL_MODULE := libbenchmark +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_SRC_FILES := $(benchmarklib_src_files) +LOCAL_C_INCLUDES := $(benchmark_c_includes) +LOCAL_STATIC_LIBRARIES := libbase +include $(BUILD_STATIC_LIBRARY) + +# Only supported on linux systems. +ifeq ($(HOST_OS),linux) + +include $(CLEAR_VARS) +LOCAL_MODULE := libbenchmark +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_SRC_FILES := $(benchmarklib_src_files) +LOCAL_C_INCLUDES := $(benchmark_c_includes) +LOCAL_MULTILIB := both +LOCAL_STATIC_LIBRARIES := libbase +include $(BUILD_HOST_STATIC_LIBRARY) + +endif + +# ----------------------------------------------------------------------------- +# Benchmarks. +# ----------------------------------------------------------------------------- +benchmark_src_files := \ math_benchmark.cpp \ property_benchmark.cpp \ pthread_benchmark.cpp \ @@ -41,40 +74,58 @@ benchmark_src_files = \ unistd_benchmark.cpp \ # Build benchmarks for the device (with bionic's .so). Run with: -# adb shell bionic-benchmarks +# adb shell bionic-benchmarks32 +# adb shell bionic-benchmarks64 include $(CLEAR_VARS) LOCAL_MODULE := bionic-benchmarks LOCAL_MODULE_STEM_32 := bionic-benchmarks32 LOCAL_MODULE_STEM_64 := bionic-benchmarks64 LOCAL_MULTILIB := both -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_CFLAGS += $(benchmark_c_flags) -LOCAL_C_INCLUDES += external/stlport/stlport bionic/ bionic/libstdc++/include -LOCAL_SHARED_LIBRARIES += libstlport +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) LOCAL_SRC_FILES := $(benchmark_src_files) +LOCAL_STATIC_LIBRARIES := libbenchmark libbase include $(BUILD_EXECUTABLE) +# We don't build a static benchmark executable because it's not usually +# useful. If you're trying to run the current benchmarks on an older +# release, it's (so far at least) always because you want to measure the +# performance of the old release's libc, and a static benchmark isn't +# going to let you do that. + +# Only supported on linux systems. +ifeq ($(HOST_OS),linux) + +# Build benchmarks for the host (against glibc!). Run with: +include $(CLEAR_VARS) +LOCAL_MODULE := bionic-benchmarks-glibc +LOCAL_MODULE_STEM_32 := bionic-benchmarks-glibc32 +LOCAL_MODULE_STEM_64 := bionic-benchmarks-glibc64 +LOCAL_MULTILIB := both +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_LDFLAGS := -lrt +LOCAL_SRC_FILES := $(benchmark_src_files) +LOCAL_STATIC_LIBRARIES := libbenchmark libbase +include $(BUILD_HOST_EXECUTABLE) + +endif + ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64)) -ifeq ($(TARGET_ARCH),x86) -LINKER = linker -NATIVE_SUFFIX=32 -else -LINKER = linker64 -NATIVE_SUFFIX=64 +include $(LOCAL_PATH)/../build/run-on-host.mk + +ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64)) +bionic-benchmarks-run-on-host32: bionic-benchmarks bionic-prepare-run-on-host + ANDROID_DATA=$(TARGET_OUT_DATA) \ + ANDROID_ROOT=$(TARGET_OUT) \ + $(TARGET_OUT_EXECUTABLES)/bionic-benchmarks32 $(BIONIC_BENCHMARKS_FLAGS) endif -bionic-benchmarks-run-on-host: bionic-benchmarks $(TARGET_OUT_EXECUTABLES)/$(LINKER) $(TARGET_OUT_EXECUTABLES)/sh - if [ ! -d /system -o ! -d /system/bin ]; then \ - echo "Attempting to create /system/bin"; \ - sudo mkdir -p -m 0777 /system/bin; \ - fi - mkdir -p $(TARGET_OUT_DATA)/local/tmp - cp $(TARGET_OUT_EXECUTABLES)/$(LINKER) /system/bin - cp $(TARGET_OUT_EXECUTABLES)/sh /system/bin +ifeq ($(TARGET_IS_64_BIT),true) +bionic-benchmarks-run-on-host64: bionic-benchmarks bionic-prepare-run-on-host ANDROID_DATA=$(TARGET_OUT_DATA) \ ANDROID_ROOT=$(TARGET_OUT) \ - LD_LIBRARY_PATH=$(TARGET_OUT_SHARED_LIBRARIES) \ - $(TARGET_OUT_EXECUTABLES)/bionic-benchmarks$(NATIVE_SUFFIX) $(BIONIC_BENCHMARKS_FLAGS) -endif # linux-x86 + $(TARGET_OUT_EXECUTABLES)/bionic-benchmarks64 $(BIONIC_BENCHMARKS_FLAGS) +endif -endif # !BUILD_TINY_ANDROID +endif |