| # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- |
| # vim: set filetype=python: |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| EXPORTS += [ |
| 'mozmemory.h', |
| 'mozmemory_wrap.h', |
| ] |
| |
| DEFINES['MOZ_MEMORY_IMPL'] = True |
| |
| if CONFIG['MOZ_REPLACE_MALLOC']: |
| EXPORTS += [ |
| 'malloc_decls.h', |
| 'replace_malloc.h', |
| 'replace_malloc_bridge.h', |
| ] |
| |
| SOURCES += [ |
| 'jemalloc_config.cpp', |
| 'mozmemory_wrap.c', |
| ] |
| |
| if CONFIG['MOZ_JEMALLOC4']: |
| SOURCES += [ |
| 'mozjemalloc_compat.c', |
| ] |
| LOCAL_INCLUDES += ['!../jemalloc/src/include'] |
| if CONFIG['_MSC_VER']: |
| LOCAL_INCLUDES += ['/memory/jemalloc/src/include/msvc_compat'] |
| if not CONFIG['HAVE_INTTYPES_H']: |
| LOCAL_INCLUDES += ['/memory/jemalloc/src/include/msvc_compat/C99'] |
| |
| if CONFIG['MOZ_REPLACE_MALLOC']: |
| SOURCES += [ |
| 'replace_malloc.c', |
| ] |
| |
| Library('memory') |
| |
| if CONFIG['MOZ_JEMALLOC4']: |
| if not CONFIG['MOZ_NATIVE_JEMALLOC']: |
| USE_LIBS += [ |
| 'jemalloc', |
| ] |
| else: |
| USE_LIBS += [ |
| 'mozjemalloc', |
| ] |
| |
| if CONFIG['MOZ_GLUE_IN_PROGRAM']: |
| SDK_LIBRARY = True |
| DIST_INSTALL = True |
| |
| # Keep jemalloc separated when mozglue is statically linked |
| if CONFIG['MOZ_MEMORY'] and (CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android') or |
| CONFIG['MOZ_NATIVE_JEMALLOC']): |
| FINAL_LIBRARY = 'mozglue' |
| |
| if CONFIG['MOZ_REPLACE_MALLOC'] and CONFIG['OS_TARGET'] == 'Darwin': |
| # The zone allocator for OSX needs some jemalloc internal functions |
| LOCAL_INCLUDES += ['/memory/jemalloc/src/include'] |
| |
| if CONFIG['GNU_CC']: |
| CFLAGS += ['-Wshadow'] |