# Copyright (C) 2011 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)

ANDROID_HARDWARE := ANDROID_HARDWARE_generic

ifneq ($(filter arm arm64 x86_64,$(TARGET_ARCH)),)

vg_arch:=$(TARGET_ARCH)

ifneq ($(filter x86_64, $(TARGET_ARCH)),)
  vg_arch:=amd64
endif

common_cflags := \
	-Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wmissing-declarations \
	-Wno-pointer-sign -Wno-sign-compare -Wno-unused-parameter -Wno-shadow \
	-fno-strict-aliasing -fno-stack-protector -Wno-tautological-compare -Wno-self-assign \
	-DVGO_linux=1 \
	-DANDROID_SYMBOLS_DIR=\"/data/local/symbols\" \
  -std=gnu99

ifeq ($(TARGET_IS_64_BIT),true)
  vg_target_module_path := /system/lib64/valgrind
else
  vg_target_module_path := /system/lib/valgrind
endif

target_arch_cflags := \
	-DVGA_$(vg_arch)=1 \
	-DVGP_$(vg_arch)_linux=1 \
	-DVGPV_$(vg_arch)_linux_android=1 \
	-DVG_LIBDIR=\"$(vg_target_module_path)\" \
	-DVG_PLATFORM=\"$(vg_arch)-linux\"

ifdef TARGET_2ND_ARCH
target_2nd_arch_cflags := \
	-DVGA_$(TARGET_2ND_ARCH)=1 \
	-DVGP_$(TARGET_2ND_ARCH)_linux=1 \
	-DVGPV_$(TARGET_2ND_ARCH)_linux_android=1 \
	-DVG_LIBDIR=\"$(vg_target_module_path)\" \
	-DVG_PLATFORM=\"$(TARGET_2ND_ARCH)-linux\"
vg_second_arch := $(TARGET_2ND_ARCH)

endif

# The supported host platform are linux amd64 and linux x86
host_arch_cflags := \
  -DVGA_amd64=1 \
  -DVGP_amd64_linux=1 \
  -DVG_PLATFORM=\"amd64-linux\" \
  -DVG_LIBDIR=\"$(abspath $(HOST_OUT_SHARED_LIBRARIES))/valgrind\"

host_2nd_arch_cflags := \
  -DVGA_x86=1 \
  -DVGP_x86_linux=1 \
  -DVG_PLATFORM=\"x86-linux\" \
  -DVG_LIBDIR=\"$(abspath $(HOST_OUT_SHARED_LIBRARIES))/valgrind\"

common_includes := \
	external/valgrind \
	external/valgrind/include \
	external/valgrind/VEX/pub \
	external/valgrind/coregrind

vex_ldflags := -nodefaultlibs

ifeq (,$(filter $(TARGET_ARCH),arm arm64))
tool_ldflags := -static -Wl,--build-id=none,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -Wl,-e,_start
else
tool_ldflags := -static -Wl,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -Wl,-e,_start
endif

common_cflags += -D$(ANDROID_HARDWARE)

preload_ldflags := -nodefaultlibs -Wl,-z,interpose,-z,initfirst
# Remove this when the all toolchains are GCC 4.4
ifeq ($(TARGET_ARCH),arm)
  preload_ldflags += -Wl,--icf=none
endif

# Build libvex-($TARGET_ARCH)-linux.a
vg_local_module=libvex

vg_local_cflags := $(common_cflags) \
    -Wbad-function-cast \
    -Wcast-qual \
    -Wcast-align \
    -fstrict-aliasing \

vg_local_src_files := \
	VEX/priv/main_globals.c \
	VEX/priv/main_main.c \
	VEX/priv/main_util.c \
	VEX/priv/ir_defs.c \
	VEX/priv/ir_match.c \
	VEX/priv/ir_opt.c \
	VEX/priv/ir_inject.c \
	VEX/priv/guest_generic_bb_to_IR.c \
	VEX/priv/guest_generic_x87.c \
	VEX/priv/guest_mips_helpers.c \
	VEX/priv/guest_mips_toIR.c \
	VEX/priv/guest_x86_helpers.c \
	VEX/priv/guest_x86_toIR.c \
	VEX/priv/guest_amd64_helpers.c \
	VEX/priv/guest_amd64_toIR.c \
	VEX/priv/guest_ppc_helpers.c \
	VEX/priv/guest_ppc_toIR.c \
	VEX/priv/guest_arm_helpers.c \
	VEX/priv/guest_arm_toIR.c \
	VEX/priv/guest_arm64_helpers.c \
	VEX/priv/guest_arm64_toIR.c \
	VEX/priv/guest_s390_helpers.c \
	VEX/priv/guest_s390_toIR.c \
	VEX/priv/host_generic_maddf.c \
	VEX/priv/host_generic_regs.c \
	VEX/priv/host_generic_simd64.c \
	VEX/priv/host_generic_simd128.c \
	VEX/priv/host_generic_simd256.c \
	VEX/priv/host_generic_reg_alloc2.c \
	VEX/priv/host_x86_defs.c \
	VEX/priv/host_x86_isel.c \
	VEX/priv/host_amd64_defs.c \
	VEX/priv/host_amd64_isel.c \
	VEX/priv/host_mips_defs.c \
	VEX/priv/host_mips_isel.c \
	VEX/priv/host_ppc_defs.c \
	VEX/priv/host_ppc_isel.c \
	VEX/priv/host_arm_defs.c \
	VEX/priv/host_arm_isel.c \
	VEX/priv/host_arm64_defs.c \
	VEX/priv/host_arm64_isel.c \
	VEX/priv/host_s390_defs.c \
	VEX/priv/host_s390_isel.c \
	VEX/priv/s390_disasm.c

vg_local_target := STATIC_LIBRARY
include $(LOCAL_PATH)/Android.build_all.mk

# Build libcoregrind-$(TARGET_ARCH)-linux.a
vg_local_module := libcoregrind
vg_local_target := STATIC_LIBRARY

vg_local_src_files := \
	coregrind/m_addrinfo.c \
	coregrind/m_cache.c \
	coregrind/m_commandline.c \
	coregrind/m_clientstate.c \
	coregrind/m_cpuid.S \
	coregrind/m_debuglog.c \
	coregrind/m_errormgr.c \
	coregrind/m_execontext.c \
	coregrind/m_hashtable.c \
	coregrind/m_libcbase.c \
	coregrind/m_libcassert.c \
	coregrind/m_libcfile.c \
	coregrind/m_libcprint.c \
	coregrind/m_libcproc.c \
	coregrind/m_libcsetjmp.c \
	coregrind/m_libcsignal.c \
	coregrind/m_machine.c \
	coregrind/m_main.c \
	coregrind/m_mallocfree.c \
	coregrind/m_options.c \
	coregrind/m_oset.c \
	coregrind/m_poolalloc.c \
	coregrind/m_rangemap.c \
	coregrind/m_redir.c \
	coregrind/m_seqmatch.c \
	coregrind/m_signals.c \
	coregrind/m_sparsewa.c \
	coregrind/m_stacks.c \
	coregrind/m_stacktrace.c \
	coregrind/m_syscall.c \
	coregrind/m_threadstate.c \
	coregrind/m_tooliface.c \
	coregrind/m_trampoline.S \
	coregrind/m_translate.c \
	coregrind/m_transtab.c \
	coregrind/m_vki.c \
	coregrind/m_vkiscnums.c \
	coregrind/m_wordfm.c \
	coregrind/m_xarray.c \
	coregrind/m_xtmemory.c \
	coregrind/m_xtree.c \
	coregrind/m_aspacehl.c \
	coregrind/m_aspacemgr/aspacemgr-common.c \
	coregrind/m_aspacemgr/aspacemgr-linux.c \
	coregrind/m_aspacemgr/aspacemgr-segnames.c \
	coregrind/m_coredump/coredump-elf.c \
	coregrind/m_coredump/coredump-macho.c \
	coregrind/m_debuginfo/image.c \
	coregrind/m_debuginfo/misc.c \
	coregrind/m_debuginfo/d3basics.c \
	coregrind/m_debuginfo/debuginfo.c \
	coregrind/m_debuginfo/readdwarf.c \
	coregrind/m_debuginfo/readdwarf3.c \
	coregrind/m_debuginfo/readelf.c \
	coregrind/m_debuginfo/readexidx.c \
	coregrind/m_debuginfo/readmacho.c \
	coregrind/m_debuginfo/readpdb.c \
	coregrind/m_debuginfo/storage.c \
	coregrind/m_debuginfo/tinfl.c \
	coregrind/m_debuginfo/tytypes.c \
	coregrind/m_deduppoolalloc.c \
	coregrind/m_demangle/cp-demangle.c \
	coregrind/m_demangle/cplus-dem.c \
	coregrind/m_demangle/d-demangle.c \
	coregrind/m_demangle/demangle.c \
	coregrind/m_demangle/dyn-string.c \
	coregrind/m_demangle/rust-demangle.c \
	coregrind/m_demangle/safe-ctype.c \
	coregrind/m_dispatch/dispatch-x86-linux.S \
	coregrind/m_dispatch/dispatch-amd64-linux.S \
	coregrind/m_dispatch/dispatch-ppc32-linux.S \
	coregrind/m_dispatch/dispatch-ppc64be-linux.S \
	coregrind/m_dispatch/dispatch-ppc64le-linux.S \
	coregrind/m_dispatch/dispatch-arm-linux.S \
	coregrind/m_dispatch/dispatch-arm64-linux.S \
	coregrind/m_dispatch/dispatch-x86-darwin.S \
	coregrind/m_dispatch/dispatch-amd64-darwin.S \
	coregrind/m_initimg/initimg-linux.c \
	coregrind/m_initimg/initimg-darwin.c \
	coregrind/m_initimg/initimg-pathscan.c \
	coregrind/m_mach/mach_basics.c \
	coregrind/m_mach/mach_msg.c \
	coregrind/m_mach/mach_traps-x86-darwin.S \
	coregrind/m_mach/mach_traps-amd64-darwin.S \
	coregrind/m_replacemalloc/replacemalloc_core.c \
	coregrind/m_sbprofile.c \
	coregrind/m_scheduler/sched-lock.c \
	coregrind/m_scheduler/sched-lock-generic.c \
	coregrind/m_scheduler/scheduler.c \
	coregrind/m_scheduler/sema.c \
	coregrind/m_scheduler/ticket-lock-linux.c \
	coregrind/m_sigframe/sigframe-common.c \
	coregrind/m_sigframe/sigframe-x86-linux.c \
	coregrind/m_sigframe/sigframe-amd64-linux.c \
	coregrind/m_sigframe/sigframe-ppc32-linux.c \
	coregrind/m_sigframe/sigframe-ppc64-linux.c \
	coregrind/m_sigframe/sigframe-arm-linux.c \
	coregrind/m_sigframe/sigframe-arm64-linux.c \
	coregrind/m_sigframe/sigframe-x86-darwin.c \
	coregrind/m_sigframe/sigframe-amd64-darwin.c \
	coregrind/m_sigframe/sigframe-s390x-linux.c \
	coregrind/m_syswrap/syscall-x86-linux.S \
	coregrind/m_syswrap/syscall-amd64-linux.S \
	coregrind/m_syswrap/syscall-ppc32-linux.S \
	coregrind/m_syswrap/syscall-ppc64be-linux.S \
	coregrind/m_syswrap/syscall-ppc64le-linux.S \
	coregrind/m_syswrap/syscall-arm-linux.S \
	coregrind/m_syswrap/syscall-arm64-linux.S \
	coregrind/m_syswrap/syscall-x86-darwin.S \
	coregrind/m_syswrap/syscall-amd64-darwin.S \
	coregrind/m_syswrap/syscall-s390x-linux.S \
	coregrind/m_syswrap/syswrap-main.c \
	coregrind/m_syswrap/syswrap-generic.c \
	coregrind/m_syswrap/syswrap-linux.c \
	coregrind/m_syswrap/syswrap-linux-variants.c \
	coregrind/m_syswrap/syswrap-darwin.c \
	coregrind/m_syswrap/syswrap-x86-linux.c \
	coregrind/m_syswrap/syswrap-amd64-linux.c \
	coregrind/m_syswrap/syswrap-ppc32-linux.c \
	coregrind/m_syswrap/syswrap-ppc64-linux.c \
	coregrind/m_syswrap/syswrap-arm-linux.c \
	coregrind/m_syswrap/syswrap-arm64-linux.c \
	coregrind/m_syswrap/syswrap-x86-darwin.c \
	coregrind/m_syswrap/syswrap-amd64-darwin.c \
	coregrind/m_syswrap/syswrap-s390x-linux.c \
	coregrind/m_syswrap/syswrap-xen.c \
	coregrind/m_ume/elf.c \
	coregrind/m_ume/macho.c \
	coregrind/m_ume/main.c \
	coregrind/m_ume/script.c \
	coregrind/vgdb.c \
	coregrind/m_gdbserver/inferiors.c \
	coregrind/m_gdbserver/m_gdbserver.c \
	coregrind/m_gdbserver/regcache.c \
	coregrind/m_gdbserver/remote-utils.c \
	coregrind/m_gdbserver/server.c \
	coregrind/m_gdbserver/signals.c \
	coregrind/m_gdbserver/target.c \
	coregrind/m_gdbserver/utils.c \
	coregrind/m_gdbserver/valgrind-low-amd64.c \
	coregrind/m_gdbserver/valgrind-low-arm.c \
	coregrind/m_gdbserver/valgrind-low-arm64.c \
	coregrind/m_gdbserver/valgrind-low-ppc32.c \
	coregrind/m_gdbserver/valgrind-low-ppc64.c \
	coregrind/m_gdbserver/valgrind-low-s390x.c \
	coregrind/m_gdbserver/valgrind-low-x86.c \
	coregrind/m_gdbserver/version.c

ifeq (arm64, $(TARGET_ARCH))
  vg_local_src_files += android/aarch64/setjmp.S
endif

vg_local_ldflags := $(vex_ldflags)
vg_local_cflags := $(common_cflags)

include $(LOCAL_PATH)/Android.build_all.mk

# Build libreplacemalloc_toolpreload-$(TARGET_ARCH)-linux.a
vg_local_module := libreplacemalloc_toolpreload
vg_local_target := STATIC_LIBRARY

vg_local_src_files := \
	coregrind/m_replacemalloc/vg_replace_malloc.c

vg_local_ldflags := $(preload_ldflags)

vg_local_cflags := $(common_cflags)

include $(LOCAL_PATH)/Android.build_all.mk

# Build vgpreload_core-$(TARGET_ARCH)-linux.so
vg_local_module := vgpreload_core
vg_local_target := SHARED_LIBRARY
vg_local_module_class := SHARED_LIBRARIES

vg_local_src_files := \
	coregrind/vg_preloaded.c

#LOCAL_STRIP_MODULE := false
#vg_local_no_crt := true

vg_local_ldflags := $(preload_ldflags)
vg_local_cflags := $(common_cflags)

vg_local_arch_cflags := $(target_arch_cflags)

include $(LOCAL_PATH)/Android.build_all.mk

# Build memcheck-$(TARGET_ARCH)-linux
vg_local_module := memcheck
vg_local_target := EXECUTABLE
vg_local_module_class := SHARED_LIBRARIES
vg_local_src_files := \
	memcheck/mc_leakcheck.c \
	memcheck/mc_malloc_wrappers.c \
	memcheck/mc_main.c \
	memcheck/mc_translate.c \
	memcheck/mc_machine.c \
	memcheck/mc_errors.c

vg_local_cflags := $(common_cflags)
vg_local_ldflags := $(tool_ldflags)
vg_local_static_libraries := libcoregrind libvex

vg_local_without_system_shared_libraries := true
vg_local_no_crt := true

include $(LOCAL_PATH)/Android.build_all.mk

# Build vgpreload_memcheck-$(TARGET_ARCH)-linux.so
vg_local_module := vgpreload_memcheck
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := SHARED_LIBRARY

vg_local_src_files := \
	memcheck/mc_replace_strmem.c

vg_local_ldflags := $(preload_ldflags)
vg_local_cflags := $(common_cflags)

vg_local_whole_static_libraries := libreplacemalloc_toolpreload

include $(LOCAL_PATH)/Android.build_all.mk

# Build cachegrind-$(TARGET_ARCH)-linux
vg_local_module := cachegrind
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := EXECUTABLE
vg_local_no_crt := true
vg_local_without_system_shared_libraries := true

vg_local_src_files := \
	cachegrind/cg_arch.c \
	cachegrind/cg_main.c

vg_local_ldflags := $(tool_ldflags)
vg_local_cflags := $(common_cflags)

vg_local_static_libraries := libcoregrind libvex

include $(LOCAL_PATH)/Android.build_all.mk

#LOCAL_FORCE_STATIC_EXECUTABLE := true

# Build callgrind-$(TARGET_ARCH)-linux

vg_local_module := callgrind
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := EXECUTABLE
vg_local_no_crt := true
vg_local_without_system_shared_libraries := true

vg_local_src_files := \
	callgrind/bb.c \
	callgrind/bbcc.c \
	callgrind/callstack.c \
	callgrind/clo.c \
	callgrind/context.c \
	callgrind/costs.c \
	callgrind/debug.c \
	callgrind/dump.c \
	callgrind/events.c \
	callgrind/fn.c \
	callgrind/jumps.c \
	callgrind/main.c \
	callgrind/sim.c \
	callgrind/threads.c

vg_local_c_includes := external/valgrind/cachegrind
vg_local_ldflags := $(tool_ldflags)
vg_local_cflags := $(common_cflags)
vg_local_static_libraries := libcoregrind libvex

include $(LOCAL_PATH)/Android.build_all.mk

#LOCAL_FORCE_STATIC_EXECUTABLE := true

# Build helgrind-$(TARGET_ARCH)-linux
vg_local_module := helgrind
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := EXECUTABLE
vg_local_no_crt := true
vg_local_without_system_shared_libraries := true
vg_local_src_files := \
    helgrind/hg_addrdescr.c \
    helgrind/hg_basics.c \
    helgrind/hg_errors.c \
    helgrind/hg_lock_n_thread.c \
    helgrind/hg_main.c \
    helgrind/hg_wordset.c \
    helgrind/libhb_core.c

vg_local_ldflags := $(tool_ldflags)
vg_local_cflags := $(common_cflags)
vg_local_static_libraries := libcoregrind libvex

include $(LOCAL_PATH)/Android.build_all.mk

#LOCAL_FORCE_STATIC_EXECUTABLE := true

# Build vgpreload_helgrind-$(TARGET_ARCH)-linux.so
vg_local_module := vgpreload_helgrind
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := SHARED_LIBRARY
#LOCAL_STRIP_MODULE := false
vg_local_no_crt := true

vg_local_src_files := \
	helgrind/hg_intercepts.c


vg_local_ldflags := $(preload_ldflags)
vg_local_cflags := $(common_cflags)
vg_local_whole_static_libraries := libreplacemalloc_toolpreload

include $(LOCAL_PATH)/Android.build_all.mk

# Build drd-$(TARGET_ARCH)-linux
vg_local_module := drd
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := EXECUTABLE
#LOCAL_FORCE_STATIC_EXECUTABLE := true
vg_local_no_crt := true
vg_local_without_system_shared_libraries := true

vg_local_src_files := \
	drd/drd_barrier.c \
	drd/drd_clientobj.c \
	drd/drd_clientreq.c \
	drd/drd_cond.c \
	drd/drd_cond_initializer.c \
	drd/drd_error.c \
	drd/drd_hb.c \
	drd/drd_load_store.c \
	drd/drd_main.c \
	drd/drd_malloc_wrappers.c \
	drd/drd_mutex.c \
	drd/drd_rwlock.c \
	drd/drd_semaphore.c \
	drd/drd_suppression.c

vg_local_ldflags := $(tool_ldflags)
vg_local_cflags := $(common_cflags)

vg_local_static_libraries := libcoregrind libvex

include $(LOCAL_PATH)/Android.build_all.mk

# Build vgpreload_drd-$(TARGET_ARCH)-linux.so
vg_local_module := vgpreload_drd
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := SHARED_LIBRARY
vg_local_no_crt := true

vg_local_src_files := \
	drd/drd_pthread_intercepts.c \
	drd/drd_qtcore_intercepts.c \
	drd/drd_strmem_intercepts.c

vg_local_ldflags := $(preload_ldflags)
vg_local_cflags := $(common_cflags)

vg_local_whole_static_libraries := libreplacemalloc_toolpreload

include $(LOCAL_PATH)/Android.build_all.mk

# Build massif-$(TARGET_ARCH)-linux
vg_local_module := massif
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := EXECUTABLE
vg_local_no_crt := true
vg_local_without_system_shared_libraries := true

vg_local_src_files := \
	massif/ms_main.c

vg_local_ldflags := $(tool_ldflags)
vg_local_cflags := $(common_cflags)

vg_local_static_libraries := libcoregrind libvex

include $(LOCAL_PATH)/Android.build_all.mk

# Build vgpreload_massif-$(TARGET_ARCH)-linux.so
vg_local_module := vgpreload_massif
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := SHARED_LIBRARY
vg_local_no_crt := true

vg_local_src_files :=

vg_local_ldflags := $(preload_ldflags)
vg_local_cflags := $(common_cflags)
vg_local_whole_static_libraries := libreplacemalloc_toolpreload

include $(LOCAL_PATH)/Android.build_all.mk

# Build none-$(TARGET_ARCH)-linux
vg_local_module := none
vg_local_module_class := SHARED_LIBRARIES
vg_local_target := EXECUTABLE

vg_local_no_crt := true
vg_local_without_system_shared_libraries := true

vg_local_src_files := \
	none/nl_main.c

vg_local_ldflags := $(tool_ldflags)
vg_local_cflags := $(common_cflags)
vg_local_static_libraries := libcoregrind libvex

include $(LOCAL_PATH)/Android.build_all.mk

# Build valgrind
include $(CLEAR_VARS)
LOCAL_MODULE := valgrind
LOCAL_ARM_MODE := arm
LOCAL_SRC_FILES := \
	coregrind/launcher-linux.c \
	coregrind/m_debuglog.c

LOCAL_C_INCLUDES := $(common_includes)
LOCAL_CFLAGS := $(common_cflags)

LOCAL_CFLAGS_$(TARGET_ARCH) = $(target_arch_cflags)

include $(BUILD_EXECUTABLE)

# Build valgrind for linux host
ifeq ($(HOST_OS), linux)
include $(CLEAR_VARS)
LOCAL_MODULE := valgrind
LOCAL_SRC_FILES := \
	coregrind/launcher-linux.c \
	coregrind/m_debuglog.c

LOCAL_C_INCLUDES := $(common_includes)
LOCAL_CFLAGS := $(common_cflags) $(host_arch_cflags)
LOCAL_MULTILIB := 64

include $(BUILD_HOST_EXECUTABLE)
endif

#vg_build_tests := true
# Build tests (some of them)...
# TODO: tests need separate build framework it terms of 2ND_ARCH
ifeq ($(vg_build_tests),true)
ifeq ($(TARGET_ARCH),arm)
test := v6intThumb
include $(LOCAL_PATH)/Android.test.mk
test := vfp
include $(LOCAL_PATH)/Android.test.mk
endif

ifeq ($(TARGET_ARCH),arm64)
test := integer
include $(LOCAL_PATH)/Android.test.mk
test := fp_and_simd
include $(LOCAL_PATH)/Android.test.mk
test := memory
include $(LOCAL_PATH)/Android.test.mk
endif
endif

# Copy prebuilt suppressions
include $(CLEAR_VARS)
LOCAL_MODULE := default.supp
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(PRODUCT_OUT)$(vg_target_module_path)
LOCAL_SRC_FILES := bionic.supp

include $(BUILD_PREBUILT)

ifeq ($(HOST_OS), linux)
include $(CLEAR_VARS)
LOCAL_IS_HOST_MODULE := true
LOCAL_MODULE := default.supp
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(HOST_OUT_SHARED_LIBRARIES)/valgrind
LOCAL_SRC_FILES := bionic.supp

include $(BUILD_PREBUILT)
endif

endif
