summaryrefslogtreecommitdiff
path: root/mozglue/build/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'mozglue/build/moz.build')
-rw-r--r--mozglue/build/moz.build108
1 files changed, 108 insertions, 0 deletions
diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build
new file mode 100644
index 0000000000..d289747785
--- /dev/null
+++ b/mozglue/build/moz.build
@@ -0,0 +1,108 @@
+# -*- Mode: python; 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/.
+
+# Build mozglue as a shared lib on Windows, OSX and Android.
+# If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in
+if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'):
+ SharedLibrary('mozglue')
+else:
+ Library('mozglue')
+
+SDK_LIBRARY = True
+
+if CONFIG['OS_TARGET'] == 'Android':
+ SOURCES += [
+ 'BionicGlue.cpp',
+ ]
+
+if CONFIG['MOZ_ASAN']:
+ SOURCES += [
+ 'AsanOptions.cpp',
+ ]
+
+if CONFIG['OS_TARGET'] == 'WINNT':
+ DEFFILE = 'mozglue.def'
+ # We'll break the DLL blocklist if we immediately load user32.dll
+ DELAYLOAD_DLLS += [
+ 'user32.dll',
+ ]
+
+if not CONFIG['JS_STANDALONE']:
+
+ if CONFIG['MOZ_MEMORY'] and (CONFIG['MOZ_SYSTEM_JEMALLOC'] or FORCE_SHARED_LIB):
+ pass
+ # TODO: SHARED_LIBRARY_LIBS go here
+ else:
+ # Temporary, until bug 662814 lands
+ NO_VISIBILITY_FLAGS = True
+ SOURCES += [
+ 'dummy.cpp',
+ ]
+
+ if CONFIG['OS_TARGET'] == 'WINNT':
+ LOCAL_INCLUDES += [
+ '/memory/build',
+ ]
+ SOURCES += [
+ 'WindowsDllBlocklist.cpp',
+ ]
+ DISABLE_STL_WRAPPING = True
+ OS_LIBS += [
+ 'version',
+ ]
+
+ EXPORTS.mozilla += [
+ 'arm.h',
+ 'mips.h',
+ 'SSE.h',
+ 'WindowsDllBlocklist.h',
+ ]
+
+ if CONFIG['CPU_ARCH'].startswith('x86'):
+ SOURCES += [
+ 'SSE.cpp',
+ ]
+
+ if CONFIG['CPU_ARCH'] == 'arm':
+ SOURCES += [
+ 'arm.cpp',
+ ]
+
+ if CONFIG['CPU_ARCH'].startswith('mips'):
+ SOURCES += [
+ 'mips.cpp',
+ ]
+
+ if CONFIG['MOZ_LINKER']:
+ USE_LIBS += [
+ 'zlib',
+ ]
+
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
+ SOURCES += [
+ 'cpuacct.c',
+ ]
+
+USE_LIBS += [
+ 'mfbt',
+]
+
+DEFINES['IMPL_MFBT'] = True
+LIBRARY_DEFINES['MOZ_HAS_MOZGLUE'] = True
+
+LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS']
+
+if CONFIG['OS_TARGET'] == 'Darwin':
+ # On OSX 10.10.3, a dead lock happens in some cases involving dynamic
+ # symbol resolution for symbols that jemalloc itself uses. While it
+ # might be possible to find a way to avoid all such symbol resolutions,
+ # it's currently not possible because at the very least there's a call
+ # to pthread_self from tsd_init_check_recursion, which is necessary
+ # because somehow clang doesn't want to accept the __thread keyword
+ # for TLS.
+ LDFLAGS += ['-Wl,-bind_at_load']
+
+DIST_INSTALL = True