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

jemalloc_common_cflags := \
	-std=gnu99 \
	-D_REENTRANT \
	-fvisibility=hidden \
	-Wno-unused-parameter \
	-Wno-type-limits \

# These parameters change the way jemalloc works.
#   ANDROID_MAX_ARENAS=XX
#     The total number of arenas will be less than or equal to this number.
#     The number of arenas will be calculated as 2 * the number of cpus
#     but no larger than XX.
#   ANDROID_TCACHE_NSLOTS_SMALL_MAX=XX
#     The number of small slots held in the tcache. The higher this number
#     is, the higher amount of PSS consumed. If this number is set too low
#     then small allocations will take longer to complete.
#   ANDROID_TCACHE_NSLOTS_LARGE=XX
#     The number of large slots held in the tcache. The higher this number
#     is, the higher amount of PSS consumed. If this number is set too low
#     then large allocations will take longer to complete.
#   ANDROID_LG_TCACHE_MAXCLASS_DEFAULT=XX
#     1 << XX is the maximum sized allocation that will be in the tcache.
#   ANDROID_LG_CHUNK_DEFAULT=XX
#     1 << XX is the default chunk size used by the system. Decreasing this
#     usually decreases the amount of PSS used, but can increase
#     fragmentation.
jemalloc_common_cflags += \
	-DANDROID_LG_TCACHE_MAXCLASS_DEFAULT=16 \

ifeq ($(MALLOC_SVELTE),true)
# Use a single arena on svelte devices to keep the PSS consumption as low
# as possible.
jemalloc_common_cflags += \
	-DANDROID_MAX_ARENAS=1 \

else
# Only enable the tcache on non-svelte configurations, to save PSS.
jemalloc_common_cflags += \
	-DANDROID_MAX_ARENAS=2 \
	-DJEMALLOC_TCACHE \
	-DANDROID_TCACHE_NSLOTS_SMALL_MAX=8 \
	-DANDROID_TCACHE_NSLOTS_LARGE=16 \

endif

# Use a 512K chunk size on 32 bit systems.
# This keeps the total amount of virtual address space consumed
# by jemalloc lower.
jemalloc_common_cflags_32 += \
	-DANDROID_LG_CHUNK_DEFAULT=19 \

# Use a 2MB chunk size on 64 bit systems.
# This is the default currently used by 4.0.0.
jemalloc_common_cflags_64 += \
	-DANDROID_LG_CHUNK_DEFAULT=21 \

jemalloc_common_c_includes := \
	$(LOCAL_PATH)/src \
	$(LOCAL_PATH)/include \

jemalloc_lib_src_files := \
	src/arena.c \
	src/atomic.c \
	src/base.c \
	src/bitmap.c \
	src/chunk.c \
	src/chunk_dss.c \
	src/chunk_mmap.c \
	src/ckh.c \
	src/ctl.c \
	src/extent.c \
	src/hash.c \
	src/huge.c \
	src/jemalloc.c \
	src/mb.c \
	src/mutex.c \
	src/nstime.c \
	src/pages.c \
	src/prng.c \
	src/prof.c \
	src/quarantine.c \
	src/rtree.c \
	src/stats.c \
	src/tcache.c \
	src/ticker.c \
	src/tsd.c \
	src/util.c \

#-----------------------------------------------------------------------
# jemalloc static library
#-----------------------------------------------------------------------
include $(CLEAR_VARS)

LOCAL_MODULE := libjemalloc
LOCAL_MODULE_TAGS := optional

LOCAL_ADDITIONAL_DEPENDENCIES := \
	$(LOCAL_PATH)/Android.mk \

LOCAL_CFLAGS := \
	$(jemalloc_common_cflags) \
	-include bionic/libc/private/libc_logging.h \

LOCAL_CFLAGS_32 := $(jemalloc_common_cflags_32)
LOCAL_CFLAGS_64 := $(jemalloc_common_cflags_64)

LOCAL_C_INCLUDES := \
	$(jemalloc_common_c_includes) \

LOCAL_SRC_FILES := \
	$(jemalloc_lib_src_files) \

# This is linked into libc, which asan runtime library depends on.
LOCAL_SANITIZE := never

include $(BUILD_STATIC_LIBRARY)

#-----------------------------------------------------------------------
# jemalloc static jet library
#-----------------------------------------------------------------------
include $(CLEAR_VARS)

LOCAL_MODULE := libjemalloc_jet
LOCAL_MODULE_TAGS := optional

LOCAL_ADDITIONAL_DEPENDENCIES := \
	$(LOCAL_PATH)/Android.mk \

LOCAL_CFLAGS := \
	$(jemalloc_common_cflags) \
	-DJEMALLOC_JET \
	-include $(LOCAL_PATH)/android/include/libc_logging.h \

LOCAL_CFLAGS_32 := $(jemalloc_common_cflags_32)
LOCAL_CFLAGS_64 := $(jemalloc_common_cflags_64)

LOCAL_C_INCLUDES := \
	$(jemalloc_common_c_includes) \

LOCAL_SRC_FILES := \
	$(jemalloc_lib_src_files) \

include $(BUILD_STATIC_LIBRARY)

jemalloc_testlib_srcs := \
	test/src/btalloc.c \
	test/src/btalloc_0.c \
	test/src/btalloc_1.c \
	test/src/math.c \
	test/src/mq.c \
	test/src/mtx.c \
	test/src/SFMT.c \
	test/src/test.c \
	test/src/thd.c \
	test/src/timer.c \

#-----------------------------------------------------------------------
# jemalloc unit test library
#-----------------------------------------------------------------------
include $(CLEAR_VARS)

LOCAL_MODULE := libjemalloc_unittest
LOCAL_MODULE_TAGS := optional

LOCAL_ADDITIONAL_DEPENDENCIES := \
	$(LOCAL_PATH)/Android.mk \

LOCAL_CFLAGS := \
	$(jemalloc_common_cflags) \
	-DJEMALLOC_UNIT_TEST \
	-include $(LOCAL_PATH)/android/include/libc_logging.h \

LOCAL_CFLAGS_32 := $(jemalloc_common_cflags_32)
LOCAL_CFLAGS_64 := $(jemalloc_common_cflags_64)

LOCAL_C_INCLUDES := \
	$(jemalloc_common_c_includes) \
	$(LOCAL_PATH)/test/src \
	$(LOCAL_PATH)/test/include \

LOCAL_SRC_FILES := $(jemalloc_testlib_srcs)

LOCAL_WHOLE_STATIC_LIBRARIES := libjemalloc_jet

include $(BUILD_STATIC_LIBRARY)
#include $(BUILD_SHARED_LIBRARY)

#-----------------------------------------------------------------------
# jemalloc unit tests
#-----------------------------------------------------------------------
jemalloc_unit_tests := \
	test/unit/atomic.c \
	test/unit/bitmap.c \
	test/unit/ckh.c \
	test/unit/decay.c \
	test/unit/hash.c \
	test/unit/junk.c \
	test/unit/junk_alloc.c \
	test/unit/junk_free.c \
	test/unit/lg_chunk.c \
	test/unit/mallctl.c \
	test/unit/math.c \
	test/unit/mq.c \
	test/unit/mtx.c \
	test/unit/nstime.c \
	test/unit/prng.c \
	test/unit/prof_accum.c \
	test/unit/prof_active.c \
	test/unit/prof_gdump.c \
	test/unit/prof_idump.c \
	test/unit/prof_reset.c \
	test/unit/prof_thread_name.c \
	test/unit/ql.c \
	test/unit/qr.c \
	test/unit/quarantine.c \
	test/unit/rb.c \
	test/unit/rtree.c \
	test/unit/run_quantize.c \
	test/unit/SFMT.c \
	test/unit/size_classes.c \
	test/unit/smoothstep.c \
	test/unit/stats.c \
	test/unit/ticker.c \
	test/unit/tsd.c \
	test/unit/util.c \
	test/unit/zero.c \

$(foreach test,$(jemalloc_unit_tests), \
  $(eval test_name := $(basename $(notdir $(test)))); \
  $(eval test_src := $(test)); \
  $(eval test_cflags := -DJEMALLOC_UNIT_TEST); \
  $(eval test_libs := libjemalloc_unittest); \
  $(eval test_path := jemalloc_unittests); \
  $(eval include $(LOCAL_PATH)/Android.test.mk) \
)

#-----------------------------------------------------------------------
# jemalloc integration test library
#-----------------------------------------------------------------------
include $(CLEAR_VARS)

LOCAL_MODULE := libjemalloc_integrationtest
LOCAL_MODULE_TAGS := optional

LOCAL_ADDITIONAL_DEPENDENCIES := \
	$(LOCAL_PATH)/Android.mk \

LOCAL_CFLAGS := \
	$(jemalloc_common_cflags) \
	-DJEMALLOC_INTEGRATION_TEST \
	-include $(LOCAL_PATH)/android/include/libc_logging.h \

LOCAL_CFLAGS_32 := $(jemalloc_common_cflags_32)
LOCAL_CFLAGS_64 := $(jemalloc_common_cflags_64)

LOCAL_C_INCLUDES := \
	$(jemalloc_common_c_includes) \
	$(LOCAL_PATH)/test/src \
	$(LOCAL_PATH)/test/include \

LOCAL_SRC_FILES := \
	$(jemalloc_testlib_srcs) \
	$(jemalloc_lib_src_files) \

include $(BUILD_STATIC_LIBRARY)

#-----------------------------------------------------------------------
# jemalloc integration tests
#-----------------------------------------------------------------------
jemalloc_integration_tests := \
	test/integration/aligned_alloc.c \
	test/integration/allocated.c \
	test/integration/chunk.c \
	test/integration/iterate.c \
	test/integration/MALLOCX_ARENA.c \
	test/integration/mallocx.c \
	test/integration/overflow.c \
	test/integration/posix_memalign.c \
	test/integration/rallocx.c \
	test/integration/sdallocx.c \
	test/integration/thread_arena.c \
	test/integration/thread_tcache_enabled.c \
	test/integration/xallocx.c \

$(foreach test,$(jemalloc_integration_tests), \
  $(eval test_name := $(basename $(notdir $(test)))); \
  $(eval test_src := $(test)); \
  $(eval test_cflags := -DJEMALLOC_INTEGRATION_TEST); \
  $(eval test_libs := libjemalloc_integrationtest); \
  $(eval test_path := jemalloc_integrationtests); \
  $(eval include $(LOCAL_PATH)/Android.test.mk) \
)
