Back out ce03cc2994aa:ae9f95fc1136 (bug 896797) for SpiderMonkey shell build bustage

CLOSED TREE
This commit is contained in:
Phil Ringnalda 2013-09-03 23:21:30 -07:00
parent 29150e641d
commit 271703650a
39 changed files with 149 additions and 148 deletions

View File

@ -62,7 +62,6 @@ ifndef MOZ_PROFILE_USE
default alldep all:: CLOBBER $(topsrcdir)/configure config.status backend.RecursiveMakeBackend.built
$(call SUBMAKE,backend.RecursiveMakeBackend.built,js/src,1)
$(call py_action,purge_manifests,-d _build_manifests/purge .)
$(call py_action,process_install_manifest,$(DIST)/include _build_manifests/install/dist_include js/src/_build_manifests/install/dist_include)
endif
CLOBBER: $(topsrcdir)/CLOBBER

View File

@ -67,11 +67,6 @@ MIDL_GENERATED_FILES = \
EMBED_MANIFEST_AT = 2
INSTALL_TARGETS += midl
midl_FILES := $(filter %.h %_i.c,$(MIDL_GENERATED_FILES))
midl_DEST = $(DIST)/include
midl_TARGET := export
include $(topsrcdir)/config/rules.mk
OS_LIBS = $(call EXPAND_LIBNAME,uuid kernel32 rpcns4 rpcrt4 ole32 oleaut32)

View File

@ -5,5 +5,49 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
MODULE = 'accessibility'
# Please keep this list in sync with the Makefile.in until the rest of that file
# is ported over.
midl_interfaces = [
'Accessible2',
'Accessible2_2',
'AccessibleAction',
'AccessibleApplication',
'AccessibleComponent',
'AccessibleDocument',
'AccessibleEditableText',
'AccessibleHyperlink',
'AccessibleHypertext',
'AccessibleHypertext2',
'AccessibleImage',
'AccessibleRelation',
'AccessibleTable',
'AccessibleTable2',
'AccessibleTableCell',
'AccessibleText',
'AccessibleText2',
'AccessibleValue',
]
# Please keep this list in sync with the Makefile.in until the rest of that file
# is ported over.
midl_enums = [
'AccessibleEventId',
'AccessibleRole',
'AccessibleStates',
'IA2CommonTypes',
]
headers = ['%s.h' % x for x in midl_enums]
interfaces_h = ['%s.h' % x for x in midl_interfaces]
interfaces_c = ['%s_i.c' % x for x in midl_interfaces]
# The underscore throws off sorting and EXPORTS expects sorted lists.
interfaces_c.sort()
EXPORTS += headers
EXPORTS += interfaces_h
EXPORTS += interfaces_c
LIBRARY_NAME = 'IA2Marshal'

View File

@ -60,19 +60,5 @@ register::
EMBED_MANIFEST_AT = 2
midl_exports := \
ISimpleDOMDocument.h \
ISimpleDOMDocument_i.c \
ISimpleDOMNode.h \
ISimpleDOMNode_i.c \
ISimpleDOMText.h \
ISimpleDOMText_i.c \
$(NULL)
INSTALL_TARGETS += midl_exports
midl_exports_FILES := $(midl_exports)
midl_exports_DEST = $(DIST)/include
midl_exports_TARGET := export
include $(topsrcdir)/config/rules.mk

View File

@ -6,5 +6,14 @@
MODULE = 'accessibility'
EXPORTS += [
'ISimpleDOMDocument.h',
'ISimpleDOMDocument_i.c',
'ISimpleDOMNode.h',
'ISimpleDOMNode_i.c',
'ISimpleDOMText.h',
'ISimpleDOMText_i.c',
]
LIBRARY_NAME = 'AccessibleMarshal'

View File

@ -11,11 +11,6 @@ include $(DEPTH)/config/autoconf.mk
EXTRA_MDDEPEND_FILES = xpcAccEvents.pp
INSTALL_TARGETS += xpcaccevents
xpcaccevents_FILES := xpcAccEvents.h
xpcaccevents_DEST = $(DIST)/include
xpcaccevents_TARGET := export
include $(topsrcdir)/config/rules.mk
LOCAL_INCLUDES = \

View File

@ -6,6 +6,10 @@
MODULE = 'accessibility'
EXPORTS += [
'xpcAccEvents.h',
]
CPP_SOURCES += [
'nsAccessibleRelation.cpp',
'xpcAccEvents.cpp',

View File

@ -110,7 +110,6 @@ INSTALL_TARGETS += EXPORTS_GENERATED
# be in the same target/subtier as GlobalGen.py, otherwise the files will not
# get installed into the appropriate location as they are generated.
globalgen_headers_FILES := \
GeneratedAtomList.h \
PrototypeList.h \
RegisterBindings.h \
UnionConversions.h \

View File

@ -21,6 +21,7 @@ EXPORTS.mozilla.dom += [
'DOMJSProxyHandler.h',
'Date.h',
'Errors.msg',
'GeneratedAtomList.h',
'JSSlots.h',
'NonRefcountedDOMObject.h',
'Nullable.h',

View File

@ -93,11 +93,6 @@ endif
LOCAL_INCLUDES += -I$(srcdir)
INSTALL_TARGETS += cairo_features
cairo_features_FILES := cairo-features.h
cairo_features_DEST = $(DIST)/include/cairo
cairo_features_TARGET := export
include $(topsrcdir)/config/rules.mk
ifdef GNU_CC

View File

@ -10,6 +10,7 @@ MODULE = 'cairo'
EXPORTS.cairo += [
'cairo-deprecated.h',
'cairo-features.h',
'cairo-platform.h',
'cairo-rename.h',
'cairo-tee.h',

View File

@ -53,8 +53,8 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
'd3d9/LayerManagerD3D9.h',
]
EXPORTS.mozilla.layers += [
'd3d9/CompositorD3D9.h',
'd3d9/TextureD3D9.h',
'CompositorD3D9.h',
'TextureD3D9.h',
]
CPP_SOURCES += [
'CompositorD3D9.cpp',
@ -100,6 +100,8 @@ EXPORTS.mozilla.layers += [
'CompositorTypes.h',
'D3D9SurfaceImage.h',
'Effects.h',
'GrallocTextureClient.h',
'GrallocTextureHost.h',
'ImageDataSerializer.h',
'LayersTypes.h',
'RenderTrace.h',
@ -143,8 +145,6 @@ EXPORTS.mozilla.layers += [
'ipc/TaskThrottler.h',
'opengl/CompositingRenderTargetOGL.h',
'opengl/CompositorOGL.h',
'opengl/GrallocTextureClient.h',
'opengl/GrallocTextureHost.h',
'opengl/TextureClientOGL.h',
'opengl/TextureHostOGL.h',
]

View File

@ -177,7 +177,6 @@ MOZILLA_DTRACE_SRC = $(srcdir)/devtools/javascript-trace.d
endif
default::
$(call py_action,process_install_manifest,$(if $(JS_STANDALONE),,--no-remove) $(DIST)/include _build_manifests/install/dist_include)
ifneq (,$(CROSS_COMPILE)$(filter-out WINNT OS2,$(OS_ARCH)))
# nsinstall doesn't get built until we enter config/ in the exports phase,
@ -202,16 +201,6 @@ symverscript: symverscript.in
EXTRA_DEPS += symverscript
endif
export_files = js-config.h
ifdef HAVE_DTRACE
export_files += $(CURDIR)/javascript-trace.h
endif
INSTALL_TARGETS += jsconfig
jsconfig_FILES = $(export_files)
jsconfig_DEST = $(DIST)/include
jsconfig_TARGETS := export
include $(topsrcdir)/config/rules.mk
ifdef JS_HAS_CTYPES

View File

@ -31,6 +31,7 @@ CONFIGURE_SUBST_FILES += ['devtools/rootAnalysis/Makefile']
# browser builds. Don't add new files here unless you know what you're
# doing!
EXPORTS += [
'js-config.h',
'js.msg',
'jsalloc.h',
'jsapi.h',
@ -48,6 +49,11 @@ EXPORTS += [
'perf/jsperf.h',
]
if CONFIG['HAVE_DTRACE']:
EXPORTS += [
'$(CURDIR)/javascript-trace.h',
]
# If you add a header here, add it to js/src/jsapi-tests/testIntTypesABI.cpp so
# that we ensure we don't over-expose our internal integer typedefs. Note that
# LegacyIntTypes.h below is deliberately exempted from this requirement.

View File

@ -40,15 +40,6 @@ SHARED_LIBRARY_LIBS = \
EXTRA_MDDEPEND_FILES = dom_qsgen.pp dictionary_helper_gen.pp event_impl_gen.pp
INSTALL_TARGETS += extra_export_files
extra_export_files_FILES := \
DictionaryHelpers.h \
GeneratedEventClasses.h \
GeneratedEvents.h \
$(NULL)
extra_export_files_DEST = $(DIST)/include
extra_export_files_TARGET := export
include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk
@ -156,6 +147,14 @@ GeneratedEvents-webidl: event_impl_gen.conf
--webidltarget=$(top_srcdir)/dom/webidl \
event_impl_gen.conf
_EXTRA_EXPORT_FILES = \
DictionaryHelpers.h \
GeneratedEventClasses.h \
$(NULL)
libs:: $(_EXTRA_EXPORT_FILES)
$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/dist/include
GARBAGE += \
dom_quickstubs.h \
dom_quickstubs.cpp \

View File

@ -8,6 +8,7 @@ MODULE = 'xpconnect'
EXPORTS += [
'BackstagePass.h',
'GeneratedEvents.h',
'XPCJSMemoryReporter.h',
'nsCxPusher.h',
'qsObjectHelper.h',

View File

@ -14,11 +14,6 @@ OS_CFLAGS := $(OS_CFLAGS) -Wshadow
OS_CXXFLAGS := $(OS_CXXFLAGS) -Wshadow
endif
INSTALL_TARGETS += structlist
structlist_FILES := nsStyleStructList.h
structlist_DEST = $(DIST)/include
structlist_TARGET := export
include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk

View File

@ -54,6 +54,7 @@ EXPORTS += [
'nsStyleStruct.h',
'nsStyleStructFwd.h',
'nsStyleStructInlines.h',
'nsStyleStructList.h',
'nsStyleTransformMatrix.h',
'nsStyleUtil.h',
]

View File

@ -1,15 +0,0 @@
# 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/.
DEPTH := @DEPTH@
topsrcdir := @top_srcdir@
srcdir := @srcdir@
VPATH := @srcdir@
INSTALL_TARGETS += neckoconfig
neckoconfig_FILES := necko-config.h
neckoconfig_DEST = $(DIST)/include
neckoconfig_TARGET := export
include $(topsrcdir)/config/rules.mk

View File

@ -35,3 +35,8 @@ DIRS += ['build']
TEST_TOOL_DIRS += ['test']
MODULE = 'necko'
EXPORTS += [
'necko-config.h',
]

View File

@ -13,14 +13,14 @@ COMPLETE = 'From {dest}: Kept {existing} existing; Added/updated {updated}; ' \
'Removed {rm_files} files and {rm_dirs} directories.'
def process_manifest(destdir, paths, remove_unaccounted=True):
def process_manifest(destdir, *paths):
manifest = InstallManifest()
for path in paths:
manifest |= InstallManifest(path=path)
copier = FileCopier()
manifest.populate_registry(copier)
return copier.copy(destdir, remove_unaccounted=remove_unaccounted)
return copier.copy(destdir)
if __name__ == '__main__':
@ -29,13 +29,10 @@ if __name__ == '__main__':
parser.add_argument('destdir', help='Destination directory.')
parser.add_argument('manifests', nargs='+', help='Path to manifest file(s).')
parser.add_argument('--no-remove', action='store_true',
help='Do not remove unaccounted files from destination.')
args = parser.parse_args()
result = process_manifest(args.destdir, args.manifests,
remove_unaccounted=not args.no_remove)
result = process_manifest(args.destdir, *args.manifests)
print(COMPLETE.format(dest=args.destdir,
existing=result.existing_files_count,

View File

@ -149,8 +149,11 @@ class RecursiveMakeBackend(CommonBackend):
self.backend_input_files.add(os.path.join(self.environment.topobjdir,
'config', 'autoconf.mk'))
self._install_manifests = dict()
self._purge_manifests = dict(
dist_bin=PurgeManifest(relpath='dist/bin'),
dist_include=PurgeManifest(relpath='dist/include'),
dist_private=PurgeManifest(relpath='dist/private'),
dist_public=PurgeManifest(relpath='dist/public'),
dist_sdk=PurgeManifest(relpath='dist/sdk'),
@ -160,7 +163,6 @@ class RecursiveMakeBackend(CommonBackend):
self._install_manifests = dict(
dist_idl=InstallManifest(),
dist_include=InstallManifest(),
)
def _update_from_avoid_write(self, result):
@ -206,7 +208,7 @@ class RecursiveMakeBackend(CommonBackend):
else:
backend_file.write('%s := %s\n' % (k, v))
elif isinstance(obj, Exports):
self._process_exports(obj, obj.exports, backend_file)
self._process_exports(obj.exports, backend_file)
elif isinstance(obj, IPDLFile):
self._ipdl_sources.add(mozpath.join(obj.srcdir, obj.basename))
@ -365,28 +367,29 @@ class RecursiveMakeBackend(CommonBackend):
fh.write('PARALLEL_DIRS += %s\n' %
' '.join(obj.parallel_external_make_dirs))
def _process_exports(self, obj, exports, backend_file, namespace=""):
# This may not be needed, but is present for backwards compatibility
# with the old make rules, just in case.
if not obj.dist_install:
return
def _process_exports(self, exports, backend_file, namespace=""):
strings = exports.get_strings()
if namespace:
if strings:
backend_file.write('EXPORTS_NAMESPACES += %s\n' % namespace)
export_name = 'EXPORTS_%s' % namespace
namespace += '/'
else:
export_name = 'EXPORTS'
for s in strings:
source = os.path.normpath(os.path.join(obj.srcdir, s))
dest = '%s%s' % (namespace, os.path.basename(s))
self._install_manifests['dist_include'].add_symlink(source, dest)
# Iterate over the list of export filenames, printing out an EXPORTS
# declaration for each.
if strings:
backend_file.write('%s += %s\n' % (export_name, ' '.join(strings)))
if not os.path.exists(source):
raise Exception('File listed in EXPORTS does not exist: %s' % source)
for s in strings:
p = '%s%s' % (namespace, s)
self._purge_manifests['dist_include'].add(p)
children = exports.get_children()
for subdir in sorted(children):
self._process_exports(obj, children[subdir], backend_file,
namespace=namespace + subdir)
self._process_exports(children[subdir], backend_file,
namespace=namespace + subdir)
def _handle_idl_manager(self, manager):
build_files = self._purge_manifests['xpidl']
@ -398,8 +401,7 @@ class RecursiveMakeBackend(CommonBackend):
for idl in manager.idls.values():
self._install_manifests['dist_idl'].add_symlink(idl['source'],
idl['basename'])
self._install_manifests['dist_include'].add_optional_exists('%s.h'
% idl['root'])
self._purge_manifests['dist_include'].add('%s.h' % idl['root'])
build_files.add(mozpath.join('headers', '%s.h' % idl['root']))
for module in manager.modules:

View File

@ -161,13 +161,11 @@ class Exports(SandboxDerived):
this object fills that role. It just has a reference to the underlying
HierarchicalStringList, which is created when parsing EXPORTS.
"""
__slots__ = ('exports', 'dist_install')
__slots__ = ('exports')
def __init__(self, sandbox, exports, dist_install=True):
def __init__(self, sandbox, exports):
SandboxDerived.__init__(self, sandbox)
self.exports = exports
self.dist_install = dist_install
class IPDLFile(SandboxDerived):
"""Describes an individual .ipdl source file."""

View File

@ -154,8 +154,7 @@ class TreeMetadataEmitter(LoggingMixin):
exports = sandbox.get('EXPORTS')
if exports:
yield Exports(sandbox, exports,
dist_install=not sandbox.get('NO_DIST_INSTALL', False))
yield Exports(sandbox, exports)
program = sandbox.get('PROGRAM')
if program:

View File

@ -234,16 +234,33 @@ class TestRecursiveMakeBackend(BackendTester):
self.assertEqual(found, val)
def test_exports(self):
"""Ensure EXPORTS is handled properly."""
"""Ensure EXPORTS is written out correctly."""
env = self._consume('exports', RecursiveMakeBackend)
# EXPORTS files should appear in the dist_include install manifest.
m = InstallManifest(path=os.path.join(env.topobjdir,
'_build_manifests', 'install', 'dist_include'))
self.assertEqual(len(m), 7)
self.assertIn('foo.h', m)
self.assertIn('mozilla/mozilla1.h', m)
self.assertIn('mozilla/dom/dom2.h', m)
backend_path = os.path.join(env.topobjdir, 'backend.mk')
lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
self.assertEqual(lines, [
'MOZBUILD_DERIVED := 1',
'NO_MAKEFILE_RULE := 1',
'NO_SUBMAKEFILES_RULE := 1',
'EXPORTS += foo.h',
'EXPORTS_NAMESPACES += mozilla',
'EXPORTS_mozilla += mozilla1.h mozilla2.h',
'EXPORTS_NAMESPACES += mozilla/dom',
'EXPORTS_mozilla/dom += dom1.h dom2.h',
'EXPORTS_NAMESPACES += mozilla/gfx',
'EXPORTS_mozilla/gfx += gfx.h',
'EXPORTS_NAMESPACES += nspr/private',
'EXPORTS_nspr/private += pprio.h',
])
# EXPORTS files should appear in the dist_include purge manifest.
m = PurgeManifest(path=os.path.join(env.topobjdir,
'_build_manifests', 'purge', 'dist_include'))
self.assertIn('foo.h', m.entries)
self.assertIn('mozilla/mozilla1.h', m.entries)
self.assertIn('mozilla/dom/dom2.h', m.entries)
def test_xpcshell_manifests(self):
"""Ensure XPCSHELL_TESTS_MANIFESTS is written out correctly."""
@ -280,8 +297,8 @@ class TestRecursiveMakeBackend(BackendTester):
self.assertIn('bar.idl', m)
self.assertIn('foo.idl', m)
m = InstallManifest(path=os.path.join(install_dir, 'dist_include'))
self.assertIn('foo.h', m)
m = PurgeManifest(path=os.path.join(purge_dir, 'dist_include'))
self.assertIn('foo.h', m.entries)
p = os.path.join(env.topobjdir, 'config/makefiles/xpidl')
self.assertTrue(os.path.isdir(p))
@ -308,6 +325,7 @@ class TestRecursiveMakeBackend(BackendTester):
expected = [
'dist_bin',
'dist_include',
'dist_private',
'dist_public',
'dist_sdk',

View File

@ -30,11 +30,6 @@ ifdef MOZ_HISTOGRAMS_VERSION
DEFINES += -DHISTOGRAMS_FILE_VERSION="$(MOZ_HISTOGRAMS_VERSION)"
endif
INSTALL_TARGETS += histoenums
histoenums_FILES := TelemetryHistogramEnums.h
histoenums_DEST = $(DIST)/include/mozilla
histoenums_TARGET := export
include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk

View File

@ -16,6 +16,7 @@ MODULE = 'telemetry'
EXPORTS.mozilla += [
'ProcessedStack.h',
'Telemetry.h',
'TelemetryHistogramEnums.h',
]
CPP_SOURCES += [

View File

@ -42,14 +42,12 @@ EXPORTS += [
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
EXPORTS += [
osdir + '/nsExternalSharingAppService.h',
osdir + '/nsExternalURLHandlerService.h',
'nsExternalSharingAppService.h',
'nsExternalURLHandlerService.h',
]
if CONFIG['MOZ_ENABLE_MEEGOTOUCHSHARE']:
EXPORTS += [
osdir + '/nsExternalSharingAppService.h',
]
EXPORTS += ['nsExternalSharingAppService.h']
EXPORTS.mozilla.dom += [
'ExternalHelperAppChild.h',

View File

@ -1,15 +0,0 @@
# 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/.
DEPTH := @DEPTH@
topsrcdir := @top_srcdir@
srcdir := @srcdir@
VPATH := @srcdir@
INSTALL_TARGETS += xpcom
xpcom_FILES := xpcom-config.h
xpcom_DEST = $(DIST)/include
xpcom_TARGET := export
include $(topsrcdir)/config/rules.mk

View File

@ -19,14 +19,6 @@ endif
endif #if OS_ARCH == WINNT
INSTALL_TARGETS += errorlist
errorlist_FILES := \
ErrorListCDefines.h \
ErrorListCxxDefines.h \
$(NULL)
errorlist_DEST = $(DIST)/include
errorlist_TARGET := export
include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk

View File

@ -43,6 +43,8 @@ MODULE = 'xpcom'
EXPORTS += [
'ErrorList.h',
'ErrorListCDefines.h',
'ErrorListCxxDefines.h',
'nsAgg.h',
'nsAutoPtr.h',
'nsAutoRef.h',

View File

@ -39,3 +39,8 @@ if CONFIG['DEHYDRA_PATH']:
DIRS += ['analysis']
MODULE = 'xpcom'
# xpcom-config.h is generated by configure
EXPORTS += [
'xpcom-config.h',
]