diff --git a/js/src/Makefile.in b/js/src/Makefile.in index 43f12111d9b..55059c496ff 100644 --- a/js/src/Makefile.in +++ b/js/src/Makefile.in @@ -22,6 +22,10 @@ LIBS = $(NSPR_LIBS) DIST_INSTALL = 1 +ifdef JS_STANDALONE +SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt) +endif + ifdef JS_HAS_CTYPES ifdef MOZ_NATIVE_FFI LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS) diff --git a/js/src/moz.build b/js/src/moz.build index 75d34ab0f4b..1c975ed6ab9 100644 --- a/js/src/moz.build +++ b/js/src/moz.build @@ -16,15 +16,10 @@ if not CONFIG['JS_DISABLE_SHELL']: TEST_DIRS += ['jsapi-tests', 'tests', 'gdb'] -mfbt_root = '../../mfbt' -LOCAL_INCLUDES += ['%s/double-conversion' % mfbt_root] +LOCAL_INCLUDES += ['../../mfbt/double-conversion'] if CONFIG['JS_STANDALONE']: LIBRARY_NAME = 'mozjs-%s' % CONFIG['MOZILLA_SYMBOLVERSION'] - - # When building standalone, we need to include mfbt sources, and to declare - # "exported" mfbt symbols on its behalf when we use its headers. - include('%s/common.mozbuild' % mfbt_root) else: LIBRARY_NAME = 'mozjs' diff --git a/mfbt/common.mozbuild b/mfbt/common.mozbuild deleted file mode 100644 index deb26d97899..00000000000 --- a/mfbt/common.mozbuild +++ /dev/null @@ -1,90 +0,0 @@ -# -*- 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/. - -# This file defines the headers exported by and the sources build for mfbt. -# It is included by mfbt itself and by the JS engine, which, when built -# standalone, must install mfbt's exported headers and build mfbt sources -# itself. It expects that mfbt_root is set to the relative path to mfbt -# before this file in included. - -mfbt_headers = [ - 'Alignment.h', - 'AllocPolicy.h', - 'Array.h', - 'ArrayUtils.h', - 'Assertions.h', - 'Atomics.h', - 'Attributes.h', - 'BloomFilter.h', - 'Casting.h', - 'Char16.h', - 'CheckedInt.h', - 'Compiler.h', - 'Compression.h', - 'Constants.h', - 'DebugOnly.h', - 'decimal/Decimal.h', - 'Endian.h', - 'EnumSet.h', - 'FloatingPoint.h', - 'GuardObjects.h', - 'HashFunctions.h', - 'IntegerPrintfMacros.h', - 'Likely.h', - 'LinkedList.h', - 'MathAlgorithms.h', - 'Maybe.h', - 'MemoryChecking.h', - 'MemoryReporting.h', - 'Move.h', - 'MSIntTypes.h', - 'NullPtr.h', - 'NumericLimits.h', - 'PodOperations.h', - 'Poison.h', - 'Range.h', - 'RangedPtr.h', - 'ReentrancyGuard.h', - 'RefPtr.h', - 'RollingMean.h', - 'Scoped.h', - 'SHA1.h', - 'SplayTree.h', - 'TemplateLib.h', - 'ThreadLocal.h', - 'TypedEnum.h', - 'Types.h', - 'TypeTraits.h', - 'Vector.h', - 'WeakPtr.h', -] - -mfbt_sources = [ - 'double-conversion/bignum-dtoa.cc', - 'double-conversion/bignum.cc', - 'double-conversion/cached-powers.cc', - 'double-conversion/diy-fp.cc', - 'double-conversion/double-conversion.cc', - 'double-conversion/fast-dtoa.cc', - 'double-conversion/fixed-dtoa.cc', - 'double-conversion/strtod.cc', - 'FloatingPoint.cpp', - 'HashFunctions.cpp', - 'Poison.cpp', - 'SHA1.cpp', -] - -DEFINES['IMPL_MFBT'] = True - -EXPORTS.mozilla += ['%s/%s' % (mfbt_root, header) for header in mfbt_headers] -UNIFIED_SOURCES += ['%s/%s' % (mfbt_root, src) for src in mfbt_sources] - -# Compression.cpp cannot be built in unified mode because it pulls in Windows system headers. -# Decimal.cpp doesn't build in unified mode with gcc. -SOURCES += [ - mfbt_root + '/Compression.cpp', - mfbt_root + '/decimal/Decimal.cpp', -] diff --git a/mfbt/moz.build b/mfbt/moz.build index 9849f416dac..9ac2c3488f3 100644 --- a/mfbt/moz.build +++ b/mfbt/moz.build @@ -8,7 +8,78 @@ TEST_DIRS += ['tests'] LIBRARY_NAME = 'mfbt' -mfbt_root = '.' -include('common.mozbuild') +EXPORTS.mozilla = [ + 'Alignment.h', + 'AllocPolicy.h', + 'Array.h', + 'ArrayUtils.h', + 'Assertions.h', + 'Atomics.h', + 'Attributes.h', + 'BloomFilter.h', + 'Casting.h', + 'Char16.h', + 'CheckedInt.h', + 'Compiler.h', + 'Compression.h', + 'Constants.h', + 'DebugOnly.h', + 'decimal/Decimal.h', + 'Endian.h', + 'EnumSet.h', + 'FloatingPoint.h', + 'GuardObjects.h', + 'HashFunctions.h', + 'IntegerPrintfMacros.h', + 'Likely.h', + 'LinkedList.h', + 'MathAlgorithms.h', + 'Maybe.h', + 'MemoryChecking.h', + 'MemoryReporting.h', + 'Move.h', + 'MSIntTypes.h', + 'NullPtr.h', + 'NumericLimits.h', + 'PodOperations.h', + 'Poison.h', + 'Range.h', + 'RangedPtr.h', + 'ReentrancyGuard.h', + 'RefPtr.h', + 'RollingMean.h', + 'Scoped.h', + 'SHA1.h', + 'SplayTree.h', + 'TemplateLib.h', + 'ThreadLocal.h', + 'TypedEnum.h', + 'Types.h', + 'TypeTraits.h', + 'Vector.h', + 'WeakPtr.h', +] -FINAL_LIBRARY = 'mozglue' +UNIFIED_SOURCES = [ + 'double-conversion/bignum-dtoa.cc', + 'double-conversion/bignum.cc', + 'double-conversion/cached-powers.cc', + 'double-conversion/diy-fp.cc', + 'double-conversion/double-conversion.cc', + 'double-conversion/fast-dtoa.cc', + 'double-conversion/fixed-dtoa.cc', + 'double-conversion/strtod.cc', + 'FloatingPoint.cpp', + 'HashFunctions.cpp', + 'Poison.cpp', + 'SHA1.cpp', +] + +DEFINES['IMPL_MFBT'] = True + +# Compression.cpp cannot be built in unified mode because it pulls in Windows system headers. +# Decimal.cpp doesn't build in unified mode with gcc. +SOURCES += [ + 'Compression.cpp', + 'decimal/Decimal.cpp', +] diff --git a/moz.build b/moz.build index ebaf199a13b..a82b53a869c 100644 --- a/moz.build +++ b/moz.build @@ -11,7 +11,7 @@ CONFIGURE_SUBST_FILES += [ if CONFIG['BUILDING_JS']: if CONFIG['JS_STANDALONE']: - add_tier_dir('base', ['config']) + add_tier_dir('base', ['config', 'mfbt']) add_tier_dir('js', ['js/src']) else: CONFIGURE_SUBST_FILES += [ diff --git a/mozglue/build/Makefile.in b/mozglue/build/Makefile.in index b578160f3ad..0b6e020ec37 100644 --- a/mozglue/build/Makefile.in +++ b/mozglue/build/Makefile.in @@ -24,6 +24,8 @@ endif MOZ_GLUE_LDFLAGS = # Don't link against ourselves +SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt) + ifneq (,$(ZLIB_IN_MOZGLUE)$(MOZ_LINKER)) ifdef MOZ_NATIVE_ZLIB EXTRA_DSO_LDOPTS += $(MOZ_ZLIB_LIBS)