Bug 846634 - Part 2: Move EXPORTS to moz.build; r=joey
authorMike Shal <mshal@mozilla.com>
Tue, 16 Apr 2013 15:24:43 -0400
changeset 128972 51644264df6d5b25226a49f8641ed13cb8b0aa27
parent 128971 0627e8608a9776363f61b532f2c3e75b50eb1e78
child 128973 3a26ebb943ea587b7557df095caa3fd8e085f1af
push idunknown
push userunknown
push dateunknown
reviewersjoey
bugs846634
milestone23.0a1
Bug 846634 - Part 2: Move EXPORTS to moz.build; r=joey
accessible/public/Makefile.in
accessible/public/ia2/Makefile.in
accessible/public/ia2/moz.build
accessible/public/moz.build
accessible/public/msaa/Makefile.in
accessible/public/msaa/moz.build
accessible/src/atk/Makefile.in
accessible/src/atk/moz.build
accessible/src/base/Makefile.in
accessible/src/base/moz.build
accessible/src/generic/Makefile.in
accessible/src/generic/moz.build
accessible/src/mac/Makefile.in
accessible/src/mac/moz.build
accessible/src/other/Makefile.in
accessible/src/other/moz.build
accessible/src/windows/ia2/Makefile.in
accessible/src/windows/ia2/moz.build
accessible/src/windows/msaa/Makefile.in
accessible/src/windows/msaa/moz.build
accessible/src/xpcom/Makefile.in
accessible/src/xpcom/moz.build
browser/components/about/Makefile.in
browser/components/about/moz.build
browser/components/build/Makefile.in
browser/components/build/moz.build
browser/components/dirprovider/Makefile.in
browser/components/dirprovider/moz.build
caps/include/Makefile.in
caps/include/moz.build
chrome/src/Makefile.in
chrome/src/moz.build
content/base/public/Makefile.in
content/base/public/moz.build
content/base/src/Makefile.in
content/base/src/moz.build
content/canvas/public/Makefile.in
content/canvas/public/moz.build
content/canvas/src/Makefile.in
content/canvas/src/moz.build
content/events/public/Makefile.in
content/events/public/moz.build
content/events/src/Makefile.in
content/events/src/moz.build
content/html/content/public/Makefile.in
content/html/content/public/moz.build
content/html/content/src/Makefile.in
content/html/content/src/moz.build
content/html/document/src/Makefile.in
content/html/document/src/moz.build
content/media/Makefile.in
content/media/dash/Makefile.in
content/media/dash/moz.build
content/media/gstreamer/Makefile.in
content/media/gstreamer/moz.build
content/media/moz.build
content/media/ogg/Makefile.in
content/media/ogg/moz.build
content/media/omx/Makefile.in
content/media/omx/moz.build
content/media/plugins/Makefile.in
content/media/plugins/moz.build
content/media/raw/Makefile.in
content/media/raw/moz.build
content/media/wave/Makefile.in
content/media/wave/moz.build
content/media/webaudio/Makefile.in
content/media/webaudio/moz.build
content/media/webm/Makefile.in
content/media/webm/moz.build
content/media/webrtc/Makefile.in
content/media/webrtc/moz.build
content/media/webspeech/recognition/Makefile.in
content/media/webspeech/recognition/moz.build
content/media/webspeech/synth/Makefile.in
content/media/webspeech/synth/moz.build
content/media/wmf/Makefile.in
content/media/wmf/moz.build
content/smil/Makefile.in
content/smil/moz.build
content/svg/content/src/Makefile.in
content/svg/content/src/moz.build
content/svg/document/src/Makefile.in
content/svg/document/src/moz.build
content/xbl/src/Makefile.in
content/xbl/src/moz.build
content/xml/content/src/Makefile.in
content/xml/content/src/moz.build
content/xml/document/public/Makefile.in
content/xml/document/public/moz.build
content/xml/document/src/Makefile.in
content/xml/document/src/moz.build
content/xslt/public/Makefile.in
content/xslt/public/moz.build
content/xul/document/public/Makefile.in
content/xul/document/public/moz.build
db/sqlite3/src/Makefile.in
db/sqlite3/src/moz.build
docshell/base/Makefile.in
docshell/base/moz.build
docshell/build/Makefile.in
docshell/build/moz.build
docshell/shistory/src/Makefile.in
docshell/shistory/src/moz.build
dom/activities/src/Makefile.in
dom/activities/src/moz.build
dom/alarm/Makefile.in
dom/alarm/moz.build
dom/audiochannel/Makefile.in
dom/audiochannel/moz.build
dom/base/Makefile.in
dom/base/moz.build
dom/battery/Makefile.in
dom/battery/moz.build
dom/bindings/Makefile.in
dom/bindings/moz.build
dom/bluetooth/Makefile.in
dom/bluetooth/moz.build
dom/browser-element/Makefile.in
dom/browser-element/moz.build
dom/camera/Makefile.in
dom/camera/moz.build
dom/cellbroadcast/src/Makefile.in
dom/cellbroadcast/src/moz.build
dom/devicestorage/Makefile.in
dom/devicestorage/moz.build
dom/encoding/Makefile.in
dom/encoding/moz.build
dom/file/Makefile.in
dom/file/moz.build
dom/icc/src/Makefile.in
dom/icc/src/moz.build
dom/indexedDB/Makefile.in
dom/indexedDB/ipc/Makefile.in
dom/indexedDB/ipc/moz.build
dom/indexedDB/moz.build
dom/interfaces/storage/Makefile.in
dom/interfaces/storage/moz.build
dom/ipc/Makefile.in
dom/ipc/moz.build
dom/media/Makefile.in
dom/media/moz.build
dom/mobilemessage/src/Makefile.in
dom/mobilemessage/src/moz.build
dom/network/src/Makefile.in
dom/network/src/moz.build
dom/plugins/base/Makefile.in
dom/plugins/base/android/Makefile.in
dom/plugins/base/android/moz.build
dom/plugins/base/moz.build
dom/plugins/ipc/Makefile.in
dom/plugins/ipc/moz.build
dom/power/Makefile.in
dom/power/moz.build
dom/quota/Makefile.in
dom/quota/moz.build
dom/src/geolocation/Makefile.in
dom/src/geolocation/moz.build
dom/src/json/Makefile.in
dom/src/json/moz.build
dom/src/jsurl/Makefile.in
dom/src/jsurl/moz.build
dom/src/notification/Makefile.in
dom/src/notification/moz.build
dom/src/storage/Makefile.in
dom/src/storage/moz.build
dom/system/Makefile.in
dom/system/gonk/Makefile.in
dom/system/gonk/moz.build
dom/system/moz.build
dom/time/Makefile.in
dom/time/moz.build
dom/voicemail/Makefile.in
dom/voicemail/moz.build
dom/workers/Makefile.in
dom/workers/moz.build
editor/public/Makefile.in
editor/public/moz.build
editor/txmgr/public/Makefile.in
editor/txmgr/public/moz.build
editor/txtsvc/public/Makefile.in
editor/txtsvc/public/moz.build
embedding/browser/webBrowser/Makefile.in
embedding/browser/webBrowser/moz.build
embedding/components/appstartup/src/Makefile.in
embedding/components/appstartup/src/moz.build
embedding/components/windowwatcher/public/Makefile.in
embedding/components/windowwatcher/public/moz.build
gfx/2d/Makefile.in
gfx/2d/moz.build
gfx/angle/Makefile.in
gfx/angle/moz.build
gfx/cairo/cairo/src/Makefile.in
gfx/cairo/cairo/src/moz.build
gfx/cairo/libpixman/src/Makefile.in
gfx/cairo/libpixman/src/moz.build
gfx/gl/Makefile.in
gfx/gl/moz.build
gfx/graphite2/moz-gr-update.sh
gfx/graphite2/src/Makefile.in
gfx/graphite2/src/moz.build
gfx/harfbuzz/src/Makefile.in
gfx/harfbuzz/src/moz.build
gfx/ipc/Makefile.in
gfx/ipc/moz.build
gfx/layers/Makefile.in
gfx/layers/moz.build
gfx/ots/src/Makefile.in
gfx/ots/src/moz.build
gfx/qcms/Makefile.in
gfx/qcms/moz.build
gfx/skia/Makefile.in
gfx/skia/moz.build
gfx/src/Makefile.in
gfx/src/moz.build
gfx/thebes/Makefile.in
gfx/thebes/moz.build
gfx/ycbcr/Makefile.in
gfx/ycbcr/moz.build
hal/Makefile.in
hal/moz.build
image/public/Makefile.in
image/public/moz.build
image/src/Makefile.in
image/src/moz.build
intl/chardet/public/Makefile.in
intl/chardet/public/moz.build
intl/hyphenation/public/Makefile.in
intl/hyphenation/public/moz.build
intl/locale/public/Makefile.in
intl/locale/public/moz.build
intl/locale/src/Makefile.in
intl/locale/src/moz.build
intl/lwbrk/public/Makefile.in
intl/lwbrk/public/moz.build
intl/uconv/public/Makefile.in
intl/uconv/public/moz.build
intl/uconv/ucvcn/Makefile.in
intl/uconv/ucvcn/moz.build
intl/uconv/ucvibm/Makefile.in
intl/uconv/ucvibm/moz.build
intl/uconv/ucvja/Makefile.in
intl/uconv/ucvja/moz.build
intl/uconv/ucvko/Makefile.in
intl/uconv/ucvko/moz.build
intl/uconv/ucvlatin/Makefile.in
intl/uconv/ucvlatin/moz.build
intl/uconv/ucvtw/Makefile.in
intl/uconv/ucvtw/moz.build
intl/uconv/ucvtw2/Makefile.in
intl/uconv/ucvtw2/moz.build
intl/unicharutil/public/Makefile.in
intl/unicharutil/public/moz.build
intl/unicharutil/util/Makefile.in
intl/unicharutil/util/moz.build
ipc/dbus/Makefile.in
ipc/dbus/moz.build
ipc/glue/Makefile.in
ipc/glue/moz.build
ipc/ipdl/test/cxx/Makefile.in
ipc/ipdl/test/cxx/moz.build
ipc/netd/Makefile.in
ipc/netd/moz.build
ipc/ril/Makefile.in
ipc/ril/moz.build
ipc/testshell/Makefile.in
ipc/testshell/moz.build
ipc/unixsocket/Makefile.in
ipc/unixsocket/moz.build
js/ipc/Makefile.in
js/ipc/moz.build
js/jsd/Makefile.in
js/jsd/moz.build
js/src/Makefile.in
js/src/moz.build
js/xpconnect/public/Makefile.in
js/xpconnect/public/moz.build
js/xpconnect/src/Makefile.in
js/xpconnect/src/moz.build
js/xpconnect/wrappers/Makefile.in
js/xpconnect/wrappers/moz.build
layout/base/Makefile.in
layout/base/moz.build
layout/build/Makefile.in
layout/build/moz.build
layout/forms/Makefile.in
layout/forms/moz.build
layout/generic/Makefile.in
layout/generic/moz.build
layout/inspector/src/Makefile.in
layout/inspector/src/moz.build
layout/ipc/Makefile.in
layout/ipc/moz.build
layout/style/Makefile.in
layout/style/moz.build
layout/svg/Makefile.in
layout/svg/moz.build
layout/tables/Makefile.in
layout/tables/moz.build
layout/tools/layout-debug/src/Makefile.in
layout/tools/layout-debug/src/moz.build
layout/xul/base/public/Makefile.in
layout/xul/base/public/moz.build
layout/xul/grid/Makefile.in
layout/xul/grid/moz.build
layout/xul/tree/Makefile.in
layout/xul/tree/moz.build
media/kiss_fft/Makefile.in
media/kiss_fft/moz.build
media/libcubeb/include/Makefile.in
media/libcubeb/include/moz.build
media/libjpeg/Makefile.in
media/libjpeg/moz.build
media/libnestegg/include/Makefile.in
media/libnestegg/include/moz.build
media/libogg/include/ogg/Makefile.in
media/libogg/include/ogg/moz.build
media/libopus/Makefile.in
media/libopus/moz.build
media/libpng/Makefile.in
media/libpng/moz.build
media/libsoundtouch/src/Makefile.in
media/libsoundtouch/src/moz.build
media/libspeex_resampler/src/Makefile.in
media/libspeex_resampler/src/moz.build
media/libtheora/include/theora/Makefile.in
media/libtheora/include/theora/moz.build
media/libtremor/include/tremor/Makefile.in
media/libtremor/include/tremor/moz.build
media/libvorbis/include/vorbis/Makefile.in
media/libvorbis/include/vorbis/moz.build
media/libvpx/Makefile.in
media/libvpx/moz.build
media/mtransport/build/Makefile.in
media/mtransport/build/moz.build
media/mtransport/standalone/Makefile.in
media/mtransport/standalone/moz.build
media/webvtt/Makefile.in
media/webvtt/moz.build
memory/build/Makefile.in
memory/build/moz.build
memory/mozalloc/Makefile.in
memory/mozalloc/moz.build
memory/mozjemalloc/Makefile.in
memory/mozjemalloc/moz.build
memory/replace/dmd/Makefile.in
memory/replace/dmd/moz.build
mobile/android/components/build/Makefile.in
mobile/android/components/build/moz.build
modules/libbz2/src/Makefile.in
modules/libbz2/src/moz.build
modules/libjar/Makefile.in
modules/libjar/moz.build
modules/libjar/objs.mk
modules/libmar/src/Makefile.in
modules/libmar/src/moz.build
modules/libpref/public/Makefile.in
modules/libpref/public/moz.build
modules/zlib/src/Makefile.in
modules/zlib/src/moz.build
mozglue/android/Makefile.in
mozglue/android/moz.build
netwerk/Makefile.in
netwerk/base/public/Makefile.in
netwerk/base/public/moz.build
netwerk/base/src/Makefile.in
netwerk/base/src/moz.build
netwerk/build/Makefile.in
netwerk/build/moz.build
netwerk/cache/Makefile.in
netwerk/cache/moz.build
netwerk/cookie/Makefile.in
netwerk/cookie/moz.build
netwerk/dns/Makefile.in
netwerk/dns/moz.build
netwerk/ipc/Makefile.in
netwerk/ipc/moz.build
netwerk/mime/Makefile.in
netwerk/mime/moz.build
netwerk/moz.build
netwerk/protocol/about/Makefile.in
netwerk/protocol/about/moz.build
netwerk/protocol/device/Makefile.in
netwerk/protocol/device/moz.build
netwerk/protocol/ftp/Makefile.in
netwerk/protocol/ftp/moz.build
netwerk/protocol/http/Makefile.in
netwerk/protocol/http/moz.build
netwerk/protocol/websocket/Makefile.in
netwerk/protocol/websocket/moz.build
netwerk/protocol/wyciwyg/Makefile.in
netwerk/protocol/wyciwyg/moz.build
netwerk/sctp/datachannel/Makefile.in
netwerk/sctp/datachannel/moz.build
netwerk/sctp/src/Makefile.in
netwerk/sctp/src/moz.build
netwerk/srtp/src/Makefile.in
other-licenses/skia-npapi/Makefile.in
other-licenses/skia-npapi/moz.build
other-licenses/snappy/Makefile.in
other-licenses/snappy/moz.build
parser/Makefile.in
parser/expat/Makefile.in
parser/expat/lib/Makefile.in
parser/expat/lib/moz.build
parser/expat/moz.build
parser/html/Makefile.in
parser/html/moz.build
parser/htmlparser/public/Makefile.in
parser/htmlparser/public/moz.build
parser/moz.build
parser/xml/src/Makefile.in
parser/xml/src/moz.build
profile/dirserviceprovider/public/Makefile.in
profile/dirserviceprovider/public/moz.build
rdf/base/public/Makefile.in
rdf/base/public/moz.build
rdf/build/Makefile.in
rdf/build/moz.build
rdf/datasource/public/Makefile.in
rdf/datasource/public/moz.build
rdf/util/public/Makefile.in
rdf/util/public/moz.build
security/manager/ssl/src/Makefile.in
security/manager/ssl/src/moz.build
startupcache/Makefile.in
startupcache/moz.build
storage/build/Makefile.in
storage/build/moz.build
storage/public/Makefile.in
storage/public/moz.build
storage/src/Makefile.in
storage/src/moz.build
testing/gtest/Makefile.in
testing/gtest/moz.build
toolkit/components/build/Makefile.in
toolkit/components/build/moz.build
toolkit/components/mediasniffer/Makefile.in
toolkit/components/mediasniffer/moz.build
toolkit/components/places/Makefile.in
toolkit/components/places/moz.build
toolkit/components/protobuf/Makefile.in
toolkit/components/protobuf/moz.build
toolkit/components/startup/Makefile.in
toolkit/components/startup/moz.build
toolkit/components/telemetry/Makefile.in
toolkit/components/telemetry/moz.build
toolkit/crashreporter/Makefile.in
toolkit/crashreporter/moz.build
toolkit/mozapps/update/common/Makefile.in
toolkit/mozapps/update/common/moz.build
toolkit/xre/Makefile.in
toolkit/xre/moz.build
tools/jprof/stub/Makefile.in
tools/jprof/stub/moz.build
tools/profiler/Makefile.in
tools/profiler/moz.build
tools/trace-malloc/lib/Makefile.in
tools/trace-malloc/lib/moz.build
uriloader/base/Makefile.in
uriloader/base/moz.build
uriloader/exthandler/Makefile.in
uriloader/exthandler/moz.build
uriloader/prefetch/Makefile.in
uriloader/prefetch/moz.build
view/public/Makefile.in
view/public/moz.build
widget/Makefile.in
widget/android/Makefile.in
widget/android/moz.build
widget/cocoa/Makefile.in
widget/cocoa/moz.build
widget/gonk/Makefile.in
widget/gonk/moz.build
widget/gtk2/Makefile.in
widget/gtk2/moz.build
widget/gtkxtbin/Makefile.in
widget/gtkxtbin/moz.build
widget/moz.build
widget/qt/Makefile.in
widget/qt/moz.build
widget/windows/Makefile.in
widget/windows/moz.build
widget/xpwidgets/Makefile.in
widget/xpwidgets/moz.build
xpcom/base/Makefile.in
xpcom/base/moz.build
xpcom/build/Makefile.in
xpcom/build/moz.build
xpcom/components/Makefile.in
xpcom/components/moz.build
xpcom/ds/Makefile.in
xpcom/ds/moz.build
xpcom/glue/Makefile.in
xpcom/glue/moz.build
xpcom/io/Makefile.in
xpcom/io/moz.build
xpcom/reflect/xptcall/public/Makefile.in
xpcom/reflect/xptcall/public/moz.build
xpcom/reflect/xptinfo/public/Makefile.in
xpcom/reflect/xptinfo/public/moz.build
xpcom/string/public/Makefile.in
xpcom/string/public/moz.build
xpcom/threads/Makefile.in
xpcom/threads/moz.build
xpcom/typelib/xpt/public/Makefile.in
xpcom/typelib/xpt/public/moz.build
xpfe/appshell/public/Makefile.in
xpfe/appshell/public/moz.build
--- a/accessible/public/Makefile.in
+++ b/accessible/public/Makefile.in
@@ -6,14 +6,10 @@
 DEPTH   = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH   = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 
-EXPORTS		= \
-      nsIAccessibilityService.h \
-      $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/accessible/public/ia2/Makefile.in
+++ b/accessible/public/ia2/Makefile.in
@@ -17,16 +17,18 @@ include $(DEPTH)/config/autoconf.mk
 DEFINES       += -DREGISTER_PROXY_DLL
 
 GARBAGE       += $(MIDL_GENERATED_FILES)
 
 FORCE_SHARED_LIB = 1
 
 SRCS_IN_OBJDIR   = 1
 
+# Please keep this list in sync with the moz.build file until the rest of this
+# Makefile is ported over.
 MIDL_INTERFACES = \
   Accessible2.idl \
   AccessibleAction.idl \
   AccessibleApplication.idl \
   AccessibleComponent.idl \
   AccessibleEditableText.idl \
   AccessibleHyperlink.idl \
   AccessibleHypertext.idl \
@@ -34,29 +36,25 @@ MIDL_INTERFACES = \
   AccessibleRelation.idl \
   AccessibleTable.idl \
   AccessibleTable2.idl \
   AccessibleTableCell.idl \
   AccessibleText.idl \
   AccessibleValue.idl \
   $(NULL)
 
+# Please keep this list in sync with the moz.build file until the rest of this
+# Makefile is ported over.
 MIDL_ENUMS = \
   AccessibleEventId.idl \
   AccessibleRole.idl \
   AccessibleStates.idl \
   IA2CommonTypes.idl \
   $(NULL)
 
-EXPORTS = \
-  $(MIDL_INTERFACES:%.idl=%.h) \
-  $(MIDL_INTERFACES:%.idl=%_i.c) \
-  $(MIDL_ENUMS:%.idl=%.h) \
-  $(NULL)
-
 CSRCS	= \
   dlldata.c \
   $(MIDL_INTERFACES:%.idl=%_p.c) \
   $(MIDL_INTERFACES:%.idl=%_i.c) \
   $(NULL)
 
 MIDL_GENERATED_FILES = \
   dlldata.c \
--- a/accessible/public/ia2/moz.build
+++ b/accessible/public/ia2/moz.build
@@ -1,8 +1,39 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+# Please keep this list in sync with the Makefile.in until the rest of that file
+# is ported over.
+midl_interfaces = [
+    'Accessible2',
+    'AccessibleAction',
+    'AccessibleApplication',
+    'AccessibleComponent',
+    'AccessibleEditableText',
+    'AccessibleHyperlink',
+    'AccessibleHypertext',
+    'AccessibleImage',
+    'AccessibleRelation',
+    'AccessibleTable',
+    'AccessibleTable2',
+    'AccessibleTableCell',
+    'AccessibleText',
+    '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',
+]
+
+EXPORTS += [x + '.h' for x in midl_enums]
+EXPORTS += [x + '.h' for x in midl_interfaces]
+EXPORTS += [x + '_i.c' for x in midl_interfaces]
--- a/accessible/public/moz.build
+++ b/accessible/public/moz.build
@@ -34,8 +34,12 @@ XPIDL_SOURCES += [
     'nsIAccessibleText.idl',
     'nsIAccessibleTypes.idl',
     'nsIAccessibleValue.idl',
     'nsIXBLAccessible.idl',
 ]
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'nsIAccessibilityService.h',
+]
+
--- a/accessible/public/msaa/Makefile.in
+++ b/accessible/public/msaa/Makefile.in
@@ -52,25 +52,16 @@ done_gen: ISimpleDOMNode.idl \
           ISimpleDOMDocument.idl \
           ISimpleDOMText.idl
 
 	$(MIDL) $(MIDL_FLAGS) -I $(srcdir) -Oicf $(srcdir)/ISimpleDOMNode.idl
 	$(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMDocument.idl
 	$(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMText.idl
 	touch $@
 
-EXPORTS = \
-	ISimpleDOMNode.h \
-	ISimpleDOMNode_i.c \
-	ISimpleDOMDocument.h \
-	ISimpleDOMDocument_i.c \
-	ISimpleDOMText.h \
-	ISimpleDOMText_i.c \
-	$(NULL)
-
 export:: done_gen
 
 # This marshall dll is also registered in the installer
 register::
 	regsvr32 -s $(DIST)/bin/$(SHARED_LIBRARY)
 
 EMBED_MANIFEST_AT = 2
 
--- a/accessible/public/msaa/moz.build
+++ b/accessible/public/msaa/moz.build
@@ -1,8 +1,17 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'ISimpleDOMDocument.h',
+    'ISimpleDOMDocument_i.c',
+    'ISimpleDOMNode.h',
+    'ISimpleDOMNode_i.c',
+    'ISimpleDOMText.h',
+    'ISimpleDOMText_i.c',
+]
+
--- a/accessible/src/atk/Makefile.in
+++ b/accessible/src/atk/Makefile.in
@@ -31,27 +31,16 @@ CPPSRCS = \
   nsMaiInterfaceTable.cpp \
   nsMaiInterfaceDocument.cpp \
   nsMaiInterfaceImage.cpp \
   Platform.cpp \
   RootAccessibleWrap.cpp \
   UtilInterface.cpp \
   $(NULL)
 
-EXPORTS = \
-  nsAccessNodeWrap.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla/a11y
-
-EXPORTS_mozilla/a11y = \
-  AccessibleWrap.h \
-  HyperTextAccessibleWrap.h \
-  $(null)
-
 # we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 CFLAGS  	+= $(MOZ_GTK2_CFLAGS)
 CXXFLAGS  += $(MOZ_GTK2_CFLAGS)
 
--- a/accessible/src/atk/moz.build
+++ b/accessible/src/atk/moz.build
@@ -1,8 +1,17 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'nsAccessNodeWrap.h',
+]
+
+EXPORTS.mozilla.a11y += [
+    'AccessibleWrap.h',
+    'HyperTextAccessibleWrap.h',
+]
+
--- a/accessible/src/base/Makefile.in
+++ b/accessible/src/base/Makefile.in
@@ -41,40 +41,16 @@ CPPSRCS = \
   $(NULL)
 
 ifneq ($(A11Y_LOG),0)
 CPPSRCS += \
   Logging.cpp \
   $(NULL)
 endif
 
-EXPORTS = \
-  AccEvent.h \
-  nsAccessibilityService.h \
-  nsAccessNode.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla/a11y
-
-EXPORTS_mozilla/a11y = \
-  DocManager.h \
-  FocusManager.h \
-  AccTypes.h \
-  Platform.h \
-  States.h \
-  SelectionManager.h \
-  Role.h \
-  $(NULL)
-
-ifdef MOZ_DEBUG
-EXPORTS_mozilla/a11y += \
-  Logging.h \
-  $(NULL)
-endif
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
   -I$(srcdir) \
   -I$(srcdir)/../generic \
--- a/accessible/src/base/moz.build
+++ b/accessible/src/base/moz.build
@@ -1,8 +1,28 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'AccEvent.h',
+    'nsAccessNode.h',
+    'nsAccessibilityService.h',
+]
+
+EXPORTS.mozilla.a11y += [
+    'AccTypes.h',
+    'DocManager.h',
+    'FocusManager.h',
+    'Platform.h',
+    'Role.h',
+    'SelectionManager.h',
+    'States.h',
+]
+
+if CONFIG['MOZ_DEBUG']:
+    EXPORTS.mozilla.a11y += [
+        'Logging.h',
+    ]
--- a/accessible/src/generic/Makefile.in
+++ b/accessible/src/generic/Makefile.in
@@ -23,24 +23,16 @@ CPPSRCS = \
   HyperTextAccessible.cpp \
   ImageAccessible.cpp \
   OuterDocAccessible.cpp \
   RootAccessible.cpp \
   TableCellAccessible.cpp \
   TextLeafAccessible.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES = mozilla/a11y
-
-EXPORTS_mozilla/a11y = \
-  Accessible.h \
-  DocAccessible.h \
-  HyperTextAccessible.h \
-  $(null)
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES = \
   -I$(srcdir)/../xpcom \
   -I$(srcdir)/../base \
--- a/accessible/src/generic/moz.build
+++ b/accessible/src/generic/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS.mozilla.a11y += [
+    'Accessible.h',
+    'DocAccessible.h',
+    'HyperTextAccessible.h',
+]
+
--- a/accessible/src/mac/Makefile.in
+++ b/accessible/src/mac/Makefile.in
@@ -21,28 +21,16 @@ CMMSRCS = \
           mozActionElements.mm \
           mozTextAccessible.mm \
           mozHTMLAccessible.mm \
           MacUtils.mm \
           Platform.mm \
           RootAccessibleWrap.mm \
           $(NULL)
 
-EXPORTS = \
-  nsAccessNodeWrap.h \
-  mozAccessibleProtocol.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla/a11y
-
-EXPORTS_mozilla/a11y = \
-  AccessibleWrap.h \
-  HyperTextAccessibleWrap.h \
-  $(null)
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
   -I$(srcdir) \
   -I$(srcdir)/../base \
--- a/accessible/src/mac/moz.build
+++ b/accessible/src/mac/moz.build
@@ -1,8 +1,18 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'mozAccessibleProtocol.h',
+    'nsAccessNodeWrap.h',
+]
+
+EXPORTS.mozilla.a11y += [
+    'AccessibleWrap.h',
+    'HyperTextAccessibleWrap.h',
+]
+
--- a/accessible/src/other/Makefile.in
+++ b/accessible/src/other/Makefile.in
@@ -14,27 +14,16 @@ EXPORT_LIBRARY = ..
 LIBXUL_LIBRARY = 1
 
 
 CPPSRCS = \
   AccessibleWrap.cpp \
   Platform.cpp \
   $(NULL)
 
-EXPORTS = \
-  nsAccessNodeWrap.h \
-  $(null)
-
-EXPORTS_NAMESPACES = mozilla/a11y
-
-EXPORTS_mozilla/a11y = \
-  AccessibleWrap.h \
-  HyperTextAccessibleWrap.h \
-  $(null)
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
   -I$(srcdir) \
   -I$(srcdir)/../base \
--- a/accessible/src/other/moz.build
+++ b/accessible/src/other/moz.build
@@ -1,8 +1,17 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'nsAccessNodeWrap.h',
+]
+
+EXPORTS.mozilla.a11y += [
+    'AccessibleWrap.h',
+    'HyperTextAccessibleWrap.h',
+]
+
--- a/accessible/src/windows/ia2/Makefile.in
+++ b/accessible/src/windows/ia2/Makefile.in
@@ -23,26 +23,16 @@ CPPSRCS += \
   ia2AccessibleImage.cpp \
   ia2AccessibleRelation.cpp \
   ia2AccessibleTable.cpp \
   ia2AccessibleTableCell.cpp \
   ia2AccessibleText.cpp \
   ia2AccessibleValue.cpp \
   $(NULL)
 
-EXPORTS = \
-  ia2AccessibleValue.h \
-  ia2AccessibleAction.h \
-  ia2AccessibleComponent.h \
-  ia2AccessibleEditableText.h \
-  ia2AccessibleHyperlink.h \
-  ia2AccessibleHypertext.h \
-  ia2AccessibleText.h \
-  $(NULL)
-
 # The midl generated code include Windows headers which defines min and max
 # macros which conflicts with std::min/max.  Suppress the macros:
 OS_CXXFLAGS += -DNOMINMAX
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/config.mk
--- a/accessible/src/windows/ia2/moz.build
+++ b/accessible/src/windows/ia2/moz.build
@@ -1,8 +1,18 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'ia2AccessibleAction.h',
+    'ia2AccessibleComponent.h',
+    'ia2AccessibleEditableText.h',
+    'ia2AccessibleHyperlink.h',
+    'ia2AccessibleHypertext.h',
+    'ia2AccessibleText.h',
+    'ia2AccessibleValue.h',
+]
+
--- a/accessible/src/windows/msaa/Makefile.in
+++ b/accessible/src/windows/msaa/Makefile.in
@@ -36,28 +36,16 @@ CPPSRCS = \
 ifdef MOZ_XUL
 CPPSRCS += \
   XULListboxAccessibleWrap.cpp \
   XULMenuAccessibleWrap.cpp \
   XULTreeGridAccessibleWrap.cpp \
   $(NULL)
 endif
 
-EXPORTS = \
-  nsAccessNodeWrap.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla/a11y \
-
-EXPORTS_mozilla/a11y = \
-  AccessibleWrap.h \
-  Compatibility.h \
-  HyperTextAccessibleWrap.h \
-  $(null)
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
--- a/accessible/src/windows/msaa/moz.build
+++ b/accessible/src/windows/msaa/moz.build
@@ -1,8 +1,18 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'nsAccessNodeWrap.h',
+]
+
+EXPORTS.mozilla.a11y += [
+    'AccessibleWrap.h',
+    'Compatibility.h',
+    'HyperTextAccessibleWrap.h',
+]
+
--- a/accessible/src/xpcom/Makefile.in
+++ b/accessible/src/xpcom/Makefile.in
@@ -8,18 +8,16 @@ topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_xpcom_s
 LIBXUL_LIBRARY = 1
 
-EXPORTS := xpcAccEvents.h
-
 CPPSRCS = \
   xpcAccEvents.cpp \
   nsAccessibleRelation.cpp \
   xpcAccessibleTable.cpp \
   xpcAccessibleTableCell.cpp \
   $(NULL)
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
--- a/accessible/src/xpcom/moz.build
+++ b/accessible/src/xpcom/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'accessibility'
 
+EXPORTS += [
+    'xpcAccEvents.h',
+]
+
--- a/browser/components/about/Makefile.in
+++ b/browser/components/about/Makefile.in
@@ -9,17 +9,13 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = browserabout_s
 
 FORCE_STATIC_LIB = 1
 USE_STATIC_LIBS = 1
 
-EXPORTS_NAMESPACES = mozilla/browser
-
-EXPORTS_mozilla/browser = AboutRedirector.h
-
 CPPSRCS = AboutRedirector.cpp
 
 LOCAL_INCLUDES = -I$(srcdir)/../build
 
 include $(topsrcdir)/config/rules.mk
--- a/browser/components/about/moz.build
+++ b/browser/components/about/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'browserabout'
 
+EXPORTS.mozilla.browser += [
+    'AboutRedirector.h',
+]
+
--- a/browser/components/build/Makefile.in
+++ b/browser/components/build/Makefile.in
@@ -12,18 +12,16 @@ include $(DEPTH)/config/autoconf.mk
 LIBRARY_NAME = browsercomps
 SHORT_LIBNAME = brwsrcmp
 IS_COMPONENT = 1
 MODULE_NAME = nsBrowserCompsModule
 FORCE_SHARED_LIB = 1
 
 USE_STATIC_LIBS = 1
 
-EXPORTS = nsBrowserCompsCID.h
-
 CPPSRCS = nsModule.cpp \
           $(NULL)
 
 ifeq ($(OS_ARCH),WINNT)
 OS_LIBS	+= $(call EXPAND_LIBNAME,ole32 shell32 shlwapi)
 endif
 
 LOCAL_INCLUDES = \
--- a/browser/components/build/moz.build
+++ b/browser/components/build/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'browsercomps'
 
+EXPORTS += [
+    'nsBrowserCompsCID.h',
+]
+
--- a/browser/components/dirprovider/Makefile.in
+++ b/browser/components/dirprovider/Makefile.in
@@ -9,19 +9,16 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = browserdir_s
 
 FORCE_STATIC_LIB = 1
 USE_STATIC_LIBS = 1
 
-EXPORTS_NAMESPACES = mozilla/browser
-EXPORTS_mozilla/browser = DirectoryProvider.h
-
 CPPSRCS = DirectoryProvider.cpp
 
 LOCAL_INCLUDES = -I$(srcdir)/../build
 
 EXTRA_DSO_LDOPTS = \
 	$(XPCOM_GLUE_LDOPTS) \
 	$(NSPR_LIBS) \
 	$(NULL)
--- a/browser/components/dirprovider/moz.build
+++ b/browser/components/dirprovider/moz.build
@@ -3,8 +3,12 @@
 # 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/.
 
 TEST_DIRS += ['tests']
 
 MODULE = 'browserdir'
 
+EXPORTS.mozilla.browser += [
+    'DirectoryProvider.h',
+]
+
--- a/caps/include/Makefile.in
+++ b/caps/include/Makefile.in
@@ -5,14 +5,10 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS		= \
-            nsJSPrincipals.h \
-            $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/caps/include/moz.build
+++ b/caps/include/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'caps'
 
+EXPORTS += [
+    'nsJSPrincipals.h',
+]
+
--- a/chrome/src/Makefile.in
+++ b/chrome/src/Makefile.in
@@ -9,22 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME    = chrome_s
 LIBXUL_LIBRARY  = 1
 FORCE_STATIC_LIB = 1
 
-EXPORTS_NAMESPACES = mozilla/chrome
-
-EXPORTS_mozilla/chrome = \
-		RegistryMessageUtils.h \
-		$(NULL)
-
 CPPSRCS		= \
 		nsChromeRegistry.cpp \
 		nsChromeRegistryChrome.cpp \
 		nsChromeProtocolHandler.cpp \
 		nsChromeRegistryContent.cpp \
 		$(NULL)
 
 include $(topsrcdir)/config/config.mk
--- a/chrome/src/moz.build
+++ b/chrome/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'chrome'
 
+EXPORTS.mozilla.chrome += [
+    'RegistryMessageUtils.h',
+]
+
--- a/content/base/public/Makefile.in
+++ b/content/base/public/Makefile.in
@@ -5,57 +5,10 @@
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 
-EXPORTS		= \
-mozFlushType.h \
-nsIContent.h \
-nsIAttribute.h \
-nsIContentIterator.h \
-nsContentPolicyUtils.h \
-nsContentUtils.h \
-nsDocElementCreatedNotificationRunner.h \
-nsIDocument.h \
-nsIDocumentInlines.h \
-nsDeprecatedOperationList.h \
-nsIDocumentObserver.h \
-nsIMutationObserver.h \
-nsINameSpaceManager.h \
-nsINode.h \
-nsINodeInfo.h \
-nsINodeList.h \
-nsIScriptElement.h \
-nsIStyleSheetLinkingElement.h \
-nsIContentSerializer.h \
-nsIXPathEvaluatorInternal.h \
-nsCaseTreatment.h \
-nsContentCID.h \
-nsCopySupport.h \
-nsContentCreatorFunctions.h \
-nsDOMFile.h \
-nsLineBreaker.h \
-nsReferencedElement.h \
-nsTreeSanitizer.h \
-nsViewportInfo.h \
-nsXMLNameSpaceMap.h \
-nsHostObjectProtocolHandler.h \
-$(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom mozilla
-
-EXPORTS_mozilla/dom = \
-		DirectionalityUtils.h \
-		Element.h \
-		FragmentOrElement.h \
-		FromParser.h \
-		$(NULL)
-
-EXPORTS_mozilla = \
-		CORSMode.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/content/base/public/moz.build
+++ b/content/base/public/moz.build
@@ -28,8 +28,53 @@ XPIDL_SOURCES += [
     'nsISelectionPrivate.idl',
     'nsIXMLHttpRequest.idl',
 ]
 
 XPIDL_MODULE = 'content_base'
 
 MODULE = 'content'
 
+EXPORTS += [
+    'mozFlushType.h',
+    'nsCaseTreatment.h',
+    'nsContentCID.h',
+    'nsContentCreatorFunctions.h',
+    'nsContentPolicyUtils.h',
+    'nsContentUtils.h',
+    'nsCopySupport.h',
+    'nsDOMFile.h',
+    'nsDeprecatedOperationList.h',
+    'nsDocElementCreatedNotificationRunner.h',
+    'nsHostObjectProtocolHandler.h',
+    'nsIAttribute.h',
+    'nsIContent.h',
+    'nsIContentIterator.h',
+    'nsIContentSerializer.h',
+    'nsIDocument.h',
+    'nsIDocumentInlines.h',
+    'nsIDocumentObserver.h',
+    'nsIMutationObserver.h',
+    'nsINameSpaceManager.h',
+    'nsINode.h',
+    'nsINodeInfo.h',
+    'nsINodeList.h',
+    'nsIScriptElement.h',
+    'nsIStyleSheetLinkingElement.h',
+    'nsIXPathEvaluatorInternal.h',
+    'nsLineBreaker.h',
+    'nsReferencedElement.h',
+    'nsTreeSanitizer.h',
+    'nsViewportInfo.h',
+    'nsXMLNameSpaceMap.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'DirectionalityUtils.h',
+    'Element.h',
+    'FragmentOrElement.h',
+    'FromParser.h',
+]
+
+EXPORTS.mozilla += [
+    'CORSMode.h',
+]
+
--- a/content/base/src/Makefile.in
+++ b/content/base/src/Makefile.in
@@ -8,60 +8,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconbase_s
 LIBXUL_LIBRARY	= 1
 
-
-EXPORTS		= \
-		nsAtomListUtils.h \
-		nsAttrName.h \
-		nsContentList.h \
-		nsContentListDeclarations.h \
-		nsContentSink.h \
-		nsGkAtomList.h \
-		nsGkAtoms.h \
-		nsNodeInfoManager.h \
-		nsNodeUtils.h \
-		nsPropertyTable.h \
-		nsRange.h \
-		nsScriptLoader.h \
-		nsStubDocumentObserver.h \
-		nsStubMutationObserver.h \
-		nsTextFragment.h \
-		mozAutoDocUpdate.h \
-		nsFrameMessageManager.h \
-		nsAttrAndChildArray.h \
-		nsAttrValue.h \
-		nsAttrValueInlines.h \
-		nsCrossSiteListenerProxy.h \
-		nsDOMAttributeMap.h \
-		nsMappedAttributeElement.h \
-		nsStyledElement.h \
-		nsSandboxFlags.h \
-		$(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-  Attr.h \
-  Comment.h \
-  DocumentFragment.h \
-  DocumentType.h \
-  DOMImplementation.h \
-  EventSource.h \
-  Link.h \
-  NodeIterator.h \
-  Text.h \
-  TreeWalker.h \
-  $(NULL)
-
 CPPSRCS		= \
 		Comment.cpp \
 		DirectionalityUtils.cpp \
 		DocumentType.cpp \
 		DOMImplementation.cpp \
 		EventSource.cpp \
 		FileIOObject.cpp \
 		nsAtomListUtils.cpp \
@@ -143,17 +99,16 @@ CPPSRCS		= \
 		nsFrameMessageManager.cpp \
 		nsInProcessTabChildGlobal.cpp \
 		ThirdPartyUtil.cpp \
 		nsDOMMutationObserver.cpp \
 		nsMixedContentBlocker.cpp \
 		$(NULL)
 
 ifdef MOZ_WEBRTC
-EXPORTS += nsDOMDataChannel.h
 CPPSRCS += nsDOMDataChannel.cpp
 LOCAL_INCLUDES += \
 		-I$(topsrcdir)/netwerk/sctp/datachannel \
 		$(NULL)
 endif
 
 # Are we targeting x86-32 or x86-64?  If so, we want to include SSE2 code for
 # nsTextFragment.cpp
--- a/content/base/src/moz.build
+++ b/content/base/src/moz.build
@@ -1,8 +1,52 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsAtomListUtils.h',
+    'nsAttrName.h',
+    'nsContentList.h',
+    'nsContentListDeclarations.h',
+    'nsContentSink.h',
+    'nsGkAtomList.h',
+    'nsGkAtoms.h',
+    'nsNodeInfoManager.h',
+    'nsNodeUtils.h',
+    'nsPropertyTable.h',
+    'nsRange.h',
+    'nsScriptLoader.h',
+    'nsStubDocumentObserver.h',
+    'nsStubMutationObserver.h',
+    'nsTextFragment.h',
+    'mozAutoDocUpdate.h',
+    'nsFrameMessageManager.h',
+    'nsAttrAndChildArray.h',
+    'nsAttrValue.h',
+    'nsAttrValueInlines.h',
+    'nsCrossSiteListenerProxy.h',
+    'nsDOMAttributeMap.h',
+    'nsMappedAttributeElement.h',
+    'nsStyledElement.h',
+    'nsSandboxFlags.h',
+]
+
+if CONFIG['MOZ_WEBRTC']:
+    EXPORTS += ['nsDOMDataChannel.h']
+
+EXPORTS.mozilla.dom += [
+    'Attr.h',
+    'Comment.h',
+    'DocumentFragment.h',
+    'DocumentType.h',
+    'DOMImplementation.h',
+    'EventSource.h',
+    'Link.h',
+    'NodeIterator.h',
+    'Text.h',
+    'TreeWalker.h',
+]
+
--- a/content/canvas/public/Makefile.in
+++ b/content/canvas/public/Makefile.in
@@ -5,25 +5,9 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS_NAMESPACES = mozilla/ipc
-
-EXPORTS		= \
-		nsICanvasRenderingContextInternal.h \
-		nsICanvasElementExternal.h \
-		$(NULL)
-
-EXPORTS_mozilla/ipc = \
-		DocumentRendererChild.h \
-		DocumentRendererParent.h \
-		DocumentRendererShmemChild.h \
-		DocumentRendererShmemParent.h \
-		DocumentRendererNativeIDChild.h \
-		DocumentRendererNativeIDParent.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
--- a/content/canvas/public/moz.build
+++ b/content/canvas/public/moz.build
@@ -7,8 +7,22 @@
 XPIDL_SOURCES += [
     'nsICanvasGLPrivate.idl',
 ]
 
 XPIDL_MODULE = 'content_canvas'
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsICanvasElementExternal.h',
+    'nsICanvasRenderingContextInternal.h',
+]
+
+EXPORTS.mozilla.ipc += [
+    'DocumentRendererChild.h',
+    'DocumentRendererNativeIDChild.h',
+    'DocumentRendererNativeIDParent.h',
+    'DocumentRendererParent.h',
+    'DocumentRendererShmemChild.h',
+    'DocumentRendererShmemParent.h',
+]
+
--- a/content/canvas/src/Makefile.in
+++ b/content/canvas/src/Makefile.in
@@ -11,24 +11,16 @@ VPATH		= @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconcvs_s
 LIBXUL_LIBRARY  = 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS = 1
 endif # !_MSC_VER
 
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-	CanvasUtils.h \
-	CanvasRenderingContext2D.h \
-  ImageData.h \
-  $(NULL)
-
 CPPSRCS	= \
 	CanvasImageCache.cpp \
 	CanvasRenderingContext2D.cpp \
 	CanvasUtils.cpp \
 	DocumentRendererParent.cpp \
 	DocumentRendererChild.cpp \
 	ImageData.cpp \
 	$(NULL)
--- a/content/canvas/src/moz.build
+++ b/content/canvas/src/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS.mozilla.dom += [
+    'CanvasRenderingContext2D.h',
+    'CanvasUtils.h',
+    'ImageData.h',
+]
+
--- a/content/events/public/Makefile.in
+++ b/content/events/public/Makefile.in
@@ -5,27 +5,10 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS		= \
-		nsMutationEvent.h \
-		nsIPrivateTextEvent.h \
-		nsIPrivateTextRange.h \
-		nsAsyncDOMEvent.h \
-		nsEventDispatcher.h \
-		nsEventStates.h \
-		nsEventNameList.h \
-		nsVKList.h \
-		$(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-  EventTarget.h \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/content/events/public/moz.build
+++ b/content/events/public/moz.build
@@ -7,8 +7,23 @@
 XPIDL_SOURCES += [
     'nsIEventListenerService.idl',
 ]
 
 XPIDL_MODULE = 'content_events'
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsAsyncDOMEvent.h',
+    'nsEventDispatcher.h',
+    'nsEventNameList.h',
+    'nsEventStates.h',
+    'nsIPrivateTextEvent.h',
+    'nsIPrivateTextRange.h',
+    'nsMutationEvent.h',
+    'nsVKList.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'EventTarget.h',
+]
+
--- a/content/events/src/Makefile.in
+++ b/content/events/src/Makefile.in
@@ -9,32 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconevents_s
 LIBXUL_LIBRARY  = 1
 FAIL_ON_WARNINGS = 1
 
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-		Touch.h \
-		$(NULL)
-
-EXPORTS		= \
-		nsEventStateManager.h \
-		nsEventListenerManager.h \
-		nsDOMEventTargetHelper.h \
-		nsDOMEvent.h \
-		nsDOMGamepad.h \
-		nsDOMTouchEvent.h \
-		nsDOMUIEvent.h \
-		$(NULL)
-
 CPPSRCS		= \
 		nsEventListenerManager.cpp \
 		nsEventStateManager.cpp \
 		nsDOMEvent.cpp \
 		nsDOMDataContainerEvent.cpp \
 		nsDOMUIEvent.cpp \
 		nsDOMKeyboardEvent.cpp \
 		nsDOMTextEvent.cpp \
--- a/content/events/src/moz.build
+++ b/content/events/src/moz.build
@@ -1,8 +1,22 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsDOMEvent.h',
+    'nsDOMEventTargetHelper.h',
+    'nsDOMGamepad.h',
+    'nsDOMTouchEvent.h',
+    'nsDOMUIEvent.h',
+    'nsEventListenerManager.h',
+    'nsEventStateManager.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'Touch.h',
+]
+
--- a/content/html/content/public/Makefile.in
+++ b/content/html/content/public/Makefile.in
@@ -5,31 +5,9 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS = \
-		nsIConstraintValidation.h \
-		nsIFormControl.h \
-		nsIForm.h \
-		nsIFormProcessor.h \
-		nsILink.h \
-		nsIRadioVisitor.h \
-		nsIRadioGroupContainer.h \
-		nsITextControlElement.h \
-		nsFormSubmission.h \
-		nsIHTMLCollection.h \
-		$(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-		HTMLCanvasElement.h \
-		HTMLMediaElement.h \
-		HTMLAudioElement.h \
-		HTMLVideoElement.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
--- a/content/html/content/public/moz.build
+++ b/content/html/content/public/moz.build
@@ -10,8 +10,28 @@ XPIDL_SOURCES += [
     'nsIMenuBuilder.idl',
     'nsIPhonetic.idl',
 ]
 
 XPIDL_MODULE = 'content_html'
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsFormSubmission.h',
+    'nsIConstraintValidation.h',
+    'nsIForm.h',
+    'nsIFormControl.h',
+    'nsIFormProcessor.h',
+    'nsIHTMLCollection.h',
+    'nsILink.h',
+    'nsIRadioGroupContainer.h',
+    'nsIRadioVisitor.h',
+    'nsITextControlElement.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'HTMLAudioElement.h',
+    'HTMLCanvasElement.h',
+    'HTMLMediaElement.h',
+    'HTMLVideoElement.h',
+]
+
--- a/content/html/content/src/Makefile.in
+++ b/content/html/content/src/Makefile.in
@@ -8,86 +8,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconhtmlcon_s
 LIBXUL_LIBRARY	= 1
 
-EXPORTS		= \
-		HTMLPropertiesCollection.h \
-		nsGenericHTMLElement.h \
-		nsClientRect.h \
-		nsHTMLDNSPrefetch.h \
-		$(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-		HTMLAnchorElement.h \
-		HTMLAreaElement.h \
-		HTMLBodyElement.h \
-		HTMLBRElement.h \
-		HTMLButtonElement.h \
-		HTMLDataElement.h \
-		HTMLDataListElement.h \
-		HTMLDivElement.h \
-		HTMLFieldSetElement.h \
-		HTMLFontElement.h \
-		HTMLFrameElement.h \
-		HTMLFrameSetElement.h \
-		HTMLHeadingElement.h \
-		HTMLHRElement.h \
-		HTMLIFrameElement.h \
-		HTMLImageElement.h \
-		HTMLInputElement.h \
-		HTMLLabelElement.h \
-		HTMLLegendElement.h \
-		HTMLLIElement.h \
-		HTMLLinkElement.h \
-		HTMLMapElement.h \
-		HTMLMenuElement.h \
-		HTMLMenuItemElement.h \
-		HTMLMetaElement.h \
-		HTMLMeterElement.h \
-		HTMLModElement.h \
-		HTMLObjectElement.h \
-		HTMLOptionElement.h \
-		HTMLOptionsCollection.h \
-		HTMLOptGroupElement.h \
-		HTMLOutputElement.h \
-		HTMLParagraphElement.h \
-		HTMLPreElement.h \
-		HTMLProgressElement.h \
-		HTMLScriptElement.h \
-		HTMLSelectElement.h \
-		HTMLSharedElement.h \
-		HTMLSharedListElement.h \
-		HTMLSharedObjectElement.h \
-		HTMLSourceElement.h \
-		HTMLSpanElement.h \
-		HTMLStyleElement.h \
-		HTMLTableCaptionElement.h \
-		HTMLTableCellElement.h \
-		HTMLTableColElement.h \
-		HTMLTableElement.h \
-		HTMLTableRowElement.h \
-		HTMLTableSectionElement.h \
-		HTMLTemplateElement.h \
-		HTMLTextAreaElement.h \
-		HTMLTimeElement.h \
-		HTMLTitleElement.h \
-		HTMLUnknownElement.h \
-		MediaError.h \
-		TimeRanges.h \
-		UndoManager.h \
-		ValidityState.h \
-		$(NULL)
-
 CPPSRCS		= \
 		HTMLPropertiesCollection.cpp \
 		nsClientRect.cpp \
 		nsHTMLDNSPrefetch.cpp \
 		nsGenericHTMLElement.cpp \
 		nsGenericHTMLFrameElement.cpp \
 		nsFormSubmission.cpp \
 		nsTextEditorState.cpp \
--- a/content/html/content/src/moz.build
+++ b/content/html/content/src/moz.build
@@ -1,8 +1,76 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'HTMLPropertiesCollection.h',
+    'nsGenericHTMLElement.h',
+    'nsClientRect.h',
+    'nsHTMLDNSPrefetch.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'HTMLAnchorElement.h',
+    'HTMLAreaElement.h',
+    'HTMLBodyElement.h',
+    'HTMLBRElement.h',
+    'HTMLButtonElement.h',
+    'HTMLDataElement.h',
+    'HTMLDataListElement.h',
+    'HTMLDivElement.h',
+    'HTMLFieldSetElement.h',
+    'HTMLFontElement.h',
+    'HTMLFrameElement.h',
+    'HTMLFrameSetElement.h',
+    'HTMLHeadingElement.h',
+    'HTMLHRElement.h',
+    'HTMLIFrameElement.h',
+    'HTMLImageElement.h',
+    'HTMLInputElement.h',
+    'HTMLLabelElement.h',
+    'HTMLLegendElement.h',
+    'HTMLLIElement.h',
+    'HTMLLinkElement.h',
+    'HTMLMapElement.h',
+    'HTMLMenuElement.h',
+    'HTMLMenuItemElement.h',
+    'HTMLMetaElement.h',
+    'HTMLMeterElement.h',
+    'HTMLModElement.h',
+    'HTMLObjectElement.h',
+    'HTMLOptionElement.h',
+    'HTMLOptionsCollection.h',
+    'HTMLOptGroupElement.h',
+    'HTMLOutputElement.h',
+    'HTMLParagraphElement.h',
+    'HTMLPreElement.h',
+    'HTMLProgressElement.h',
+    'HTMLScriptElement.h',
+    'HTMLSelectElement.h',
+    'HTMLSharedElement.h',
+    'HTMLSharedListElement.h',
+    'HTMLSharedObjectElement.h',
+    'HTMLSourceElement.h',
+    'HTMLSpanElement.h',
+    'HTMLStyleElement.h',
+    'HTMLTableCaptionElement.h',
+    'HTMLTableCellElement.h',
+    'HTMLTableColElement.h',
+    'HTMLTableElement.h',
+    'HTMLTableRowElement.h',
+    'HTMLTableSectionElement.h',
+    'HTMLTemplateElement.h',
+    'HTMLTextAreaElement.h',
+    'HTMLTimeElement.h',
+    'HTMLTitleElement.h',
+    'HTMLUnknownElement.h',
+    'MediaError.h',
+    'TimeRanges.h',
+    'UndoManager.h',
+    'ValidityState.h',
+]
+
--- a/content/html/document/src/Makefile.in
+++ b/content/html/document/src/Makefile.in
@@ -18,20 +18,16 @@ CPPSRCS		= \
 		nsHTMLContentSink.cpp \
 		nsHTMLDocument.cpp \
 		ImageDocument.cpp \
 		MediaDocument.cpp \
 		PluginDocument.cpp \
 		VideoDocument.cpp \
 		$(NULL)
 
-EXPORTS		= \
-		nsIHTMLDocument.h \
-		$(NULL)
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
 		-I$(srcdir)/../../../base/src \
 		-I$(srcdir)/../../../events/src \
--- a/content/html/document/src/moz.build
+++ b/content/html/document/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsIHTMLDocument.h',
+]
+
--- a/content/media/Makefile.in
+++ b/content/media/Makefile.in
@@ -10,48 +10,16 @@ VPATH     = @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = gkconmedia_s
 LIBXUL_LIBRARY = 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS := 1
 endif # !_MSC_VER
 
-EXPORTS = \
-  AbstractMediaDecoder.h \
-  AudioChannelFormat.h \
-  AudioEventTimeline.h \
-  AudioNodeEngine.h \
-  AudioNodeStream.h \
-  AudioSampleFormat.h \
-  AudioSegment.h \
-  AudioStream.h \
-  BufferMediaResource.h \
-  DecoderTraits.h \
-  DOMMediaStream.h \
-  FileBlockCache.h \
-  MediaDecoderOwner.h \
-  MediaResource.h \
-  MediaSegment.h \
-  MediaStreamGraph.h \
-  AudioAvailableEventManager.h \
-  MediaDecoder.h \
-  MediaDecoderStateMachine.h \
-  MediaDecoderReader.h \
-  MediaCache.h \
-  SharedBuffer.h \
-  StreamBuffer.h \
-  TimeVarying.h \
-  VideoFrameContainer.h \
-  VideoUtils.h \
-  VideoSegment.h \
-  VorbisUtils.h \
-  MediaMetadataManager.h \
-  $(NULL)
-
 CPPSRCS = \
   AudioChannelFormat.cpp \
   AudioNodeEngine.cpp \
   AudioNodeStream.cpp \
   AudioSegment.cpp \
   AudioStream.cpp \
   DecoderTraits.cpp \
   DOMMediaStream.cpp \
--- a/content/media/dash/Makefile.in
+++ b/content/media/dash/Makefile.in
@@ -13,23 +13,16 @@ topsrcdir  := @top_srcdir@
 srcdir     := @srcdir@
 VPATH      := @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME   := gkcondash_s
 LIBXUL_LIBRARY := 1
 
-EXPORTS := \
-  DASHDecoder.h \
-  DASHRepDecoder.h \
-  DASHReader.h \
-  DASHRepReader.h \
-  $(NULL)
-
 CPPSRCS := \
   DASHDecoder.cpp \
   DASHRepDecoder.cpp \
   DASHReader.cpp \
   $(NULL)
 
 FORCE_STATIC_LIB := 1
 
--- a/content/media/dash/moz.build
+++ b/content/media/dash/moz.build
@@ -1,8 +1,15 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'DASHDecoder.h',
+    'DASHReader.h',
+    'DASHRepDecoder.h',
+    'DASHRepReader.h',
+]
+
--- a/content/media/gstreamer/Makefile.in
+++ b/content/media/gstreamer/Makefile.in
@@ -9,22 +9,16 @@ VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkcongstreamer_s
 LIBXUL_LIBRARY 	= 1
 
 
-EXPORTS		+= \
-		GStreamerDecoder.h \
-		GStreamerReader.h \
-		GStreamerFormatHelper.h \
-		$(NULL)
-
 CPPSRCS		= \
 		GStreamerReader.cpp \
 		GStreamerDecoder.cpp \
 		GStreamerFormatHelper.cpp \
 		$(NULL)
 
 FORCE_STATIC_LIB = 1
 
--- a/content/media/gstreamer/moz.build
+++ b/content/media/gstreamer/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'GStreamerDecoder.h',
+    'GStreamerFormatHelper.h',
+    'GStreamerReader.h',
+]
+
--- a/content/media/moz.build
+++ b/content/media/moz.build
@@ -37,8 +37,40 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
 
 if CONFIG['MOZ_WEBSPEECH']:
     PARALLEL_DIRS += ['webspeech']
 
 TEST_DIRS += ['test']
 
 MODULE = 'content'
 
+EXPORTS += [
+    'AbstractMediaDecoder.h',
+    'AudioAvailableEventManager.h',
+    'AudioChannelFormat.h',
+    'AudioEventTimeline.h',
+    'AudioNodeEngine.h',
+    'AudioNodeStream.h',
+    'AudioSampleFormat.h',
+    'AudioSegment.h',
+    'AudioStream.h',
+    'BufferMediaResource.h',
+    'DOMMediaStream.h',
+    'DecoderTraits.h',
+    'FileBlockCache.h',
+    'MediaCache.h',
+    'MediaDecoder.h',
+    'MediaDecoderOwner.h',
+    'MediaDecoderReader.h',
+    'MediaDecoderStateMachine.h',
+    'MediaMetadataManager.h',
+    'MediaResource.h',
+    'MediaSegment.h',
+    'MediaStreamGraph.h',
+    'SharedBuffer.h',
+    'StreamBuffer.h',
+    'TimeVarying.h',
+    'VideoFrameContainer.h',
+    'VideoSegment.h',
+    'VideoUtils.h',
+    'VorbisUtils.h',
+]
+
--- a/content/media/ogg/Makefile.in
+++ b/content/media/ogg/Makefile.in
@@ -9,22 +9,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconogg_s
 LIBXUL_LIBRARY 	= 1
 FAIL_ON_WARNINGS := 1
 
 
-EXPORTS		+= \
-		OggDecoder.h \
-		OggCodecState.h \
-		OggReader.h \
-		$(NULL)
-
 CPPSRCS		= \
 		OggDecoder.cpp \
 		OggCodecState.cpp \
 		OggReader.cpp \
 		$(NULL)
 
 FORCE_STATIC_LIB = 1
 
--- a/content/media/ogg/moz.build
+++ b/content/media/ogg/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'OggCodecState.h',
+    'OggDecoder.h',
+    'OggReader.h',
+]
+
--- a/content/media/omx/Makefile.in
+++ b/content/media/omx/Makefile.in
@@ -7,21 +7,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconomx_s
 LIBXUL_LIBRARY 	= 1
 
-EXPORTS		+= \
-		MediaOmxDecoder.h \
-		MediaOmxReader.h \
-		$(NULL)
-
 CPPSRCS		= \
 		MediaOmxDecoder.cpp \
 		MediaOmxReader.cpp \
 		OmxDecoder.cpp \
 		$(NULL)
 
 FORCE_STATIC_LIB = 1
 
--- a/content/media/omx/moz.build
+++ b/content/media/omx/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'MediaOmxDecoder.h',
+    'MediaOmxReader.h',
+]
+
--- a/content/media/plugins/Makefile.in
+++ b/content/media/plugins/Makefile.in
@@ -7,23 +7,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconmediaplugins_s
 LIBXUL_LIBRARY 	= 1
 
-EXPORTS		+= \
-		MPAPI.h \
-		MediaPluginHost.h \
-		MediaPluginDecoder.h \
-		MediaPluginReader.h \
-		$(NULL)
-
 CPPSRCS		= \
 		MediaPluginHost.cpp \
 		MediaPluginDecoder.cpp \
 		MediaPluginReader.cpp \
 		$(NULL)
 
 FORCE_STATIC_LIB = 1
 
--- a/content/media/plugins/moz.build
+++ b/content/media/plugins/moz.build
@@ -1,8 +1,15 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'MPAPI.h',
+    'MediaPluginDecoder.h',
+    'MediaPluginHost.h',
+    'MediaPluginReader.h',
+]
+
--- a/content/media/raw/Makefile.in
+++ b/content/media/raw/Makefile.in
@@ -9,22 +9,16 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = gkconraw_s
 LIBXUL_LIBRARY = 1
 FAIL_ON_WARNINGS := 1
 
-EXPORTS += \
-  RawDecoder.h \
-  RawReader.h \
-  RawStructs.h \
-  $(NULL)
-
 CPPSRCS += \
   RawDecoder.cpp \
   RawReader.cpp \
   $(NULL)
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/raw/moz.build
+++ b/content/media/raw/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'RawDecoder.h',
+    'RawReader.h',
+    'RawStructs.h',
+]
+
--- a/content/media/wave/Makefile.in
+++ b/content/media/wave/Makefile.in
@@ -9,21 +9,16 @@ VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconwave_s
 LIBXUL_LIBRARY 	= 1
 
 
-EXPORTS		+= \
-		WaveDecoder.h \
-		WaveReader.h \
-		$(NULL)
-
 CPPSRCS		= \
 		WaveDecoder.cpp \
 		WaveReader.cpp \
 		$(NULL)
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/wave/moz.build
+++ b/content/media/wave/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'WaveDecoder.h',
+    'WaveReader.h',
+]
+
--- a/content/media/webaudio/Makefile.in
+++ b/content/media/webaudio/Makefile.in
@@ -30,36 +30,11 @@ CPPSRCS := \
   EnableWebAudioCheck.cpp \
   GainNode.cpp \
   MediaBufferDecoder.cpp \
   PannerNode.cpp \
   ThreeDPoint.cpp \
   WebAudioUtils.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES := mozilla/dom
-EXPORTS_mozilla/dom := \
-  AnalyserNode.h \
-  AudioBuffer.h \
-  AudioBufferSourceNode.h \
-  AudioContext.h \
-  AudioDestinationNode.h \
-  AudioListener.h \
-  AudioNode.h \
-  AudioParam.h \
-  BiquadFilterNode.h \
-  DelayNode.h \
-  DynamicsCompressorNode.h \
-  EnableWebAudioCheck.h \
-  GainNode.h \
-  PannerNode.h \
-  $(NULL)
-
-EXPORTS := \
-  AudioParamTimeline.h \
-  MediaBufferDecoder.h \
-  ThreeDPoint.h \
-  WebAudioUtils.h \
-  $(NULL)
-
 FORCE_STATIC_LIB := 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/webaudio/moz.build
+++ b/content/media/webaudio/moz.build
@@ -5,8 +5,32 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 PARALLEL_DIRS += ['test']
 
 TEST_TOOL_DIRS += ['compiledtest']
 
 MODULE = 'content'
 
+EXPORTS += [
+    'AudioParamTimeline.h',
+    'MediaBufferDecoder.h',
+    'ThreeDPoint.h',
+    'WebAudioUtils.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'AnalyserNode.h',
+    'AudioBuffer.h',
+    'AudioBufferSourceNode.h',
+    'AudioContext.h',
+    'AudioDestinationNode.h',
+    'AudioListener.h',
+    'AudioNode.h',
+    'AudioParam.h',
+    'BiquadFilterNode.h',
+    'DelayNode.h',
+    'DynamicsCompressorNode.h',
+    'EnableWebAudioCheck.h',
+    'GainNode.h',
+    'PannerNode.h',
+]
+
--- a/content/media/webm/Makefile.in
+++ b/content/media/webm/Makefile.in
@@ -9,21 +9,16 @@ VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconwebm_s
 LIBXUL_LIBRARY 	= 1
 
 
-EXPORTS		+= \
-		WebMDecoder.h \
-		WebMReader.h \
-		$(NULL)
-
 CPPSRCS		= \
 		WebMBufferedParser.cpp \
 		WebMDecoder.cpp \
 		WebMReader.cpp \
 		$(NULL)
 
 FORCE_STATIC_LIB = 1
 
--- a/content/media/webm/moz.build
+++ b/content/media/webm/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'WebMDecoder.h',
+    'WebMReader.h',
+]
+
--- a/content/media/webrtc/Makefile.in
+++ b/content/media/webrtc/Makefile.in
@@ -7,30 +7,21 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = gkconwebrtc_s
 LIBXUL_LIBRARY = 1
 
-EXPORTS	+= \
-  MediaEngine.h \
-  MediaEngineDefault.h \
-  $(NULL)
-
 CPPSRCS	= \
   MediaEngineDefault.cpp \
   $(NULL)
 
 ifdef MOZ_WEBRTC
-EXPORTS += \
-  MediaEngineWebRTC.h \
-  $(NULL)
-
 CPPSRCS += \
   MediaEngineWebRTC.cpp \
   MediaEngineWebRTCVideo.cpp \
   MediaEngineWebRTCAudio.cpp \
   $(NULL)
 endif
 
 ifeq ($(OS_ARCH),WINNT)
--- a/content/media/webrtc/moz.build
+++ b/content/media/webrtc/moz.build
@@ -1,8 +1,15 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'MediaEngine.h',
+    'MediaEngineDefault.h',
+]
+
+if CONFIG['MOZ_WEBRTC']:
+    EXPORTS += ['MediaEngineWebRTC.h']
--- a/content/media/webspeech/recognition/Makefile.in
+++ b/content/media/webspeech/recognition/Makefile.in
@@ -29,25 +29,13 @@ CPPSRCS := \
   SpeechRecognitionResultList.cpp \
   SpeechStreamListener.cpp \
   endpointer.cc \
   energy_endpointer.cc \
   energy_endpointer_params.cc \
   FakeSpeechRecognitionService.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES := mozilla/dom
-EXPORTS_mozilla/dom := \
-  FakeSpeechRecognitionService.h \
-  SpeechGrammar.h \
-  SpeechGrammarList.h \
-  SpeechRecognitionAlternative.h \
-  SpeechRecognition.h \
-  SpeechRecognitionResult.h \
-  SpeechRecognitionResultList.h \
-  SpeechStreamListener.h \
-  $(NULL)
-
 FORCE_STATIC_LIB := 1
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
--- a/content/media/webspeech/recognition/moz.build
+++ b/content/media/webspeech/recognition/moz.build
@@ -9,8 +9,20 @@ XPIDL_MODULE = 'dom_webspeechrecognition
 
 XPIDL_SOURCES = [
   'nsIDOMSpeechRecognitionEvent.idl',
   'nsIDOMSpeechRecognitionError.idl',
   'nsISpeechRecognitionService.idl'
 ]
 
 TEST_DIRS += ['test']
+
+EXPORTS.mozilla.dom += [
+    'FakeSpeechRecognitionService.h',
+    'SpeechGrammar.h',
+    'SpeechGrammarList.h',
+    'SpeechRecognition.h',
+    'SpeechRecognitionAlternative.h',
+    'SpeechRecognitionResult.h',
+    'SpeechRecognitionResultList.h',
+    'SpeechStreamListener.h',
+]
+
--- a/content/media/webspeech/synth/Makefile.in
+++ b/content/media/webspeech/synth/Makefile.in
@@ -28,25 +28,13 @@ CPPSRCS := \
   SpeechSynthesisVoice.cpp \
   SpeechSynthesis.cpp \
   SpeechSynthesisChild.cpp \
   SpeechSynthesisParent.cpp \
   nsSynthVoiceRegistry.cpp \
   nsSpeechTask.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES := mozilla/dom
-EXPORTS_mozilla/dom := \
-  EnableSpeechSynthesisCheck.h \
-  SpeechSynthesisUtterance.h \
-  SpeechSynthesisVoice.h \
-  SpeechSynthesis.h \
-  SpeechSynthesisChild.h \
-  SpeechSynthesisParent.h \
-  nsSynthVoiceRegistry.h \
-  nsSpeechTask.h \
-  $(NULL)
-
 FORCE_STATIC_LIB := 1
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
--- a/content/media/webspeech/synth/moz.build
+++ b/content/media/webspeech/synth/moz.build
@@ -9,8 +9,20 @@ TEST_DIRS += ['test', 'ipc/test']
 
 XPIDL_MODULE = 'dom_webspeechsynth'
 
 XPIDL_SOURCES += [
     'nsIDOMSpeechSynthesisEvent.idl',
     'nsISpeechService.idl',
     'nsISynthVoiceRegistry.idl'
     ]
+
+EXPORTS.mozilla.dom += [
+    'EnableSpeechSynthesisCheck.h',
+    'SpeechSynthesis.h',
+    'SpeechSynthesisChild.h',
+    'SpeechSynthesisParent.h',
+    'SpeechSynthesisUtterance.h',
+    'SpeechSynthesisVoice.h',
+    'nsSpeechTask.h',
+    'nsSynthVoiceRegistry.h',
+]
+
--- a/content/media/wmf/Makefile.in
+++ b/content/media/wmf/Makefile.in
@@ -8,22 +8,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconwmf_s
 LIBXUL_LIBRARY 	= 1
 
-EXPORTS		+= \
-		WMFDecoder.h \
-		WMFReader.h \
-		WMF.h \
-		$(NULL)
-
 CPPSRCS		= \
 		WMFByteStream.cpp \
 		WMFDecoder.cpp \
 		WMFReader.cpp \
 		WMFUtils.cpp \
 		WMFSourceReaderCallback.cpp \
 		$(NULL)
 
--- a/content/media/wmf/moz.build
+++ b/content/media/wmf/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'WMF.h',
+    'WMFDecoder.h',
+    'WMFReader.h',
+]
+
--- a/content/smil/Makefile.in
+++ b/content/smil/Makefile.in
@@ -9,41 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconsmil_s
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-EXPORTS	= \
-	nsISMILAttr.h \
-	nsISMILType.h \
-	nsSMILAnimationController.h \
-	nsSMILAnimationFunction.h \
-	nsSMILCompositorTable.h \
-	nsSMILCSSProperty.h \
-	nsSMILInstanceTime.h \
-	nsSMILInterval.h \
-	nsSMILKeySpline.h \
-	nsSMILMappedAttribute.h \
-	nsSMILMilestone.h \
-	nsSMILNullType.h \
-	nsSMILRepeatCount.h \
-	nsSMILSetAnimationFunction.h \
-	nsSMILTargetIdentifier.h \
-	nsSMILTimeContainer.h \
-	nsSMILTimedElement.h \
-	nsSMILTimeValue.h \
-	nsSMILTimeValueSpec.h \
-	nsSMILTimeValueSpecParams.h \
-	nsSMILTypes.h \
-	nsSMILValue.h \
-	$(NULL)
-
 CPPSRCS	= \
 	nsDOMTimeEvent.cpp \
 	nsSMILAnimationController.cpp \
 	nsSMILAnimationFunction.cpp \
 	nsSMILCompositor.cpp \
 	nsSMILCSSProperty.cpp \
 	nsSMILCSSValueType.cpp \
 	nsSMILFloatType.cpp \
--- a/content/smil/moz.build
+++ b/content/smil/moz.build
@@ -3,8 +3,33 @@
 # 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/.
 
 TEST_TOOL_DIRS += ['test']
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsISMILAttr.h',
+    'nsISMILType.h',
+    'nsSMILAnimationController.h',
+    'nsSMILAnimationFunction.h',
+    'nsSMILCSSProperty.h',
+    'nsSMILCompositorTable.h',
+    'nsSMILInstanceTime.h',
+    'nsSMILInterval.h',
+    'nsSMILKeySpline.h',
+    'nsSMILMappedAttribute.h',
+    'nsSMILMilestone.h',
+    'nsSMILNullType.h',
+    'nsSMILRepeatCount.h',
+    'nsSMILSetAnimationFunction.h',
+    'nsSMILTargetIdentifier.h',
+    'nsSMILTimeContainer.h',
+    'nsSMILTimeValue.h',
+    'nsSMILTimeValueSpec.h',
+    'nsSMILTimeValueSpecParams.h',
+    'nsSMILTimedElement.h',
+    'nsSMILTypes.h',
+    'nsSMILValue.h',
+]
+
--- a/content/svg/content/src/Makefile.in
+++ b/content/svg/content/src/Makefile.in
@@ -156,104 +156,16 @@ CPPSRCS		= \
 		$(NULL)
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
-EXPORTS =  			\
-	nsSVGClass.h               \
-	nsSVGElement.h             \
-	nsSVGFeatures.h            \
-	SVGAttrValueWrapper.h      \
-	SVGStringList.h            \
-	$(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-	nsSVGAnimatedTransformList.h \
-	SVGAElement.h \
-	SVGAltGlyphElement.h \
-	SVGAngle.h \
-	SVGAnimatedAngle.h \
-	SVGAnimatedBoolean.h \
-	SVGAnimatedLength.h \
-	SVGAnimatedTransformList.h \
-	SVGAnimateElement.h \
-	SVGAnimateTransformElement.h \
-	SVGAnimateMotionElement.h \
-	SVGAnimationElement.h \
-	SVGClipPathElement.h \
-	SVGCircleElement.h \
-	SVGComponentTransferFunctionElement.h \
-	SVGDefsElement.h \
-	SVGDescElement.h \
-	SVGEllipseElement.h \
-	SVGFEBlendElement.h \
-	SVGFEColorMatrixElement.h \
-	SVGFEComponentTransferElement.h \
-	SVGFECompositeElement.h \
-	SVGFEConvolveMatrixElement.h \
-	SVGFEDiffuseLightingElement.h \
-	SVGFEDisplacementMapElement.h \
-	SVGFEDistantLightElement.h \
-	SVGFEFloodElement.h \
-	SVGFEGaussianBlurElement.h \
-	SVGFEImageElement.h \
-	SVGFEMergeElement.h \
-	SVGFEMergeNodeElement.h \
-	SVGFEMorphologyElement.h \
-	SVGFEOffsetElement.h \
-	SVGFEPointLightElement.h \
-	SVGFESpecularLightingElement.h \
-	SVGFESpotLightElement.h \
-	SVGFETileElement.h \
-	SVGFETurbulenceElement.h \
-	SVGFilterElement.h \
-	SVGForeignObjectElement.h \
-	SVGGElement.h \
-	SVGGradientElement.h \
-	SVGGraphicsElement.h \
-	SVGImageElement.h \
-	SVGLineElement.h \
-	SVGMarkerElement.h \
-	SVGMaskElement.h \
-	SVGMatrix.h \
-	SVGMetadataElement.h \
-	SVGMPathElement.h \
-	SVGPathElement.h \
-	SVGPatternElement.h \
-	SVGPolygonElement.h \
-	SVGPolylineElement.h \
-	SVGRect.h \
-	SVGIRect.h \
-	SVGRectElement.h \
-	SVGScriptElement.h \
-	SVGSetElement.h \
-	SVGStopElement.h \
-	SVGStyleElement.h \
-	SVGSymbolElement.h \
-	SVGSVGElement.h \
-	SVGSwitchElement.h \
-	SVGTests.h \
-	SVGTextContentElement.h \
-	SVGTextElement.h \
-	SVGTextPathElement.h \
-	SVGTextPositioningElement.h \
-	SVGTitleElement.h \
-	SVGTransform.h \
-	SVGTransformableElement.h \
-	SVGTSpanElement.h \
-	SVGUseElement.h \
-	SVGViewElement.h \
-	$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES += 	\
 		-I$(srcdir)/../../../xml/content/src \
 		-I$(srcdir)/../../../../dom \
 		-I$(srcdir)/../../../base/src \
 		-I$(srcdir)/../../../../layout/generic \
 		-I$(srcdir)/../../../../layout/xul/base/src \
--- a/content/svg/content/src/moz.build
+++ b/content/svg/content/src/moz.build
@@ -1,8 +1,94 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'SVGAttrValueWrapper.h',
+    'SVGStringList.h',
+    'nsSVGClass.h',
+    'nsSVGElement.h',
+    'nsSVGFeatures.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'nsSVGAnimatedTransformList.h',
+    'SVGAElement.h',
+    'SVGAltGlyphElement.h',
+    'SVGAngle.h',
+    'SVGAnimatedAngle.h',
+    'SVGAnimatedBoolean.h',
+    'SVGAnimatedLength.h',
+    'SVGAnimatedTransformList.h',
+    'SVGAnimateElement.h',
+    'SVGAnimateMotionElement.h',
+    'SVGAnimateTransformElement.h',
+    'SVGAnimationElement.h',
+    'SVGCircleElement.h',
+    'SVGClipPathElement.h',
+    'SVGComponentTransferFunctionElement.h',
+    'SVGDefsElement.h',
+    'SVGDescElement.h',
+    'SVGEllipseElement.h',
+    'SVGFEBlendElement.h',
+    'SVGFEColorMatrixElement.h',
+    'SVGFEComponentTransferElement.h',
+    'SVGFECompositeElement.h',
+    'SVGFEConvolveMatrixElement.h',
+    'SVGFEDiffuseLightingElement.h',
+    'SVGFEDisplacementMapElement.h',
+    'SVGFEDistantLightElement.h',
+    'SVGFEFloodElement.h',
+    'SVGFEGaussianBlurElement.h',
+    'SVGFEImageElement.h',
+    'SVGFEMergeElement.h',
+    'SVGFEMergeNodeElement.h',
+    'SVGFEMorphologyElement.h',
+    'SVGFEOffsetElement.h',
+    'SVGFEPointLightElement.h',
+    'SVGFESpecularLightingElement.h',
+    'SVGFESpotLightElement.h',
+    'SVGFETileElement.h',
+    'SVGFETurbulenceElement.h',
+    'SVGFilterElement.h',
+    'SVGForeignObjectElement.h',
+    'SVGGElement.h',
+    'SVGGradientElement.h',
+    'SVGGraphicsElement.h',
+    'SVGImageElement.h',
+    'SVGIRect.h',
+    'SVGLineElement.h',
+    'SVGMarkerElement.h',
+    'SVGMaskElement.h',
+    'SVGMatrix.h',
+    'SVGMetadataElement.h',
+    'SVGMPathElement.h',
+    'SVGPathElement.h',
+    'SVGPatternElement.h',
+    'SVGPolygonElement.h',
+    'SVGPolylineElement.h',
+    'SVGRectElement.h',
+    'SVGRect.h',
+    'SVGScriptElement.h',
+    'SVGSetElement.h',
+    'SVGStopElement.h',
+    'SVGStyleElement.h',
+    'SVGSVGElement.h',
+    'SVGSwitchElement.h',
+    'SVGSymbolElement.h',
+    'SVGTests.h',
+    'SVGTextContentElement.h',
+    'SVGTextElement.h',
+    'SVGTextPathElement.h',
+    'SVGTextPositioningElement.h',
+    'SVGTitleElement.h',
+    'SVGTransformableElement.h',
+    'SVGTransform.h',
+    'SVGTSpanElement.h',
+    'SVGUseElement.h',
+    'SVGViewElement.h',
+]
+
--- a/content/svg/document/src/Makefile.in
+++ b/content/svg/document/src/Makefile.in
@@ -16,22 +16,16 @@ FAIL_ON_WARNINGS = 1
 
 CPPSRCS		= \
 		SVGDocument.cpp \
 		$(NULL)
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-	SVGDocument.h \
-	$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES	+= \
 		-I$(srcdir) \
 		-I$(srcdir)/../../../xml/document/src \
 		-I$(srcdir)/../../../html/document/src \
 		-I$(srcdir)/../../../../layout/style \
 		-I$(srcdir)/../../../base/src \
--- a/content/svg/document/src/moz.build
+++ b/content/svg/document/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS.mozilla.dom += [
+    'SVGDocument.h',
+]
+
--- a/content/xbl/src/Makefile.in
+++ b/content/xbl/src/Makefile.in
@@ -29,22 +29,16 @@ CPPSRCS		= \
     nsXBLWindowKeyHandler.cpp \
     nsXBLPrototypeHandler.cpp \
     nsXBLService.cpp \
     nsBindingManager.cpp \
     nsXBLInsertionPoint.cpp \
     nsXBLSerialize.cpp \
 		$(NULL)
 
-EXPORTS   = \
-  nsBindingManager.h \
-  nsXBLBinding.h \
-  nsXBLService.h \
-  $(NULL)
-
 include $(topsrcdir)/config/config.mk
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES	= \
--- a/content/xbl/src/moz.build
+++ b/content/xbl/src/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsBindingManager.h',
+    'nsXBLBinding.h',
+    'nsXBLService.h',
+]
+
--- a/content/xml/content/src/Makefile.in
+++ b/content/xml/content/src/Makefile.in
@@ -9,24 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconxmlcon_s
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-  CDATASection.h \
-  ProcessingInstruction.h \
-  XMLStylesheetProcessingInstruction.h \
-  $(NULL)
-
 CPPSRCS		= \
 		nsXMLElement.cpp \
 		CDATASection.cpp \
 		ProcessingInstruction.cpp \
 		XMLStylesheetProcessingInstruction.cpp \
 		$(NULL)
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
--- a/content/xml/content/src/moz.build
+++ b/content/xml/content/src/moz.build
@@ -1,8 +1,14 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS.mozilla.dom += [
+    'CDATASection.h',
+    'ProcessingInstruction.h',
+    'XMLStylesheetProcessingInstruction.h',
+]
+
--- a/content/xml/document/public/Makefile.in
+++ b/content/xml/document/public/Makefile.in
@@ -5,14 +5,10 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS		= \
-		nsIXMLContentSink.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/content/xml/document/public/moz.build
+++ b/content/xml/document/public/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsIXMLContentSink.h',
+]
+
--- a/content/xml/document/src/Makefile.in
+++ b/content/xml/document/src/Makefile.in
@@ -9,22 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconxmldoc_s
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-  XMLDocument.h \
-  $(NULL)
-
 CPPSRCS		= \
 		nsXMLContentSink.cpp \
 		nsXMLFragmentContentSink.cpp \
 		XMLDocument.cpp \
 		nsXMLPrettyPrinter.cpp \
 		$(NULL)
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
--- a/content/xml/document/src/moz.build
+++ b/content/xml/document/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'content'
 
+EXPORTS.mozilla.dom += [
+    'XMLDocument.h',
+]
+
--- a/content/xslt/public/Makefile.in
+++ b/content/xslt/public/Makefile.in
@@ -4,14 +4,10 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS		= \
-		nsIDocumentTransformer.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/content/xslt/public/moz.build
+++ b/content/xslt/public/moz.build
@@ -13,8 +13,12 @@ XPIDL_SOURCES += [
     'txINodeSet.idl',
     'txIXPathObject.idl',
 ]
 
 XPIDL_MODULE = 'content_xslt'
 
 MODULE = 'content'
 
+EXPORTS += [
+    'nsIDocumentTransformer.h',
+]
+
--- a/content/xul/document/public/Makefile.in
+++ b/content/xul/document/public/Makefile.in
@@ -5,17 +5,10 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-
-ifdef MOZ_XUL
-EXPORTS		= \
-		nsIXULDocument.h \
-		$(NULL)
-endif
-
 include $(topsrcdir)/config/rules.mk
 
--- a/content/xul/document/public/moz.build
+++ b/content/xul/document/public/moz.build
@@ -8,11 +8,14 @@ XPIDL_SOURCES += [
     'nsIController.idl',
     'nsIControllers.idl',
 ]
 
 if CONFIG['MOZ_XUL']:
     XPIDL_SOURCES += [
         'nsIXULOverlayProvider.idl',
     ]
+    EXPORTS += [
+        'nsIXULDocument.h',
+    ]
 
 MODULE = 'xuldoc'
 
--- a/db/sqlite3/src/Makefile.in
+++ b/db/sqlite3/src/Makefile.in
@@ -56,20 +56,16 @@ MODULE_OPTIMIZE_FLAGS = -O2
 endif
 
 # Force /O2 optimisation on Windows because using the default /O1 causes
 # crashes with MSVC2005 and PGO. See bug 719584.
 ifeq ($(OS_ARCH),WINNT)
 MODULE_OPTIMIZE_FLAGS = -O2
 endif
 
-EXPORTS = \
-  sqlite3.h \
-  $(NULL)
-
 CSRCS = \
   sqlite3.c \
   $(NULL)
 
 # -DSQLITE_SECURE_DELETE=1 will cause SQLITE to 0-fill delete data so we
 # don't have to vacuum to make sure the data is not visible in the file.
 # -DSQLITE_ENABLE_FTS3=1 enables the full-text index module.
 # -DSQLITE_CORE=1 statically links that module into the SQLite library.
--- a/db/sqlite3/src/moz.build
+++ b/db/sqlite3/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'sqlite3'
 
+EXPORTS += [
+    'sqlite3.h',
+]
+
--- a/docshell/base/Makefile.in
+++ b/docshell/base/Makefile.in
@@ -12,30 +12,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME   = basedocshell_s
 LIBXUL_LIBRARY = 1
 
 ifdef MOZ_TOOLKIT_SEARCH
 DEFINES += -DMOZ_TOOLKIT_SEARCH
 endif
 
-EXPORTS = \
-  nsDocShellLoadTypes.h \
-  nsILinkHandler.h \
-  nsIWebShellServices.h \
-  SerializedLoadContext.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla
-
-EXPORTS_mozilla = \
-  IHistory.h \
-  LoadContext.h \
-  $(NULL)
-
 CPPSRCS = \
   nsDocShell.cpp \
   nsDocShellLoadInfo.cpp \
   nsDocShellEditorData.cpp \
   nsDocShellTransferableHooks.cpp \
   nsDocShellEnumerator.cpp \
   nsDSURIContentListener.cpp \
   nsDefaultURIFixup.cpp \
--- a/docshell/base/moz.build
+++ b/docshell/base/moz.build
@@ -30,8 +30,20 @@ XPIDL_SOURCES += [
     'nsIURIFixup.idl',
     'nsIWebNavigation.idl',
     'nsIWebNavigationInfo.idl',
     'nsIWebPageDescriptor.idl',
 ]
 
 MODULE = 'docshell'
 
+EXPORTS += [
+    'SerializedLoadContext.h',
+    'nsDocShellLoadTypes.h',
+    'nsILinkHandler.h',
+    'nsIWebShellServices.h',
+]
+
+EXPORTS.mozilla += [
+    'IHistory.h',
+    'LoadContext.h',
+]
+
--- a/docshell/build/Makefile.in
+++ b/docshell/build/Makefile.in
@@ -13,20 +13,16 @@ MODULE_NAME	= docshell_provider
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= docshell
 EXPORT_LIBRARY = 1
 LIBXUL_LIBRARY	= 1
 
 
-EXPORTS = \
-		  nsDocShellCID.h \
-		  $(NULL)
-
 CPPSRCS		= \
 		nsDocShellModule.cpp		\
 		$(NULL)
 
 SHARED_LIBRARY_LIBS= \
 		../base/$(LIB_PREFIX)basedocshell_s.$(LIB_SUFFIX) \
 		$(DEPTH)/uriloader/base/$(LIB_PREFIX)uriloaderbase_s.$(LIB_SUFFIX) \
 		$(DEPTH)/uriloader/exthandler/$(LIB_PREFIX)exthandler_s.$(LIB_SUFFIX) \
--- a/docshell/build/moz.build
+++ b/docshell/build/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'docshell'
 
+EXPORTS += [
+    'nsDocShellCID.h',
+]
+
--- a/docshell/shistory/src/Makefile.in
+++ b/docshell/shistory/src/Makefile.in
@@ -10,19 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= shistory_s
 FORCE_STATIC_LIB = 1
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-EXPORTS		= nsSHEntryShared.h \
-		  $(NULL)
-
 CPPSRCS		= nsSHEntry.cpp        \
             nsSHTransaction.cpp   \
             nsSHistory.cpp \
 	    nsSHEntryShared.cpp \
             $(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
--- a/docshell/shistory/src/moz.build
+++ b/docshell/shistory/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'shistory'
 
+EXPORTS += [
+    'nsSHEntryShared.h',
+]
+
--- a/dom/activities/src/Makefile.in
+++ b/dom/activities/src/Makefile.in
@@ -15,21 +15,16 @@ FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
 CPPSRCS = \
   Activity.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES = mozilla/dom
-EXPORTS_mozilla/dom = \
-  Activity.h \
-  $(NULL)
-
 EXTRA_COMPONENTS = \
   ActivityOptions.js \
   ActivityProxy.js \
   ActivityRequestHandler.js \
   ActivityWrapper.js \
   Activities.manifest \
   $(NULL)
 
--- a/dom/activities/src/moz.build
+++ b/dom/activities/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom += [
+    'Activity.h',
+]
+
--- a/dom/alarm/Makefile.in
+++ b/dom/alarm/Makefile.in
@@ -11,32 +11,26 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME        = domalarm_s
 LIBXUL_LIBRARY      = 1
 FORCE_STATIC_LIB    = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/alarm
-
 EXTRA_COMPONENTS =       \
   AlarmsManager.js       \
   AlarmsManager.manifest \
   $(NULL)
 
 EXTRA_JS_MODULES = \
   AlarmDB.jsm      \
   AlarmService.jsm \
   $(NULL)
 
-EXPORTS_mozilla/dom/alarm = \
-  AlarmHalService.h         \
-  $(NULL)
-
 CPPSRCS =             \
   AlarmHalService.cpp \
   $(NULL)
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
--- a/dom/alarm/moz.build
+++ b/dom/alarm/moz.build
@@ -14,8 +14,12 @@ XPIDL_SOURCES += [
 XPIDL_MODULE = 'dom_alarm'
 
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/interfaces/base',
 ]
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom.alarm += [
+    'AlarmHalService.h',
+]
+
--- a/dom/audiochannel/Makefile.in
+++ b/dom/audiochannel/Makefile.in
@@ -22,25 +22,16 @@ include $(DEPTH)/config/autoconf.mk
 LIBRARY_NAME     = domaudiochannel_s
 LIBXUL_LIBRARY = 1
 FORCE_STATIC_LIB = 1
 EXPORT_LIBRARY = 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS := 1
 endif # !_MSC_VER
 
-EXPORTS_NAMESPACES = \
-  mozilla/dom \
-  $(NULL)
-
-EXPORTS = AudioChannelService.h \
-          AudioChannelServiceChild.h \
-          AudioChannelCommon.h \
-          AudioChannelAgent.h
-
 CPPSRCS += \
   AudioChannelService.cpp \
   AudioChannelServiceChild.cpp \
   AudioChannelAgent.cpp \
   $(NULL)
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
--- a/dom/audiochannel/moz.build
+++ b/dom/audiochannel/moz.build
@@ -9,8 +9,15 @@ TEST_TOOL_DIRS += ['tests']
 XPIDL_SOURCES += [
     'nsIAudioChannelAgent.idl',
 ]
 
 XPIDL_MODULE = 'dom_audiochannel'
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'AudioChannelAgent.h',
+    'AudioChannelCommon.h',
+    'AudioChannelService.h',
+    'AudioChannelServiceChild.h',
+]
+
--- a/dom/base/Makefile.in
+++ b/dom/base/Makefile.in
@@ -29,58 +29,16 @@ EXTRA_JS_MODULES = ConsoleAPIStorage.jsm
   $(NULL)
 
 EXTRA_JS_MODULES += \
   DOMRequestHelper.jsm \
   IndexedDBHelper.jsm \
   ObjectWrapper.jsm \
   $(NULL)
 
-EXPORTS = \
-  nsDOMCID.h \
-  nsDOMClassInfoClasses.h \
-  nsDOMClassInfoID.h \
-  nsDOMJSUtils.h \
-  nsDOMString.h \
-  nsIDOMClassInfo.h \
-  nsIDOMScriptObjectFactory.h \
-  nsIGlobalObject.h \
-  nsIJSEventListener.h \
-  nsIJSNativeInitializer.h \
-  nsIScriptContext.h	\
-  nsIScriptExternalNameSet.h \
-  nsIScriptGlobalObject.h \
-  nsIScriptGlobalObjectOwner.h \
-  nsIScriptNameSpaceManager.h \
-  nsIScriptObjectPrincipal.h \
-  nsIScriptRuntime.h \
-  nsIScriptTimeoutHandler.h \
-  nsJSEnvironment.h \
-  nsJSUtils.h \
-  nsPIDOMWindow.h \
-  nsPIWindowRoot.h \
-  nsFocusManager.h \
-  nsWrapperCache.h \
-  nsWrapperCacheInlines.h \
-  nsContentPermissionHelper.h \
-  nsStructuredCloneContainer.h \
-  nsWindowMemoryReporter.h \
-  Crypto.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla/dom
-EXPORTS_mozilla/dom = \
-  DOMError.h \
-  DOMRequest.h \
-  DOMCursor.h \
-  StructuredCloneTags.h \
-  ScreenOrientation.h \
-  URL.h \
-  $(NULL)
-
 CPPSRCS =			\
 	nsBarProps.cpp          \
 	nsDOMException.cpp 	\
 	nsDOMWindowUtils.cpp 	\
 	nsJSEnvironment.cpp	\
 	nsJSTimeoutHandler.cpp	\
 	nsFocusManager.cpp \
 	nsGlobalWindow.cpp      \
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
@@ -17,8 +17,49 @@ XPIDL_SOURCES += [
 
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
 ]
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'Crypto.h',
+    'nsContentPermissionHelper.h',
+    'nsDOMCID.h',
+    'nsDOMClassInfoClasses.h',
+    'nsDOMClassInfoID.h',
+    'nsDOMJSUtils.h',
+    'nsDOMString.h',
+    'nsFocusManager.h',
+    'nsIDOMClassInfo.h',
+    'nsIDOMScriptObjectFactory.h',
+    'nsIGlobalObject.h',
+    'nsIJSEventListener.h',
+    'nsIJSNativeInitializer.h',
+    'nsIScriptContext.h',
+    'nsIScriptExternalNameSet.h',
+    'nsIScriptGlobalObject.h',
+    'nsIScriptGlobalObjectOwner.h',
+    'nsIScriptNameSpaceManager.h',
+    'nsIScriptObjectPrincipal.h',
+    'nsIScriptRuntime.h',
+    'nsIScriptTimeoutHandler.h',
+    'nsJSEnvironment.h',
+    'nsJSUtils.h',
+    'nsPIDOMWindow.h',
+    'nsPIWindowRoot.h',
+    'nsStructuredCloneContainer.h',
+    'nsWindowMemoryReporter.h',
+    'nsWrapperCache.h',
+    'nsWrapperCacheInlines.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'DOMCursor.h',
+    'DOMError.h',
+    'DOMRequest.h',
+    'ScreenOrientation.h',
+    'StructuredCloneTags.h',
+    'URL.h',
+]
+
--- a/dom/battery/Makefile.in
+++ b/dom/battery/Makefile.in
@@ -11,23 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = dom_battery_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/battery
-
-EXPORTS_mozilla/dom/battery = \
-  Constants.h \
-  Types.h \
-  $(NULL)
-
 CPPSRCS = \
   BatteryManager.cpp \
   $(NULL)
 
 LOCAL_INCLUDES = \
   -I$(topsrcdir)/content/events/src \
   $(NULL)
 
--- a/dom/battery/moz.build
+++ b/dom/battery/moz.build
@@ -12,8 +12,13 @@ XPIDL_SOURCES += [
 
 XPIDL_MODULE = 'dom_battery'
 
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
 ]
 
+EXPORTS.mozilla.dom.battery += [
+    'Constants.h',
+    'Types.h',
+]
+
--- a/dom/bindings/Makefile.in
+++ b/dom/bindings/Makefile.in
@@ -46,41 +46,16 @@ CPPSRCS = \
   $(linked_binding_cpp_files) \
   $(filter %.cpp, $(globalgen_targets)) \
   BindingUtils.cpp \
   CallbackInterface.cpp \
   CallbackObject.cpp \
   DOMJSProxyHandler.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES = $(binding_include_path) mozilla
-
-EXPORTS_mozilla = \
-  ErrorResult.h \
-  $(NULL)
-
-EXPORTS_$(binding_include_path) = \
-  BindingDeclarations.h \
-  BindingUtils.h \
-  CallbackFunction.h \
-  CallbackInterface.h \
-  CallbackObject.h \
-  DOMJSClass.h \
-  DOMJSProxyHandler.h \
-  Errors.msg \
-  NonRefcountedDOMObject.h \
-  Nullable.h \
-  PrimitiveConversions.h \
-  PrototypeList.h \
-  RegisterBindings.h \
-  TypedArray.h \
-  UnionConversions.h \
-  UnionTypes.h \
-  $(NULL)
-
 LOCAL_INCLUDES += -I$(topsrcdir)/js/xpconnect/src \
   -I$(topsrcdir)/js/xpconnect/wrappers \
   -I$(topsrcdir)/content/canvas/src \
   -I$(topsrcdir)/content/html/content/src \
   -I$(topsrcdir)/media/webrtc/signaling/src/peerconnection \
   -I$(topsrcdir)/dom/base \
   -I$(topsrcdir)/dom/battery \
   -I$(topsrcdir)/dom/indexedDB \
--- a/dom/bindings/moz.build
+++ b/dom/bindings/moz.build
@@ -1,8 +1,30 @@
 # -*- 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/.
 
 MODULE = 'dom'
 
+EXPORTS.mozilla += [
+    'ErrorResult.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'BindingDeclarations.h',
+    'BindingUtils.h',
+    'CallbackFunction.h',
+    'CallbackInterface.h',
+    'CallbackObject.h',
+    'DOMJSClass.h',
+    'DOMJSProxyHandler.h',
+    'Errors.msg',
+    'NonRefcountedDOMObject.h',
+    'Nullable.h',
+    'PrimitiveConversions.h',
+    'PrototypeList.h',
+    'RegisterBindings.h',
+    'TypedArray.h',
+    'UnionConversions.h',
+    'UnionTypes.h',
+]
--- a/dom/bluetooth/Makefile.in
+++ b/dom/bluetooth/Makefile.in
@@ -18,24 +18,16 @@ srcdir           = @srcdir@
 VPATH            = @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/dom/dom-config.mk
 
 VPATH += $(srcdir)/ipc
 
-EXPORTS_NAMESPACES = \
-  mozilla/dom/bluetooth \
-  mozilla/dom/bluetooth/ipc \
-  $(NULL)
-
-EXPORTS_mozilla/dom/bluetooth = BluetoothCommon.h
-EXPORTS_mozilla/dom/bluetooth/ipc = BluetoothMessageUtils.h
-
 ifneq (,$(MOZ_B2G_BT))
 
 LIBRARY_NAME     = dombluetooth_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 
 CPPSRCS += \
   BluetoothService.cpp \
--- a/dom/bluetooth/moz.build
+++ b/dom/bluetooth/moz.build
@@ -20,8 +20,16 @@ if CONFIG['MOZ_B2G_BT']:
     XPIDL_SOURCES += [
         'nsIDOMNavigatorBluetooth.idl',
         'nsIDOMBluetoothManager.idl',
         'nsIDOMBluetoothAdapter.idl',
         'nsIDOMBluetoothDevice.idl',
         'nsIDOMBluetoothDeviceEvent.idl'
     ]
 
+EXPORTS.mozilla.dom.bluetooth.ipc += [
+    'BluetoothMessageUtils.h',
+]
+
+EXPORTS.mozilla.dom.bluetooth += [
+    'BluetoothCommon.h',
+]
+
--- a/dom/browser-element/Makefile.in
+++ b/dom/browser-element/Makefile.in
@@ -11,26 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = dom_browserelement_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS = \
-  nsOpenWindowEventDetail.h \
-  nsAsyncScrollEventDetail.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla
-EXPORTS_mozilla = \
-  BrowserElementParent.h \
-  $(NULL)
-
 CPPSRCS = \
   nsOpenWindowEventDetail.cpp \
   nsAsyncScrollEventDetail.cpp \
   BrowserElementParent.cpp \
   $(NULL)
 
 EXTRA_COMPONENTS = \
   BrowserElementParent.js \
--- a/dom/browser-element/moz.build
+++ b/dom/browser-element/moz.build
@@ -10,8 +10,17 @@ XPIDL_SOURCES += [
     'nsIAsyncScrollEventDetail.idl',
     'nsIOpenWindowEventDetail.idl',
 ]
 
 XPIDL_MODULE = 'dom_browserelement'
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsAsyncScrollEventDetail.h',
+    'nsOpenWindowEventDetail.h',
+]
+
+EXPORTS.mozilla += [
+    'BrowserElementParent.h',
+]
+
--- a/dom/camera/Makefile.in
+++ b/dom/camera/Makefile.in
@@ -47,18 +47,11 @@ CPPSRCS += \
   $(NULL)
 else
 CPPSRCS += \
   FallbackCameraManager.cpp \
   FallbackCameraControl.cpp \
   $(NULL)
 endif
 
-EXPORTS = \
-  CameraCommon.h \
-  DOMCameraManager.h \
-  GonkNativeWindow.h \
-  GonkNativeWindowClient.h \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
--- a/dom/camera/moz.build
+++ b/dom/camera/moz.build
@@ -15,8 +15,15 @@ XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/base',
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
     '-I$(topsrcdir)/dom/media',
 ]
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'CameraCommon.h',
+    'DOMCameraManager.h',
+    'GonkNativeWindow.h',
+    'GonkNativeWindowClient.h',
+]
+
--- a/dom/cellbroadcast/src/Makefile.in
+++ b/dom/cellbroadcast/src/Makefile.in
@@ -11,19 +11,13 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = dom_cellbroadcast_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom
-
-EXPORTS_mozilla/dom = \
-  CellBroadcast.h \
-  $(NULL)
-
 CPPSRCS = \
   CellBroadcast.cpp \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
--- a/dom/cellbroadcast/src/moz.build
+++ b/dom/cellbroadcast/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 XPIDL_MODULE = 'dom_cellbroadcast'
 
+EXPORTS.mozilla.dom += [
+    'CellBroadcast.h',
+]
+
--- a/dom/devicestorage/Makefile.in
+++ b/dom/devicestorage/Makefile.in
@@ -11,34 +11,22 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = domdevicestorage_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/devicestorage
-
-EXPORTS_mozilla/dom/devicestorage = \
-  DeviceStorageRequestChild.h \
-  DeviceStorageRequestParent.h \
-  $(NULL)
-
 CPPSRCS		= \
 		nsDeviceStorage.cpp \
 		DeviceStorageRequestParent.cpp \
 		DeviceStorageRequestChild.cpp \
 		$(NULL)
 
-EXPORTS         = \
-		DeviceStorage.h \
-		nsDeviceStorage.h \
-		$(NULL)
-
 LOCAL_INCLUDES = \
 		-I$(topsrcdir)/dom/base \
 		-I$(topsrcdir)/dom/ipc \
 		-I$(topsrcdir)/content/base/src \
 		-I$(topsrcdir)/content/events/src \
 		$(NULL)
 
 include $(topsrcdir)/config/config.mk
--- a/dom/devicestorage/moz.build
+++ b/dom/devicestorage/moz.build
@@ -5,8 +5,18 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 TEST_DIRS += ['test', 'ipc']
 
 XPIDL_MODULE = 'dom_devicestorage'
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'DeviceStorage.h',
+    'nsDeviceStorage.h',
+]
+
+EXPORTS.mozilla.dom.devicestorage += [
+    'DeviceStorageRequestChild.h',
+    'DeviceStorageRequestParent.h',
+]
+
--- a/dom/encoding/Makefile.in
+++ b/dom/encoding/Makefile.in
@@ -9,25 +9,16 @@ VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= domencoding_s
 LIBXUL_LIBRARY	= 1
 FORCE_STATIC_LIB = 1
 
-EXPORTS_NAMESPACES = mozilla/dom
-EXPORTS_mozilla/dom = \
-  EncodingUtils.h \
-  TextDecoder.h \
-  TextDecoderBase.h \
-  TextEncoder.h \
-  TextEncoderBase.h \
-  $(NULL)
-
 CPPSRCS = \
 	EncodingUtils.cpp \
 	TextDecoder.cpp \
 	TextEncoder.cpp \
 	$(NULL)
 
 LOCAL_INCLUDES = \
 	-I$(topsrcdir)/intl/locale/src \
--- a/dom/encoding/moz.build
+++ b/dom/encoding/moz.build
@@ -3,8 +3,16 @@
 # 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/.
 
 TEST_DIRS += ['test']
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom += [
+    'EncodingUtils.h',
+    'TextDecoder.h',
+    'TextDecoderBase.h',
+    'TextEncoder.h',
+    'TextEncoderBase.h',
+]
+
--- a/dom/file/Makefile.in
+++ b/dom/file/Makefile.in
@@ -11,18 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = domfile_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/file
-
 CPPSRCS = \
   AsyncHelper.cpp \
   DOMFileHandle.cpp \
   DOMFileRequest.cpp \
   File.cpp \
   FileHandle.cpp \
   FileHelper.cpp \
   FileRequest.cpp \
@@ -33,30 +31,10 @@ CPPSRCS = \
   MetadataHelper.cpp \
   ArchiveEvent.cpp \
   ArchiveZipEvent.cpp \
   ArchiveZipFile.cpp \
   ArchiveReader.cpp \
   ArchiveRequest.cpp \
   $(NULL)
 
-EXPORTS = \
-  nsIFileStorage.h \
-  $(NULL)
-
-EXPORTS_mozilla/dom/file = \
-  DOMFileHandle.h \
-  DOMFileRequest.h \
-  File.h \
-  FileCommon.h \
-  FileHandle.h \
-  FileHelper.h \
-  FileService.h \
-  LockedFile.h \
-  ArchiveEvent.h \
-  ArchiveZipEvent.h \
-  ArchiveZipFile.h \
-  ArchiveReader.h \
-  ArchiveRequest.h \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/dom/file/moz.build
+++ b/dom/file/moz.build
@@ -16,8 +16,28 @@ XPIDL_MODULE = 'dom_file'
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/base',
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
 ]
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsIFileStorage.h',
+]
+
+EXPORTS.mozilla.dom.file += [
+    'ArchiveEvent.h',
+    'ArchiveReader.h',
+    'ArchiveRequest.h',
+    'ArchiveZipEvent.h',
+    'ArchiveZipFile.h',
+    'DOMFileHandle.h',
+    'DOMFileRequest.h',
+    'File.h',
+    'FileCommon.h',
+    'FileHandle.h',
+    'FileHelper.h',
+    'FileService.h',
+    'LockedFile.h',
+]
+
--- a/dom/icc/src/Makefile.in
+++ b/dom/icc/src/Makefile.in
@@ -11,22 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = dom_icc_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/icc
-
-EXPORTS_mozilla/dom/icc = \
-  StkCommandEvent.h \
-  $(NULL)
-
 CPPSRCS = \
   IccManager.cpp \
   StkCommandEvent.cpp \
   $(NULL)
 
 LOCAL_INCLUDES = \
   -I$(topsrcdir)/content/events/src \
   $(NULL)
--- a/dom/icc/src/moz.build
+++ b/dom/icc/src/moz.build
@@ -1,6 +1,10 @@
 # -*- 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.mozilla.dom.icc += [
+    'StkCommandEvent.h',
+]
+
--- a/dom/indexedDB/Makefile.in
+++ b/dom/indexedDB/Makefile.in
@@ -11,18 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = dom_indexeddb_s
 LIBXUL_LIBRARY = 1
 FORCE_STATIC_LIB = 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS := 1
 endif # !_MSC_VER
 
-EXPORTS_NAMESPACES = mozilla/dom/indexedDB
-
 CPPSRCS = \
   AsyncConnectionHelper.cpp \
   CheckPermissionsHelper.cpp \
   Client.cpp \
   DatabaseInfo.cpp \
   FileInfo.cpp \
   FileManager.cpp \
   IDBCursor.cpp \
@@ -38,38 +36,16 @@ CPPSRCS = \
   IDBWrapperCache.cpp \
   IndexedDatabaseManager.cpp \
   Key.cpp \
   KeyPath.cpp \
   OpenDatabaseHelper.cpp \
   TransactionThreadPool.cpp \
   $(NULL)
 
-EXPORTS_mozilla/dom/indexedDB = \
-  Client.h \
-  DatabaseInfo.h \
-  FileManager.h \
-  FileInfo.h \
-  IDBCursor.h \
-  IDBDatabase.h \
-  IDBEvents.h \
-  IDBFactory.h \
-  IDBFileHandle.h \
-  IDBIndex.h \
-  IDBKeyRange.h \
-  IDBObjectStore.h \
-  IDBRequest.h \
-  IDBTransaction.h \
-  IDBWrapperCache.h \
-  IndexedDatabase.h \
-  IndexedDatabaseManager.h \
-  Key.h \
-  KeyPath.h \
-  $(NULL)
-
 LOCAL_INCLUDES = \
   -I$(topsrcdir)/caps/include \
   -I$(topsrcdir)/content/base/src \
   -I$(topsrcdir)/content/events/src \
   -I$(topsrcdir)/db/sqlite3/src \
   -I$(topsrcdir)/dom/base \
   -I$(topsrcdir)/dom/src/storage \
   -I$(topsrcdir)/dom/quota \
--- a/dom/indexedDB/ipc/Makefile.in
+++ b/dom/indexedDB/ipc/Makefile.in
@@ -10,25 +10,21 @@ VPATH = @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = dom_indexeddb_ipc_s
 LIBXUL_LIBRARY = 1
 FORCE_STATIC_LIB = 1
 
-EXPORTS_NAMESPACES = mozilla/dom/indexedDB
-
 CPPSRCS += \
   IndexedDBChild.cpp \
   IndexedDBParent.cpp \
   $(NULL)
 
-EXPORTS_mozilla/dom/indexedDB = SerializationHelpers.h
-
 LOCAL_INCLUDES += \
   -I$(topsrcdir)/dom/indexedDB \
   -I$(topsrcdir)/content/events/src \
   $(NULL)
 
 DEFINES += -D_IMPL_NS_LAYOUT
 
 MOCHITEST_FILES = test_ipc.html
--- a/dom/indexedDB/ipc/moz.build
+++ b/dom/indexedDB/ipc/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom.indexedDB += [
+    'SerializationHelpers.h',
+]
+
--- a/dom/indexedDB/moz.build
+++ b/dom/indexedDB/moz.build
@@ -26,8 +26,30 @@ XPIDL_MODULE = 'dom_indexeddb'
 
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
 ]
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom.indexedDB += [
+    'Client.h',
+    'DatabaseInfo.h',
+    'FileInfo.h',
+    'FileManager.h',
+    'IDBCursor.h',
+    'IDBDatabase.h',
+    'IDBEvents.h',
+    'IDBFactory.h',
+    'IDBFileHandle.h',
+    'IDBIndex.h',
+    'IDBKeyRange.h',
+    'IDBObjectStore.h',
+    'IDBRequest.h',
+    'IDBTransaction.h',
+    'IDBWrapperCache.h',
+    'IndexedDatabase.h',
+    'IndexedDatabaseManager.h',
+    'Key.h',
+    'KeyPath.h',
+]
+
--- a/dom/interfaces/storage/Makefile.in
+++ b/dom/interfaces/storage/Makefile.in
@@ -6,14 +6,10 @@
 DEPTH          = @DEPTH@
 topsrcdir      = @top_srcdir@
 srcdir         = @srcdir@
 VPATH          = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 
-EXPORTS =                                      \
-       nsPIDOMStorage.h                        \
-       $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/dom/interfaces/storage/moz.build
+++ b/dom/interfaces/storage/moz.build
@@ -16,8 +16,12 @@ XPIDL_MODULE = 'dom_storage'
 
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
 ]
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsPIDOMStorage.h',
+]
+
--- a/dom/ipc/Makefile.in
+++ b/dom/ipc/Makefile.in
@@ -10,51 +10,16 @@ VPATH = @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = domipc_s
 LIBXUL_LIBRARY = 1
 FORCE_STATIC_LIB = 1
 EXPORT_LIBRARY = 1
 FAIL_ON_WARNINGS := 1
 
-EXPORTS = \
-  nsICachedFileDescriptorListener.h \
-  PCOMContentPermissionRequestChild.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = \
-  mozilla \
-  mozilla/dom \
-  mozilla/dom/ipc \
-  $(NULL)
-
-EXPORTS_mozilla = \
-  AppProcessChecker.h \
-  $(NULL)
-
-EXPORTS_mozilla/dom = \
-  ContentChild.h \
-  ContentParent.h \
-  ContentProcess.h \
-  CrashReporterChild.h \
-  CrashReporterParent.h \
-  PermissionMessageUtils.h \
-  StructuredCloneUtils.h \
-  TabParent.h \
-  TabChild.h \
-  TabContext.h \
-  TabMessageUtils.h \
-  $(NULL)
-
-EXPORTS_mozilla/dom/ipc = \
-  Blob.h \
-  ProcessPriorityManager.h \
-  nsIRemoteBlob.h \
-  $(NULL)
-
 CPPSRCS = \
   AppProcessChecker.cpp \
   Blob.cpp \
   ContentProcess.cpp \
   ContentParent.cpp \
   ContentChild.cpp \
   CrashReporterParent.cpp \
   CrashReporterChild.cpp \
--- a/dom/ipc/moz.build
+++ b/dom/ipc/moz.build
@@ -4,8 +4,37 @@
 # 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/.
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'cocoa':
     TEST_DIRS += ['tests']
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'PCOMContentPermissionRequestChild.h',
+    'nsICachedFileDescriptorListener.h',
+]
+
+EXPORTS.mozilla.dom.ipc += [
+    'Blob.h',
+    'ProcessPriorityManager.h',
+    'nsIRemoteBlob.h',
+]
+
+EXPORTS.mozilla.dom += [
+    'ContentChild.h',
+    'ContentParent.h',
+    'ContentProcess.h',
+    'CrashReporterChild.h',
+    'CrashReporterParent.h',
+    'PermissionMessageUtils.h',
+    'StructuredCloneUtils.h',
+    'TabChild.h',
+    'TabContext.h',
+    'TabMessageUtils.h',
+    'TabParent.h',
+]
+
+EXPORTS.mozilla += [
+    'AppProcessChecker.h',
+]
+
--- a/dom/media/Makefile.in
+++ b/dom/media/Makefile.in
@@ -17,22 +17,16 @@ FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
 EXTRA_COMPONENTS = \
   PeerConnection.js \
   PeerConnection.manifest \
   $(NULL)
 
-EXPORTS_NAMESPACES = mozilla
-
-EXPORTS_mozilla = \
-  MediaManager.h \
-  $(NULL)
-
 CPPSRCS = \
   MediaManager.cpp \
   $(NULL)
 
 ifdef MOZ_WEBRTC
 LOCAL_INCLUDES += \
   -I$(topsrcdir)/media/webrtc/trunk/webrtc \
   -I$(topsrcdir)/media/webrtc/signaling/src/common \
--- a/dom/media/moz.build
+++ b/dom/media/moz.build
@@ -15,8 +15,12 @@ XPIDL_SOURCES += [
     'nsIDOMRTCPeerConnection.idl',
     'nsIMediaManager.idl',
 ]
 
 XPIDL_MODULE = 'dom_media'
 
 MODULE = 'dom'
 
+EXPORTS.mozilla += [
+    'MediaManager.h',
+]
+
--- a/dom/mobilemessage/src/Makefile.in
+++ b/dom/mobilemessage/src/Makefile.in
@@ -22,40 +22,16 @@ endif
 
 LIBRARY_NAME     = dom_mobilemessage_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = \
-  mozilla/dom \
-  mozilla/dom/mobilemessage \
-  $(NULL)
-
-EXPORTS_mozilla/dom = \
-  SmsManager.h \
-  MobileMessageManager.h \
-  SmsMessage.h \
-  MmsMessage.h \
-  SmsSegmentInfo.h \
-  SmsFilter.h \
-  $(NULL)
-
-EXPORTS_mozilla/dom/mobilemessage = \
-  SmsChild.h \
-  SmsParent.h \
-  MobileMessageService.h \
-  SmsServicesFactory.h \
-  Constants.h \
-  Types.h \
-  MobileMessageCallback.h \
-  $(NULL)
-
 CPPSRCS = \
   MobileMessageCursorCallback.cpp \
   MobileMessageThread.cpp \
   SmsManager.cpp \
   MobileMessageManager.cpp \
   SmsService.cpp \
   MobileMessageService.cpp \
   SmsIPCService.cpp \
@@ -85,21 +61,16 @@ LOCAL_INCLUDES += \
   -I$(topsrcdir)/dom/system/gonk \
   $(NULL)
 
 EXTRA_COMPONENTS = \
   ril/MobileMessageDatabaseService.js \
   ril/MobileMessageDatabaseService.manifest \
   $(NULL)
 else
-EXPORTS_mozilla/dom/mobilemessage += \
-  MobileMessageDatabaseService.h \
-  MmsService.h \
-  $(NULL)
-
 CPPSRCS += \
   MobileMessageDatabaseService.cpp \
   MmsService.cpp \
   $(NULL)
 endif
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
--- a/dom/mobilemessage/src/moz.build
+++ b/dom/mobilemessage/src/moz.build
@@ -1,6 +1,31 @@
 # -*- 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.mozilla.dom.mobilemessage += [
+    'SmsChild.h',
+    'SmsParent.h',
+    'MobileMessageService.h',
+    'SmsServicesFactory.h',
+    'Constants.h',
+    'Types.h',
+    'MobileMessageCallback.h',
+]
+
+if not CONFIG['MOZ_B2G_RIL']:
+    EXPORTS.mozilla.dom.mobilemessage += [
+        'MobileMessageDatabaseService.h',
+        'MmsService.h',
+    ]
+
+EXPORTS.mozilla.dom += [
+    'SmsManager.h',
+    'MobileMessageManager.h',
+    'SmsMessage.h',
+    'MmsMessage.h',
+    'SmsSegmentInfo.h',
+    'SmsFilter.h',
+]
+
--- a/dom/network/src/Makefile.in
+++ b/dom/network/src/Makefile.in
@@ -31,26 +31,16 @@ EXTRA_COMPONENTS += \
 EXTRA_JS_MODULES =   \
   NetworkStatsService.jsm \
   NetworkStatsDB.jsm \
   $(NULL)
 endif
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/network
-
-EXPORTS_mozilla/dom/network = \
-  Utils.h \
-  Types.h \
-  Constants.h \
-  TCPSocketChild.h \
-  TCPSocketParent.h \
-  $(NULL)
-
 CPPSRCS = \
   Connection.cpp \
   Utils.cpp \
   TCPSocketParent.cpp \
   TCPSocketChild.cpp \
   $(NULL)
 
 ifdef MOZ_B2G_RIL
--- a/dom/network/src/moz.build
+++ b/dom/network/src/moz.build
@@ -1,6 +1,14 @@
 # -*- 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.mozilla.dom.network += [
+    'Constants.h',
+    'TCPSocketChild.h',
+    'TCPSocketParent.h',
+    'Types.h',
+    'Utils.h',
+]
+
--- a/dom/plugins/base/Makefile.in
+++ b/dom/plugins/base/Makefile.in
@@ -11,40 +11,16 @@ VPATH		= @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkplugin
 EXPORT_LIBRARY = 1
 IS_COMPONENT    = 1
 MODULE_NAME	= nsPluginModule
 LIBXUL_LIBRARY = 1
 
-EXPORTS_NAMESPACES = mozilla
-
-EXPORTS = \
-  npapi.h \
-  npfunctions.h \
-  nptypes.h \
-  npruntime.h \
-  nsPluginLogging.h \
-  nsPluginNativeWindow.h \
-  nsPluginsCID.h \
-  nsNPAPIPluginInstance.h \
-  nsPluginsDir.h \
-  nsPluginTags.h \
-  nsPluginDirServiceProvider.h \
-  nsPluginHost.h \
-  nsJSNPRuntime.h \
-  nsPluginInstanceOwner.h \
-  nsPluginPlayPreviewInfo.h \
-  $(NULL)
-
-EXPORTS_mozilla = \
-  PluginPRLibrary.h \
-  $(NULL)
-
 CPPSRCS		= \
 		nsNPAPIPlugin.cpp \
 		nsNPAPIPluginInstance.cpp \
 		nsNPAPIPluginStreamListener.cpp \
 		nsPluginStreamListenerPeer.cpp \
 		nsPluginHost.cpp \
 		nsPluginModule.cpp \
 		nsJSNPRuntime.cpp \
--- a/dom/plugins/base/android/Makefile.in
+++ b/dom/plugins/base/android/Makefile.in
@@ -14,21 +14,16 @@ LIBRARY_NAME	= gkpluginandroid_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 EXPORT_LIBRARY = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
-EXPORTS = \
-  ANPKeyCodes.h \
-  android_npapi.h \
-  $(NULL)
-
 CPPSRCS += ANPAudio.cpp    \
            ANPEvent.cpp    \
            ANPMatrix.cpp   \
            ANPSystem.cpp   \
            ANPWindow.cpp   \
            ANPBitmap.cpp   \
            ANPLog.cpp      \
            ANPNativeWindow.cpp \
--- a/dom/plugins/base/android/moz.build
+++ b/dom/plugins/base/android/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'plugin'
 
+EXPORTS += [
+    'ANPKeyCodes.h',
+    'android_npapi.h',
+]
+
--- a/dom/plugins/base/moz.build
+++ b/dom/plugins/base/moz.build
@@ -15,8 +15,30 @@ XPIDL_SOURCES += [
     'nsIPluginInstanceOwner.idl',
     'nsIPluginTag.idl',
     'nsIPluginTagInfo.idl',
     'nspluginroot.idl',
 ]
 
 MODULE = 'plugin'
 
+EXPORTS += [
+    'npapi.h',
+    'npfunctions.h',
+    'npruntime.h',
+    'nptypes.h',
+    'nsJSNPRuntime.h',
+    'nsNPAPIPluginInstance.h',
+    'nsPluginDirServiceProvider.h',
+    'nsPluginHost.h',
+    'nsPluginInstanceOwner.h',
+    'nsPluginLogging.h',
+    'nsPluginNativeWindow.h',
+    'nsPluginPlayPreviewInfo.h',
+    'nsPluginTags.h',
+    'nsPluginsCID.h',
+    'nsPluginsDir.h',
+]
+
+EXPORTS.mozilla += [
+    'PluginPRLibrary.h',
+]
+
--- a/dom/plugins/ipc/Makefile.in
+++ b/dom/plugins/ipc/Makefile.in
@@ -6,54 +6,16 @@ DEPTH = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 FAIL_ON_WARNINGS := 1
 
-EXPORTS_NAMESPACES = mozilla
-
-EXPORTS_mozilla = \
-  PluginLibrary.h \
-  $(NULL)
-
-EXPORTS_NAMESPACES = mozilla mozilla/plugins
-
-EXPORTS_mozilla/plugins = \
-  BrowserStreamChild.h \
-  BrowserStreamParent.h \
-  ChildAsyncCall.h \
-  ChildTimer.h \
-  NPEventOSX.h \
-  NPEventWindows.h \
-  NPEventUnix.h \
-  NPEventAndroid.h \
-  PluginIdentifierChild.h \
-  PluginIdentifierParent.h \
-  PluginInstanceChild.h \
-  PluginInstanceParent.h \
-  PluginMessageUtils.h \
-  PluginModuleChild.h \
-  PluginModuleParent.h \
-  PluginProcessParent.h \
-  PluginScriptableObjectChild.h \
-  PluginScriptableObjectParent.h \
-  PluginScriptableObjectUtils.h \
-  PluginScriptableObjectUtils-inl.h \
-  PluginUtilsOSX.h \
-  AStream.h \
-  PluginStreamChild.h \
-  PluginStreamParent.h \
-  PluginProcessChild.h \
-  StreamNotifyChild.h \
-  StreamNotifyParent.h \
-  $(NULL)
-
 LIBRARY_NAME     = domplugins_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 EXPORT_LIBRARY = 1
 
 ifeq ($(MOZ_ENABLE_QT),1)
 MOCSRCS = \
   moc_NestedLoopTimer.cpp \
@@ -92,31 +54,23 @@ CPPSRCS += \
   PluginSurfaceParent.cpp \
   MiniShmParent.cpp \
   PluginHangUIParent.cpp \
   $(NULL)
 
 DEFINES += \
   -DMOZ_HANGUI_PROCESS_NAME=\"plugin-hang-ui$(BIN_SUFFIX)\" \
   $(NULL)
-
-EXPORTS_mozilla/plugins += \
-  PluginSurfaceParent.h \
-  $(NULL)
 endif
 
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 CMMSRCS   += \
     PluginUtilsOSX.mm \
     PluginInterposeOSX.mm \
     $(NULL)
-
-EXPORTS_mozilla/plugins += \
-    PluginInterposeOSX.h \
-    $(NULL)
 endif
 
 LOCAL_INCLUDES = \
   -I$(srcdir)/../base \
   -I$(topsrcdir)/xpcom/base/ \
   $(NULL)
 
 ifeq (WINNT,$(OS_ARCH))
--- a/dom/plugins/ipc/moz.build
+++ b/dom/plugins/ipc/moz.build
@@ -4,8 +4,51 @@
 # 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/.
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     DIRS += ['interpose']
 
 MODULE = 'dom'
 
+EXPORTS.mozilla += [
+    'PluginLibrary.h',
+]
+
+EXPORTS.mozilla.plugins += [
+    'AStream.h',
+    'BrowserStreamChild.h',
+    'BrowserStreamParent.h',
+    'ChildAsyncCall.h',
+    'ChildTimer.h',
+    'NPEventAndroid.h',
+    'NPEventOSX.h',
+    'NPEventUnix.h',
+    'NPEventWindows.h',
+    'PluginIdentifierChild.h',
+    'PluginIdentifierParent.h',
+    'PluginInstanceChild.h',
+    'PluginInstanceParent.h',
+    'PluginMessageUtils.h',
+    'PluginModuleChild.h',
+    'PluginModuleParent.h',
+    'PluginProcessChild.h',
+    'PluginProcessParent.h',
+    'PluginScriptableObjectChild.h',
+    'PluginScriptableObjectParent.h',
+    'PluginScriptableObjectUtils-inl.h',
+    'PluginScriptableObjectUtils.h',
+    'PluginStreamChild.h',
+    'PluginStreamParent.h',
+    'PluginUtilsOSX.h',
+    'StreamNotifyChild.h',
+    'StreamNotifyParent.h',
+]
+
+if CONFIG['OS_ARCH'] == 'WINNT':
+    EXPORTS.mozilla.plugins += [
+        'PluginSurfaceParent.h',
+    ]
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+    EXPORTS.mozilla.plugins += [
+        'PluginInterposeOSX.h',
+    ]
--- a/dom/power/Makefile.in
+++ b/dom/power/Makefile.in
@@ -13,23 +13,16 @@ LIBRARY_NAME     = dom_power_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS := 1
 endif # !_MSC_VER
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/power
-
-EXPORTS_mozilla/dom/power = \
-  PowerManagerService.h \
-  Types.h \
-  $(NULL)
-
 CPPSRCS = \
   PowerManager.cpp \
   PowerManagerService.cpp \
   WakeLock.cpp \
   $(NULL)
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
--- a/dom/power/moz.build
+++ b/dom/power/moz.build
@@ -11,8 +11,13 @@ XPIDL_SOURCES += [
     'nsIDOMPowerManager.idl',
     'nsIDOMWakeLock.idl',
     'nsIDOMWakeLockListener.idl',
     'nsIPowerManagerService.idl',
 ]
 
 XPIDL_MODULE = 'dom_power'
 
+EXPORTS.mozilla.dom.power += [
+    'PowerManagerService.h',
+    'Types.h',
+]
+
--- a/dom/quota/Makefile.in
+++ b/dom/quota/Makefile.in
@@ -11,42 +11,22 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = domquota_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/quota
-
 CPPSRCS = \
   CheckQuotaHelper.cpp \
   FileStreams.cpp \
   QuotaManager.cpp \
   QuotaObject.cpp \
   $(NULL)
 
-EXPORTS = \
-  nsIOfflineStorage.h \
-  $(NULL)
-
-EXPORTS_mozilla/dom/quota = \
-  AcquireListener.h \
-  ArrayCluster.h \
-  Client.h \
-  FileStreams.h \
-  OriginOrPatternString.h \
-  QuotaCommon.h \
-  QuotaManager.h \
-  QuotaObject.h \
-  StoragePrivilege.h \
-  UsageRunnable.h \
-  Utilities.h \
-  $(NULL)
-
 LOCAL_INCLUDES = \
   -I$(topsrcdir)/caps/include \
   $(NULL)
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
--- a/dom/quota/moz.build
+++ b/dom/quota/moz.build
@@ -9,8 +9,26 @@ XPIDL_SOURCES += [
     'nsIQuotaRequest.idl',
     'nsIUsageCallback.idl',
 ]
 
 XPIDL_MODULE = 'dom_quota'
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsIOfflineStorage.h',
+]
+
+EXPORTS.mozilla.dom.quota += [
+    'AcquireListener.h',
+    'ArrayCluster.h',
+    'Client.h',
+    'FileStreams.h',
+    'OriginOrPatternString.h',
+    'QuotaCommon.h',
+    'QuotaManager.h',
+    'QuotaObject.h',
+    'StoragePrivilege.h',
+    'UsageRunnable.h',
+    'Utilities.h',
+]
+
--- a/dom/src/geolocation/Makefile.in
+++ b/dom/src/geolocation/Makefile.in
@@ -23,18 +23,16 @@ CPPSRCS		= \
 
 LOCAL_INCLUDES = \
 		-I$(topsrcdir)/dom/base \
 		-I$(topsrcdir)/dom/ipc \
 		-I$(topsrcdir)/content/base/src \
 		-I$(topsrcdir)/content/events/src \
 		$(NULL)
 
-EXPORTS        = nsGeoPosition.h
-
 ifdef MOZ_MAEMO_LIBLOCATION
 LOCAL_INCLUDES  += $(MOZ_PLATFORM_MAEMO_CFLAGS) \
                    -I$(topsrcdir)/dom/system/unix \
                    $(NULL)
 endif
 ifdef MOZ_ENABLE_QTMOBILITY
 LOCAL_INCLUDES  += $(MOZ_QT_CFLAGS) \
                    -I$(topsrcdir)/dom/system/unix \
@@ -44,15 +42,13 @@ endif
 ifeq ($(MOZ_WIDGET_TOOLKIT),android)
 LOCAL_INCLUDES  += -I$(topsrcdir)/dom/system/android
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),gonk)
 LOCAL_INCLUDES  += -I$(topsrcdir)/dom/system/gonk
 endif
 
-EXPORTS         += nsGeoPositionIPCSerialiser.h
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 DEFINES += -D_IMPL_NS_LAYOUT
--- a/dom/src/geolocation/moz.build
+++ b/dom/src/geolocation/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsGeoPosition.h',
+    'nsGeoPositionIPCSerialiser.h',
+]
+
--- a/dom/src/json/Makefile.in
+++ b/dom/src/json/Makefile.in
@@ -14,19 +14,16 @@ include $(DEPTH)/config/autoconf.mk
 LIBRARY_NAME   = json_s
 LIBXUL_LIBRARY = 1
 
 
 CPPSRCS =                      \
        nsJSON.cpp              \
        $(NULL)
 
-EXPORTS = nsJSON.h \
-          $(NULL)
-
 FORCE_STATIC_LIB = 1
 
 LOCAL_INCLUDES = \
 		-I$(srcdir)/../base \
 		-I$(topsrcdir)/content/events/src
 
 DEFINES += -D_IMPL_NS_LAYOUT
 
--- a/dom/src/json/moz.build
+++ b/dom/src/json/moz.build
@@ -3,8 +3,12 @@
 # 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/.
 
 TEST_DIRS += ['test']
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsJSON.h',
+]
+
--- a/dom/src/jsurl/Makefile.in
+++ b/dom/src/jsurl/Makefile.in
@@ -13,18 +13,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= jsurl_s
 FORCE_STATIC_LIB = 1
 MODULE_NAME	= javascript__protocol
 LIBXUL_LIBRARY	= 1
 
 CPPSRCS		= nsJSProtocolHandler.cpp
 
-EXPORTS		= $(srcdir)/nsJSProtocolHandler.h
-
 LOCAL_INCLUDES += \
 		-I$(srcdir) \
 		-I$(topsrcdir)/dom/base \
 		-I$(topsrcdir)/netwerk/base/src \
 
 ifdef BUILD_DEBUG_GC
 DEFINES		+= -DDEBUG_GC
 endif
--- a/dom/src/jsurl/moz.build
+++ b/dom/src/jsurl/moz.build
@@ -3,8 +3,12 @@
 # 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/.
 
 TEST_DIRS += ['test']
 
 MODULE = 'jsurl'
 
+EXPORTS += [
+    'nsJSProtocolHandler.h',
+]
+
--- a/dom/src/notification/Makefile.in
+++ b/dom/src/notification/Makefile.in
@@ -16,25 +16,16 @@ LIBXUL_LIBRARY = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 CPPSRCS = \
   Notification.cpp \
   DesktopNotification.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES = \
-  mozilla/dom \
-  $(NULL)
-
-EXPORTS_mozilla/dom = \
-  Notification.h \
-  DesktopNotification.h \
-  $(NULL)
-
 LOCAL_INCLUDES = \
   -I$(topsrcdir)/dom/base \
   -I$(topsrcdir)/dom/ipc \
   -I$(topsrcdir)/content/base/src \
   -I$(topsrcdir)/content/events/src \
   $(NULL)
 
 include $(topsrcdir)/config/config.mk
--- a/dom/src/notification/moz.build
+++ b/dom/src/notification/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom += [
+    'Notification.h',
+    'DesktopNotification.h',
+]
+
--- a/dom/src/storage/Makefile.in
+++ b/dom/src/storage/Makefile.in
@@ -18,19 +18,16 @@ CPPSRCS = \
        DOMStorage.cpp \
        DOMStorageCache.cpp \
        DOMStorageDBThread.cpp \
        DOMStorageObserver.cpp \
        DOMStorageManager.cpp \
        DOMStorageIPC.cpp \
        $(NULL)
 
-EXPORTS_NAMESPACES = mozilla/dom
-EXPORTS_mozilla/dom = DOMStorageIPC.h
-
 # we don't want the shared lib, but we want to force the creation of a static lib.
 FORCE_STATIC_LIB = 1
 
 LOCAL_INCLUDES = \
                 -I$(topsrcdir)/dom/base \
 		-I$(topsrcdir)/content/events/src
 
 DEFINES += -D_IMPL_NS_LAYOUT
--- a/dom/src/storage/moz.build
+++ b/dom/src/storage/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom += [
+    'DOMStorageIPC.h',
+]
+
--- a/dom/system/Makefile.in
+++ b/dom/system/Makefile.in
@@ -44,36 +44,20 @@ endif
 
 ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
 EXTRA_COMPONENTS = \
   NetworkGeolocationProvider.js \
   NetworkGeolocationProvider.manifest \
   $(NULL)
 endif
 
-EXPORTS_NAMESPACES = mozilla
-
-EXPORTS     = \
-  nsDeviceSensors.h \
-  $(NULL)
-
-EXPORTS_mozilla = \
-  OSFileConstants.h \
-  $(NULL)
-
 LOCAL_INCLUDES += \
   -I$(topsrcdir)/content/events/src \
   -I$(topsrcdir)/js/xpconnect/loader \
   $(NULL)
-ifdef MOZ_GAMEPAD
-EXPORTS_NAMESPACES += mozilla/dom
-EXPORTS_mozilla/dom = \
-  GamepadService.h \
-  $(NULL)
-endif
 
 include $(topsrcdir)/config/config.mk
 
 # we don't want the shared lib, but we want to force the creation of a static lib.
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 EXPORT_LIBRARY = 1
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
--- a/dom/system/gonk/Makefile.in
+++ b/dom/system/gonk/Makefile.in
@@ -54,20 +54,16 @@ CPPSRCS += \
   nsVolumeStat.cpp \
   TimeZoneSettingObserver.cpp \
   Volume.cpp \
   VolumeCommand.cpp \
   VolumeManager.cpp \
   VolumeServiceIOThread.cpp \
   VolumeServiceTest.cpp \
   $(NULL)
-EXPORTS = \
-  GonkGPSGeolocationProvider.h \
-  nsVolume.h \
-  $(NULL)
 endif
 
 EXTRA_COMPONENTS = \
   NetworkManager.manifest \
   NetworkManager.js \
   RadioInterfaceLayer.manifest \
   RadioInterfaceLayer.js \
   RILContentHelper.js \
--- a/dom/system/gonk/moz.build
+++ b/dom/system/gonk/moz.build
@@ -30,8 +30,13 @@ XPIDL_SOURCES += [
 XPIDL_MODULE = 'dom_system_gonk'
 
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/network/interfaces',
 ]
 
 MODULE = 'dom'
 
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
+    EXPORTS += [
+        'GonkGPSGeolocationProvider.h',
+        'nsVolume.h',
+    ]
--- a/dom/system/moz.build
+++ b/dom/system/moz.build
@@ -21,8 +21,21 @@ TEST_DIRS += ['tests']
 XPIDL_SOURCES += [
     'nsIOSFileConstantsService.idl',
 ]
 
 XPIDL_MODULE = 'dom_system'
 
 MODULE = 'dom'
 
+EXPORTS += [
+    'nsDeviceSensors.h',
+]
+
+if CONFIG['MOZ_GAMEPAD']:
+    EXPORTS.mozilla.dom = [
+        'GamepadService.h',
+    ]
+
+EXPORTS.mozilla += [
+    'OSFileConstants.h',
+]
+
--- a/dom/time/Makefile.in
+++ b/dom/time/Makefile.in
@@ -11,26 +11,18 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = dom_time_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom/time
-
 CPPSRCS = \
   TimeManager.cpp \
   TimeService.cpp \
   TimeChangeObserver.cpp \
   DateCacheCleaner.cpp \
   $(NULL)
 
-EXPORTS_mozilla/dom/time = \
-  TimeService.h \
-  TimeChangeObserver.h \
-  DateCacheCleaner.h \
-  $(NULL)
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
--- a/dom/time/moz.build
+++ b/dom/time/moz.build
@@ -9,8 +9,14 @@ XPIDL_SOURCES += [
     'nsIDOMTimeManager.idl',
     'nsITimeService.idl',
 ]
 
 XPIDL_MODULE = 'dom_time'
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom.time += [
+    'DateCacheCleaner.h',
+    'TimeChangeObserver.h',
+    'TimeService.h',
+]
+
--- a/dom/voicemail/Makefile.in
+++ b/dom/voicemail/Makefile.in
@@ -11,19 +11,14 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = domvoicemail_s
 LIBXUL_LIBRARY   = 1
 FORCE_STATIC_LIB = 1
 FAIL_ON_WARNINGS := 1
 
 include $(topsrcdir)/dom/dom-config.mk
 
-EXPORTS_NAMESPACES = mozilla/dom
-EXPORTS_mozilla/dom = \
-  Voicemail.h \
-  $(NULL)
-
 CPPSRCS = \
   Voicemail.cpp \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
--- a/dom/voicemail/moz.build
+++ b/dom/voicemail/moz.build
@@ -17,8 +17,12 @@ XPIDL_MODULE = 'dom_voicemail'
 XPIDL_FLAGS += [
     '-I$(topsrcdir)/dom/base',
     '-I$(topsrcdir)/dom/interfaces/base',
     '-I$(topsrcdir)/dom/interfaces/events',
 ]
 
 MODULE = 'dom'
 
+EXPORTS.mozilla.dom += [
+    'Voicemail.h',
+]
+
--- a/dom/workers/Makefile.in
+++ b/dom/workers/Makefile.in
@@ -35,39 +35,16 @@ CPPSRCS = \
   Worker.cpp \
   WorkerPrivate.cpp \
   WorkerScope.cpp \
   XMLHttpRequestEventTarget.cpp \
   XMLHttpRequestUpload.cpp \
   XMLHttpRequest.cpp \
   $(NULL)
 
-EXPORTS_NAMESPACES = \
-  mozilla/dom/workers \
-  mozilla/dom/workers/bindings \
-  $(NULL)
-
-# Public stuff.
-EXPORTS_mozilla/dom/workers = Workers.h
-
-# Stuff needed for the bindings, not really public though.
-EXPORTS_mozilla/dom/workers/bindings = \
-  DOMBindingBase.h \
-  EventListenerManager.h \
-  EventTarget.h \
-  FileReaderSync.h \
-  URL.h \
-  TextDecoder.h \
-  TextEncoder.h \
-  WorkerFeature.h \
-  XMLHttpRequestEventTarget.h \
-  XMLHttpRequestUpload.h \
-  XMLHttpRequest.h \
-  $(NULL)
-
 LOCAL_INCLUDES = \
   -I$(topsrcdir)/content/base/src \
   -I$(topsrcdir)/content/events/src \
   -I$(topsrcdir)/dom/base \
   -I$(topsrcdir)/dom/system \
   -I$(topsrcdir)/xpcom/build \
   $(NULL)
 
--- a/dom/workers/moz.build
+++ b/dom/workers/moz.build
@@ -3,8 +3,28 @@
 # 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/.
 
 TEST_DIRS += ['test']
 
 MODULE = 'dom'
 
+# Public stuff.
+EXPORTS.mozilla.dom.workers += [
+    'Workers.h',
+]
+
+# Stuff needed for the bindings, not really public though.
+EXPORTS.mozilla.dom.workers.bindings += [
+    'DOMBindingBase.h',
+    'EventListenerManager.h',
+    'EventTarget.h',
+    'FileReaderSync.h',
+    'TextDecoder.h',
+    'TextEncoder.h',
+    'URL.h',
+    'WorkerFeature.h',
+    'XMLHttpRequest.h',
+    'XMLHttpRequestEventTarget.h',
+    'XMLHttpRequestUpload.h',
+]
+
--- a/editor/public/Makefile.in
+++ b/editor/public/Makefile.in
@@ -5,14 +5,10 @@
 
 DEPTH           := @DEPTH@
 topsrcdir       := @top_srcdir@
 srcdir          := @srcdir@
 VPATH           := @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS         := \
-                nsEditorCID.h \
-                $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/editor/public/moz.build
+++ b/editor/public/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'editor'
 
+EXPORTS += [
+    'nsEditorCID.h',
+]
+
--- a/editor/txmgr/public/Makefile.in
+++ b/editor/txmgr/public/Makefile.in
@@ -5,14 +5,10 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-EXPORTS		= \
-		nsTransactionManagerCID.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/editor/txmgr/public/moz.build
+++ b/editor/txmgr/public/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'txmgr'
 
+EXPORTS += [
+    'nsTransactionManagerCID.h',
+]
+
--- a/editor/txtsvc/public/Makefile.in
+++ b/editor/txtsvc/public/Makefile.in
@@ -6,17 +6,10 @@
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 
-EXPORTS		= \
-		nsISpellChecker.h \
-		nsITextService.h \
-		nsITextServicesDocument.h \
-		nsTextServicesCID.h \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/editor/txtsvc/public/moz.build
+++ b/editor/txtsvc/public/moz.build
@@ -6,8 +6,15 @@
 
 XPIDL_SOURCES += [
     'nsIInlineSpellChecker.idl',
     'nsITextServicesFilter.idl',
 ]
 
 MODULE = 'txtsvc'
 
+EXPORTS += [
+    'nsISpellChecker.h',
+    'nsITextService.h',
+    'nsITextServicesDocument.h',
+    'nsTextServicesCID.h',
+]
+
--- a/embedding/browser/webBrowser/Makefile.in
+++ b/embedding/browser/webBrowser/Makefile.in
@@ -10,20 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= nsWebBrowser_s
 LIBXUL_LIBRARY	= 1
 
 
 
-EXPORTS         = \
-                nsCTooltipTextProvider.h \
-                $(NULL)
-
 LOCAL_INCLUDES	= \
 		-I$(srcdir)/../../../content/base/src \
 		-I$(srcdir)/../../../content/svg/content/src \
 		$(NULL)
 		
 CPPSRCS		= \
 		nsDocShellTreeOwner.cpp		\
 		nsWebBrowser.cpp		\
--- a/embedding/browser/webBrowser/moz.build
+++ b/embedding/browser/webBrowser/moz.build
@@ -28,8 +28,12 @@ if CONFIG['NS_PRINTING']:
         'nsIPrintingPromptService.idl',
         'nsIWebBrowserPrint.idl',
     ]
 
 XPIDL_MODULE = 'webBrowser_core'
 
 MODULE = 'webbrwsr'
 
+EXPORTS += [
+    'nsCTooltipTextProvider.h',
+]
+
--- a/embedding/components/appstartup/src/Makefile.in
+++ b/embedding/components/appstartup/src/Makefile.in
@@ -12,18 +12,14 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= appstartupnotifier_s
 LIBXUL_LIBRARY	= 1
 
 
 CPPSRCS		= nsAppStartupNotifier.cpp \
                   $(NULL)
 
-EXPORTS =	\
-		nsIAppStartupNotifier.h		\
-		$(NULL)
-
 # we don't want the shared lib, but we want to force the creation of a
 # static lib.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
--- a/embedding/components/appstartup/src/moz.build
+++ b/embedding/components/appstartup/src/moz.build
@@ -1,8 +1,12 @@
 # -*- 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/.
 
 MODULE = 'embedcomponents'
 
+EXPORTS += [
+    'nsIAppStartupNotifier.h',
+]
+
--- a/embedding/components/windowwatcher/public/Makefile.in
+++ b/embedding/components/windowwatcher/public/Makefile.in
@@ -7,13 +7,10 @@
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 
-EXPORTS		= nsPromptUtils.h \
-                  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
--- a/embedding/components/windowwatcher/public/moz.build
+++ b/embedding/components/windowwatcher/public/moz.build
@@ -11,8 +11,12 @@ XPIDL_SOURCES += [
     'nsIPromptService2.idl',
     'nsIWindowWatcher.idl',
     'nsPIPromptService.idl',
     'nsPIWindowWatcher.idl',
 ]
 
 MODULE = 'windowwatcher'
 
+EXPORTS += [
+    'nsPromptUtils.h',
+]
+
--- a/gfx/2d/Makefile.in
+++ b/gfx/2d/Makefile.in
@@ -9,36 +9,16 @@ srcdir		= @srcdir@
 VPATH		=  $(srcdir) $(srcdir)/unittest
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gfx2d
 LIBXUL_LIBRARY	= 1
 EXPORT_LIBRARY	= 1
 
-EXPORTS_NAMESPACES = mozilla/gfx
-EXPORTS_mozilla/gfx	= \
-        2D.h \
-        BasePoint.h \
-        BasePoint3D.h \
-        BasePoint4D.h \
-        BaseMargin.h \
-        BaseRect.h \
-        BaseSize.h \
-        Blur.h \
-        PathHelpers.h \
-        Point.h \
-        Matrix.h \
-        Rect.h \
-        Scale.h \
-        Types.h \
-        Tools.h \
-        UserData.h \
-	$(NULL)
-
 CPPSRCS	= \
         Factory.cpp \
         Rect.cpp \
         Matrix.cpp \
         DrawTargetCairo.cpp \
         SourceSurfaceCairo.cpp \
         PathCairo.cpp \
         DrawTargetRecording.cpp \
@@ -66,21 +46,16 @@ CPPSRCS	+= \
 	   SourceSurfaceCG.cpp \
 	   DrawTargetCG.cpp \
 	   PathCG.cpp \
 	   $(NULL)
 
 CMMSRCS = \
 	   QuartzSupport.mm \
 	   $(NULL)
-
-EXPORTS_mozilla/gfx	+= \
-	   QuartzSupport.h \
-	   MacIOSurface.h \
-	   $(NULL)
 endif
 
 DEFINES += -DMOZ_GFX -DUSE_CAIRO -DGFX2D_INTERNAL
 
 ifdef MOZ_ENABLE_SKIA
 CPPSRCS	+= \
         SourceSurfaceSkia.cpp \
         DrawTargetSkia.cpp \
--- a/gfx/2d/moz.build
+++ b/gfx/2d/moz.build
@@ -1,8 +1,32 @@
 # -*- 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/.
 
 MODULE = 'gfx2d'
 
+EXPORTS.mozilla.gfx += [
+    '2D.h',
+    'BaseMargin.h',
+    'BasePoint.h',
+    'BasePoint3D.h',
+    'BasePoint4D.h',
+    'BaseRect.h',
+    'BaseSize.h',
+    'Blur.h',
+    'Matrix.h',
+    'PathHelpers.h',
+    'Point.h',
+    'Rect.h',
+    'Scale.h',
+    'Tools.h',
+    'Types.h',
+    'UserData.h',
+]
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+    EXPORTS.mozilla.gfx += [
+        'QuartzSupport.h',
+        'MacIOSurface.h',
+    ]
--- a/gfx/angle/Makefile.in
+++ b/gfx/angle/Makefile.in
@@ -10,23 +10,16 @@ VPATH     = @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME   = angle
 LIBXUL_LIBRARY = 1
 ifeq (WINNT,$(OS_TARGET))
 VISIBILITY_FLAGS =
 endif
 
-EXPORTS_NAMESPACES = angle
-
-EXPORTS_angle = \
-  include/GLSLANG/ShaderLang.h \
-  include/KHR/khrplatform.h \
-  $(NULL)
-
 # The below is a rough translation of build_angle.gypi:
 DEFINES += -DANGLE_DISABLE_TRACE
 DEFINES += -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL0
 
 # Target: 'preprocessor'
 # src/compiler/preprocessor:
 VPATH += $(srcdir)/src/compiler/preprocessor
 CPPSRCS += \
--- a/gfx/angle/moz.build
+++ b/gfx/angle/moz.build
@@ -5,8 +5,13 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # libEGL depends on (links against!) libGLESv2!
 if CONFIG['MOZ_ANGLE_RENDERER']:
     DIRS += ['src/libGLESv2', 'src/libEGL']
 
 MODULE = 'angle'
 
+EXPORTS.angle += [
+    'include/GLSLANG/ShaderLang.h',
+    'include/KHR/khrplatform.h',
+]
+
--- a/gfx/cairo/cairo/src/Makefile.in
+++ b/gfx/cairo/cairo/src/Makefile.in
@@ -91,20 +91,16 @@ CSRCS   = \
 	cairo-version.c \
         cairo-wideint.c \
         $(NULL)
 
 ifneq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 CSRCS += cairo-deflate-stream.c
 endif
 
-EXPORTS_NAMESPACES = cairo
-
-EXPORTS_cairo = cairo.h cairo-version.h cairo-features.h cairo-platform.h cairo-deprecated.h cairo-rename.h cairo-tee.h
-
 # cairo-type1-subset.c should be here, but it's only supported on freetype platforms
 
 PSPDF_BASE_CSRCS = \
 	cairo-base85-stream.c \
 	cairo-type1-fallback.c \
 	cairo-type3-glyph-surface.c \
 	cairo-truetype-subset.c \
 	cairo-cff-subset.c \
@@ -112,19 +108,16 @@ PSPDF_BASE_CSRCS = \
 
 PDF_CSRCS = \
 	cairo-pdf-surface.c \
 	cairo-pdf-operators.c \
 	$(NULL)
 
 PS_CSRCS = cairo-ps-surface.c
 
-PDF_EXPORTS = cairo-pdf.h
-PS_EXPORTS = cairo-ps.h
-
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
 DEFINES += -DDISABLE_SOME_FLOATING_POINT
 CSRCS	+=	cairo-win32-surface.c
 
 ifdef MOZ_ENABLE_DWRITE_FONT
 CPPSRCS +=	cairo-dwrite-font.cpp
 endif
 ifdef MOZ_ENABLE_D2D_SURFACE
@@ -133,77 +126,64 @@ endif
 CSRCS	+=	cairo-win32-font.c
 
 ifdef NS_PRINTING
 CSRCS   += cairo-win32-printing-surface.c
 else
 DEFINES += -DCAIRO_OMIT_WIN32_PRINTING
 endif
 
-EXPORTS_cairo += cairo-win32.h
 CSRCS   += $(PSPDF_BASE_CSRCS) $(PDF_CSRCS)
-EXPORTS_cairo += $(PDF_EXPORTS)
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),os2)
 DEFINES += -DOS2_USE_PLATFORM_ALLOC
 ifdef MOZ_OS2_HIGH_MEMORY
 DEFINES += -DOS2_HIGH_MEMORY
 endif
 CSRCS   += cairo-os2-surface.c
-EXPORTS_cairo += cairo-os2.h cairo-os2-private.h
 CSRCS   += $(PSPDF_BASE_CSRCS) $(PDF_CSRCS)
-EXPORTS_cairo += $(PDF_EXPORTS)
 endif
 
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 CSRCS   += cairo-quartz-surface.c cairo-quartz-image-surface.c cairo-quartz-font.c
-EXPORTS_cairo += cairo-quartz.h cairo-quartz-image.h
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),beos)
 CPPSRCS += cairo-beos-surface.cpp
-EXPORTS_cairo += cairo-beos.h
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
 CSRCS   += $(PSPDF_BASE_CSRCS) $(PDF_CSRCS) $(PS_CSRCS)
-EXPORTS_cairo += $(PDF_EXPORTS) $(PS_EXPORTS)
 endif
 
 ifneq (,$(filter android gonk,$(MOZ_WIDGET_TOOLKIT)))
 CSRCS   += $(PSPDF_BASE_CSRCS) $(PDF_CSRCS)
-EXPORTS_cairo += $(PDF_EXPORTS)
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),qt)
 CPPSRCS += cairo-qt-surface.cpp
 CSRCS   += $(PSPDF_BASE_CSRCS) $(PDF_CSRCS) 
-EXPORTS_cairo += cairo-qt.h
-EXPORTS_cairo += $(PDF_EXPORTS)
 OS_INCLUDES += $(MOZ_QT_CFLAGS)
 endif
 
 ifdef BUILD_CAIRO_SVG
 CSRCS	+= cairo-svg-surface.c
-EXPORTS_cairo += cairo-svg.h
 endif
 
 ifdef MOZ_X11
 CSRCS   += cairo-xlib-surface.c \
 	   cairo-xlib-screen.c \
 	   cairo-xlib-visual.c \
 	   cairo-xlib-display.c
-EXPORTS_cairo += cairo-xlib.h cairo-xlib-xrender.h
 OS_INCLUDES += $(XCFLAGS)
 endif
 
 ifdef MOZ_ENABLE_CAIRO_FT
 CSRCS   += cairo-ft-font.c cairo-type1-subset.c
-EXPORTS_cairo += cairo-ft.h
 OS_INCLUDES += $(CAIRO_FT_CFLAGS)
 endif
 
 LOCAL_INCLUDES  += -I$(srcdir)
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
--- a/gfx/cairo/cairo/src/moz.build
+++ b/gfx/cairo/cairo/src/moz.build
@@ -3,8 +3,68 @@
 # 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/.
 
 CONFIGURE_SUBST_FILES += ['cairo-features.h']
 
 MODULE = 'cairo'
 
+EXPORTS.cairo += [
+    'cairo-deprecated.h',
+    'cairo-features.h',
+    'cairo-platform.h',
+    'cairo-rename.h',
+    'cairo-tee.h',
+    'cairo-version.h',
+    'cairo.h',
+]
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+    EXPORTS.cairo += [
+        'cairo-win32.h',
+        'cairo-pdf.h',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
+    EXPORTS.cairo += [
+        'cairo-os2.h',
+        'cairo-os2-private.h',
+        'cairo-pdf.h',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+    EXPORTS.cairo += [
+        'cairo-quartz.h',
+        'cairo-quartz-image.h',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'beos':
+    EXPORTS.cairo += [
+        'cairo-beos.h',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2':
+    EXPORTS.cairo += [
+        'cairo-pdf.h',
+        'cairo-ps.h',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):
+    EXPORTS.cairo += [
+        'cairo-pdf.h',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
+    EXPORTS.cairo += [
+        'cairo-qt.h',
+        'cairo-pdf.h',
+    ]
+
+if CONFIG['BUILD_CAIRO_SVG']:
+    EXPORTS.cairo += [
+        'cairo-svg.h'
+    ]
+
+if CONFIG['MOZ_X11']:
+    EXPORTS.cairo += [
+        'cairo-xlib.h',
+        'cairo-xlib-xrender.h',
+    ]
+
+if CONFIG['MOZ_ENABLE_CAIRO_FT']:
+    EXPORTS.cairo += [
+        'cairo-ft.h',
+    ]
--- a/gfx/cairo/libpixman/src/Makefile.in
+++ b/gfx/cairo/libpixman/src/Makefile.in
@@ -136,18 +136,16 @@ endif
 ifdef USE_ARM_NEON_GCC
 CSRCS += pixman-arm-neon.c
 SSRCS += pixman-arm-neon-asm.S
 SSRCS += pixman-arm-neon-asm-bilinear.S
 DEFINES += -DUSE_ARM_NEON
 ARM_NEON_CFLAGS = -mfpu=neon
 endif
 
-EXPORTS		= pixman.h pixman-version.h
-
 LOCAL_INCLUDES	+= -I$(srcdir) -I$(srcdir)/../../cairo/src
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/config.mk
 
 include $(topsrcdir)/config/rules.mk
 
--- a/gfx/cairo/libpixman/src/moz.build
+++ b/gfx/cairo/libpixman/src/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'libpixman'
 
+EXPORTS += [
+    'pixman-version.h',
+    'pixman.h',
+]
+
--- a/gfx/gl/Makefile.in
+++ b/gfx/gl/Makefile.in
@@ -9,47 +9,18 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME     = gl
 LIBXUL_LIBRARY   = 1
 EXPORT_LIBRARY   = 1
 FAIL_ON_WARNINGS = 1
 
-EXPORTS	= \
-  ForceDiscreteGPUHelperCGL.h \
-  GLContext.h \
-  GLContextProvider.h \
-  GLContextProviderImpl.h \
-  GLContextSymbols.h \
-  GLContextTypes.h \
-  GLDefs.h \
-  GLLibraryLoader.h \
-  GLLibraryEGL.h \
-  GLScreenBuffer.h \
-  GLTextureImage.h \
-  SharedSurface.h \
-  SharedSurfaceEGL.h \
-  SharedSurfaceGL.h \
-  SurfaceFactory.h \
-  SurfaceStream.h \
-  SurfaceTypes.h \
-  $(NULL)
-
-ifdef MOZ_X11
-EXPORTS += \
-  GLXLibrary.h \
-  $(NULL)
-endif
-
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
-EXPORTS	+= \
-  WGLLibrary.h \
-  $(NULL)
 ifdef MOZ_WEBGL
 DEFINES += -DMOZ_WEBGL
 DEFINES += -DMOZ_D3DCOMPILER_DLL=$(MOZ_D3DCOMPILER_DLL)
 endif
 endif
 
 CPPSRCS	= \
   GLContext.cpp \
@@ -116,34 +87,29 @@ CPPSRCS += GLContextProvider$(GL_PROVIDE
 endif
 
 ifeq ($(GL_PROVIDER),EGL)
 CPPSRCS += GLLibraryEGL.cpp
 endif
 
 # Win32 is a special snowflake, for ANGLE
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
-EXPORTS += \
-  SharedSurfaceANGLE.h \
-  $(NULL)
-
 CPPSRCS += \
   GLContextProviderEGL.cpp \
   GLLibraryEGL.cpp \
   SharedSurfaceANGLE.cpp \
   $(NULL)
 endif
 
 ifdef MOZ_ANDROID_OMTC
 DEFINES += -DMOZ_ANDROID_OMTC
 endif
 
 ifdef MOZ_ENABLE_SKIA_GPU
 CPPSRCS += GLContextSkia.cpp
-EXPORTS += GLContextSkia.h
 endif
 
 include $(topsrcdir)/config/rules.mk
 
 DEFINES := $(filter-out -DUNICODE,$(DEFINES))
 
 CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS) $(TK_CFLAGS)
 CFLAGS   += $(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS) $(TK_CFLAGS)
--- a/gfx/gl/moz.build
+++ b/gfx/gl/moz.build
@@ -1,8 +1,37 @@
 # -*- 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/.
 
 MODULE = 'gl'
 
+EXPORTS += [
+    'ForceDiscreteGPUHelperCGL.h',
+    'GLContext.h',
+    'GLContextProvider.h',
+    'GLContextProviderImpl.h',
+    'GLContextSymbols.h',
+    'GLContextTypes.h',
+    'GLDefs.h',
+    'GLLibraryEGL.h',
+    'GLLibraryLoader.h',
+    'GLScreenBuffer.h',
+    'GLTextureImage.h',
+    'SharedSurface.h',
+    'SharedSurfaceEGL.h',
+    'SharedSurfaceGL.h',
+    'SurfaceFactory.h',
+    'SurfaceStream.h',
+    'SurfaceTypes.h',
+]
+
+if CONFIG['MOZ_X11']:
+    EXPORTS += ['GLXLibrary.h']
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+    EXPORTS += [
+        'WGLLibrary.h',
+        'SharedSurfaceANGLE.h',
+    ]
+if CONFIG['MOZ_ENABLE_SKIA_GPU']:
+    EXPORTS += ['GLContextSkia.h']
--- a/gfx/graphite2/moz-gr-update.sh
+++ b/gfx/graphite2/moz-gr-update.sh
@@ -26,10 +26,15 @@ find gfx/graphite2/ -name "*.h" -exec pe
 # summarize what's been touched
 echo Updated to $CHANGESET.
 echo Here is what changed in the gfx/graphite2 directory:
 echo
 
 hg stat gfx/graphite2
 
 echo
+echo If gfx/graphite2/src/files.mk has changed, please make corresponding
+echo changes to gfx/graphite2/src/moz.build
+echo
+
+echo
 echo Now use hg commands to create a patch for the mozilla tree.
 echo
--- a/gfx/graphite2/src/Makefile.in
+++ b/gfx/graphite2/src/Makefile.in
@@ -29,19 +29,16 @@ VISIBILITY_FLAGS =
 else
 LIBXUL_LIBRARY = 1
 endif
 
 # MSVC doesn't like the paths in _SOURCES, so strip off the prefix
 # and leave bare filenames
 CPPSRCS = $(subst $($(_NS)_BASE)/src/,,$(_SOURCES))
 
-EXPORTS_NAMESPACES = graphite2
-EXPORTS_graphite2 = $(_PUBLIC_HEADERS)
-
 FORCE_STATIC_LIB = 1
 FORCE_USE_PIC = 1
 
 ifeq (WINNT,$(OS_TARGET))
 DEFINES += -DGRAPHITE2_EXPORTING
 else
 # tell graphite2 not to export symbols, we'll be linking it directly with thebes
 DEFINES += -DGRAPHITE2_STATIC
--- a/gfx/graphite2/src/moz.build
+++ b/gfx/graphite2/src/moz.build
@@ -1,8 +1,16 @@
 # -*- 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/.
 
 MODULE = 'graphite2'
 
+# This should contain all of the _PUBLIC_HEADERS from files.mk
+EXPORTS.graphite2 += [
+    '../include/graphite2/Font.h',
+    '../include/graphite2/Log.h',
+    '../include/graphite2/Segment.h',
+    '../include/graphite2/Types.h',
+]
+
--- a/gfx/harfbuzz/src/Makefile.in
+++ b/gfx/harfbuzz/src/Makefile.in
@@ -59,34 +59,16 @@ CPPSRCS	=                        \
   hb-set.cc                      \
   hb-shape.cc                    \
   hb-shape-plan.cc               \
   hb-shaper.cc                   \
   hb-unicode.cc                  \
   hb-warning.cc                  \
   $(NULL)
 
-EXPORTS_NAMESPACES = harfbuzz
-
-EXPORTS_harfbuzz = \
-  hb.h             \
-  hb-blob.h        \
-  hb-buffer.h      \
-  hb-common.h      \
-  hb-font.h        \
-  hb-ot.h          \
-  hb-ot-layout.h   \
-  hb-ot-tag.h      \
-  hb-set.h         \
-  hb-shape.h       \
-  hb-shape-plan.h  \
-  hb-unicode.h     \
-  hb-version.h     \
-  $(NULL)
-
 LOCAL_INCLUDES  += -I$(srcdir) 
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 DEFINES += -DPACKAGE_VERSION="\"moz\""
 DEFINES += -DPACKAGE_BUGREPORT="\"http://bugzilla.mozilla.org/\""
--- a/gfx/harfbuzz/src/moz.build
+++ b/gfx/harfbuzz/src/moz.build
@@ -1,8 +1,24 @@
 # -*- 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/.
 
 MODULE = 'harfbuzz'
 
+EXPORTS.harfbuzz += [
+    'hb-blob.h',
+    'hb-buffer.h',
+    'hb-common.h',
+    'hb-font.h',
+    'hb-ot-layout.h',
+    'hb-ot-tag.h',
+    'hb-ot.h',
+    'hb-set.h',
+    'hb-shape-plan.h',
+    'hb-shape.h',
+    'hb-unicode.h',
+    'hb-version.h',
+    'hb.h',
+]
+
--- a/gfx/ipc/Makefile.in
+++ b/gfx/ipc/Makefile.in
@@ -10,30 +10,19 @@ VPATH       = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME       = gfxipc_s
 FORCE_STATIC_LIB   = 1
 LIBXUL_LIBRARY     = 1
 EXPORT_LIBRARY     = 1
 
-EXPORTS_NAMESPACES = mozilla/gfx
-
-EXPORTS_mozilla/gfx = \
-        SharedDIB.h   \
-        $(NULL)
-
 CPPSRCS = SharedDIB.cpp
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
-EXPORTS_mozilla/gfx += \
-  SharedDIBWin.h \
-  SharedDIBSurface.h \
-  $(NULL)
-
 CPPSRCS += \
   SharedDIBWin.cpp \
   SharedDIBSurface.cpp \
   $(NULL)
 endif
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
--- a/gfx/ipc/moz.build
+++ b/gfx/ipc/moz.build
@@ -1,8 +1,18 @@
 # -*- 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/.
 
 MODULE = 'gfxipc'
 
+EXPORTS.mozilla.gfx += [
+    'SharedDIB.h',
+]
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+    EXPORTS.mozilla.gfx += [
+        'SharedDIBWin.h',
+        'SharedDIBSurface.h',
+    ]
+
--- a/gfx/layers/Makefile.in
+++ b/gfx/layers/Makefile.in
@@ -23,49 +23,16 @@ LIBRARY_NAME   = layers
 LIBXUL_LIBRARY = 1
 FORCE_STATIC_LIB = 1
 
 DEFINES += -DIMPL_THEBES
 ifdef MOZ_DEBUG
 DEFINES += -DD3D_DEBUG_INFO
 endif
 
-EXPORTS = \
-        BasicCanvasLayer.h \
-        BasicImplData.h \
-        BasicLayers.h \
-        BasicLayersImpl.h \
-        BasicTiledThebesLayer.h \
-        BasicThebesLayer.h \
-        CompositableHost.h \
-        LayerManagerComposite.h \
-        Composer2D.h \
-        GonkIOSurfaceImage.h \
-        FrameMetrics.h \
-        CompositorChild.h \
-        CompositorParent.h \
-        ImageContainer.h \
-        ImageLayers.h \
-        ImageLayerOGL.h \
-        ImageHost.h \
-        ImageTypes.h \
-        Layers.h \
-        LayersLogging.h \
-        LayerManagerOGLShaders.h \
-        LayerManagerOGL.h \
-        LayerManagerOGLProgram.h \
-        LayerSorter.h \
-        LayerTreeInvalidation.h \
-        ReadbackLayer.h \
-        ShadowLayersManager.h \
-        SharedTextureImage.h \
-        TexturePoolOGL.h \
-        ShmemYCbCrImage.h \
-        $(NULL)
-
 CPPSRCS = \
         BasicImages.cpp \
         BasicLayerManager.cpp \
         BasicCanvasLayer.cpp \
         BasicColorLayer.cpp \
         BasicContainerLayer.cpp \
         BasicImageLayer.cpp \
         BasicLayersImpl.cpp \
@@ -99,94 +66,41 @@ CPPSRCS = \
         $(NULL)
 
 GTEST_CPPSRCS = \
         TestTiledLayerBuffer.cpp \
         $(NULL)
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
 ifdef MOZ_ENABLE_D3D9_LAYER
-EXPORTS += \
-        LayerManagerD3D9.h \
-        DeviceManagerD3D9.h \
-        $(NULL)
-
 CPPSRCS += \
         LayerManagerD3D9.cpp \
         ThebesLayerD3D9.cpp \
         ContainerLayerD3D9.cpp \
         ImageLayerD3D9.cpp \
         ColorLayerD3D9.cpp \
         CanvasLayerD3D9.cpp \
         DeviceManagerD3D9.cpp \
         Nv3DVUtils.cpp \
         $(NULL)
 endif
 ifdef MOZ_ENABLE_D3D10_LAYER
-EXPORTS += \
-        LayerManagerD3D10.h \
-        ReadbackManagerD3D10.h \
-        $(NULL)
-
 CPPSRCS += \
         CanvasLayerD3D10.cpp \
         ColorLayerD3D10.cpp \
         ContainerLayerD3D10.cpp \
         ImageLayerD3D10.cpp \
         LayerManagerD3D10.cpp \
         ReadbackManagerD3D10.cpp \
         ShadowLayerUtilsD3D10.cpp \
         ThebesLayerD3D10.cpp \
         $(NULL)
 endif
 endif
 
-EXPORTS_NAMESPACES = gfxipc mozilla/layers
-EXPORTS_gfxipc = ShadowLayerUtils.h
-EXPORTS_mozilla/layers =\
-        AsyncPanZoomController.h \
-        Axis.h \
-        CanvasClient.h \
-        CompositableClient.h \
-        CompositableTransactionParent.h \
-        Compositor.h \
-        CompositorOGL.h \
-        CompositorTypes.h \
-        ContentHost.h \
-        CompositingRenderTargetOGL.h \
-        CompositorCocoaWidgetHelper.h \
-        CompositorChild.h \
-        CompositorParent.h \
-        CompositableForwarder.h \
-        ContentClient.h \
-        Effects.h \
-        GeckoContentController.h \
-        GestureEventListener.h \
-        ImageBridgeChild.h \
-        ImageBridgeParent.h \
-        ImageClient.h \
-        ImageHost.h \
-        ISurfaceAllocator.h \
-        LayersTypes.h \
-        ShadowLayers.h \
-        ShadowLayersChild.h \
-        ShadowLayersParent.h \
-        ShadowLayersManager.h \
-        RenderTrace.h \
-        SharedRGBImage.h \
-        SharedPlanarYCbCrImage.h \
-        ShmemYCbCrImage.h \
-        TaskThrottler.h \
-        TextureClient.h \
-        TextureHost.h \
-        TextureClientOGL.h \
-        TextureHostOGL.h \
-        TiledContentClient.h \
-        $(NULL)
-
 CPPSRCS += \
         AsyncPanZoomController.cpp \
         Axis.cpp \
         CanvasClient.cpp \
         CompositableClient.cpp \
         Compositor.cpp \
         CompositorOGL.cpp \
         CompositorCocoaWidgetHelper.cpp \
@@ -214,36 +128,31 @@ CPPSRCS += \
         TextureClientOGL.cpp \
         TextureHost.cpp \
         TextureHostOGL.cpp \
         TiledContentClient.cpp \
         TiledContentHost.cpp \
         $(NULL)
 
 ifdef MOZ_X11 #{
-EXPORTS_mozilla/layers += ShadowLayerUtilsX11.h
 CPPSRCS += ShadowLayerUtilsX11.cpp
 endif #}
 
 ifdef MOZ_ENABLE_D3D10_LAYER
-EXPORTS_mozilla/layers += \
-        ShadowLayerUtilsD3D10.h \
-        $(NULL)
 DEFINES	+= -DMOZ_ENABLE_D3D10_LAYER
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 CPPSRCS += ShadowLayerUtilsMac.cpp
 endif
 
 # NB: Gralloc is available on other platforms that use the android GL
 # libraries, but only Gonk is able to use it reliably because Gecko
 # has full system permissions there.
 ifeq ($(MOZ_WIDGET_TOOLKIT),gonk)
-EXPORTS_mozilla/layers += ShadowLayerUtilsGralloc.h
 CPPSRCS += \
         ShadowLayerUtilsGralloc.cpp \
         GrallocImages.cpp \
         GonkIOSurfaceImage.cpp \
         $(NULL)
 endif
 
 include $(topsrcdir)/config/rules.mk
--- a/gfx/layers/moz.build
+++ b/gfx/layers/moz.build
@@ -1,8 +1,110 @@
 # -*- 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/.
 
 MODULE = 'thebes'
 
+EXPORTS += [
+    'BasicCanvasLayer.h',
+    'BasicImplData.h',
+    'BasicLayers.h',
+    'BasicLayersImpl.h',
+    'BasicTiledThebesLayer.h',
+    'BasicThebesLayer.h',
+    'CompositableHost.h',
+    'LayerManagerComposite.h',
+    'Composer2D.h',
+    'GonkIOSurfaceImage.h',
+    'FrameMetrics.h',
+    'CompositorChild.h',
+    'CompositorParent.h',
+    'ImageContainer.h',
+    'ImageLayers.h',
+    'ImageLayerOGL.h',
+    'ImageHost.h',
+    'ImageTypes.h',
+    'Layers.h',
+    'LayersLogging.h',
+    'LayerManagerOGLShaders.h',
+    'LayerManagerOGL.h',
+    'LayerManagerOGLProgram.h',
+    'LayerSorter.h',
+    'LayerTreeInvalidation.h',
+    'ReadbackLayer.h',
+    'ShadowLayersManager.h',
+    'SharedTextureImage.h',
+    'TexturePoolOGL.h',
+    'ShmemYCbCrImage.h',
+]
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+    if CONFIG['MOZ_ENABLE_D3D9_LAYER']:
+        EXPORTS += [
+            'LayerManagerD3D9.h',
+            'DeviceManagerD3D9.h',
+        ]
+    if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
+        EXPORTS += [
+            'LayerManagerD3D10.h',
+            'ReadbackManagerD3D10.h',
+        ]
+        EXPORTS.mozilla.layers += [
+            'ShadowLayerUtilsD3D10.h',
+        ]
+
+EXPORTS.gfxipc += [
+    'ShadowLayerUtils.h',
+]
+
+EXPORTS.mozilla.layers += [
+    'AsyncPanZoomController.h',
+    'Axis.h',
+    'CanvasClient.h',
+    'CompositableClient.h',
+    'CompositableTransactionParent.h',
+    'Compositor.h',
+    'CompositorOGL.h',
+    'CompositorTypes.h',
+    'ContentHost.h',
+    'CompositingRenderTargetOGL.h',
+    'CompositorCocoaWidgetHelper.h',
+    'CompositorChild.h',
+    'CompositorParent.h',
+    'CompositableForwarder.h',
+    'ContentClient.h',
+    'Effects.h',
+    'GeckoContentController.h',
+    'GestureEventListener.h',
+    'ImageBridgeChild.h',
+    'ImageBridgeParent.h',
+    'ImageClient.h',
+    'ImageHost.h',
+    'ISurfaceAllocator.h',
+    'LayersTypes.h',
+    'ShadowLayers.h',
+    'ShadowLayersChild.h',
+    'ShadowLayersParent.h',
+    'ShadowLayersManager.h',
+    'RenderTrace.h',
+    'SharedRGBImage.h',
+    'SharedPlanarYCbCrImage.h',
+    'ShmemYCbCrImage.h',
+    'TaskThrottler.h',
+    'TextureClient.h',
+    'TextureHost.h',
+    'TextureClientOGL.h',
+    'TextureHostOGL.h',
+    'TiledContentClient.h',
+]
+
+if CONFIG['MOZ_X11']:
+    EXPORTS.mozilla.layers += [
+        'ShadowLayerUtilsX11.h'
+    ]
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
+    EXPORTS.mozilla.layers += [
+        'ShadowLayerUtilsGralloc.h'
+    ]
--- a/gfx/ots/src/Makefile.in
+++ b/gfx/ots/src/Makefile.in
@@ -73,21 +73,16 @@ CPPSRCS	= \
   vorg.cc \
   gdef.cc \
   gpos.cc \
   gsub.cc \
   graphite.cc \
   svg.cc \
   $(NULL)
 
-EXPORTS = \
-  ../include/opentype-sanitiser.h \
-  ../include/ots-memory-stream.h  \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 DEFINES += -DPACKAGE_VERSION="\"moz\""
 DEFINES += -DPACKAGE_BUGREPORT="\"http://bugzilla.mozilla.org/\""
 DEFINES += -DNOMINMAX
 DEFINES += -DMOZ_OTS_REPORT_ERRORS
 
 ifeq (WINNT,$(OS_TARGET))
--- a/gfx/ots/src/moz.build
+++ b/gfx/ots/src/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'ots'
 
+EXPORTS += [
+    '../include/opentype-sanitiser.h',
+    '../include/ots-memory-stream.h',
+]
+
--- a/gfx/qcms/Makefile.in
+++ b/gfx/qcms/Makefile.in
@@ -7,18 +7,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = mozqcms
 LIBXUL_LIBRARY = 1
 
-EXPORTS      = qcms.h qcmstypes.h
-
 CSRCS = \
   chain.c \
   iccread.c \
   matrix.c \
   transform.c \
   transform_util.c \
   $(NULL)
 
--- a/gfx/qcms/moz.build
+++ b/gfx/qcms/moz.build
@@ -1,8 +1,13 @@
 # -*- 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/.
 
 MODULE = 'qcms'
 
+EXPORTS += [
+    'qcms.h',
+    'qcmstypes.h',
+]
+
--- a/gfx/skia/Makefile.in
+++ b/gfx/skia/Makefile.in
@@ -9,18 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= skia
 LIBXUL_LIBRARY  = 1
 EXPORT_LIBRARY  = 1
 
-EXPORTS_NAMESPACES = skia
-
 DEFINES += -DSK_A32_SHIFT=24 -DSK_R32_SHIFT=16 -DSK_G32_SHIFT=8 -DSK_B32_SHIFT=0
 
 LOCAL_INCLUDES += \
 	-I$(srcdir)/include/core \
 	-I$(srcdir)/include/config \
 	-I$(srcdir)/include/gpu \
 	-I$(srcdir)/include/pipe \
 	-I$(srcdir)/include/ports \
@@ -51,157 +49,16 @@ VPATH += \
 	$(srcdir)/src/opts \
 	$(srcdir)/src/effects \
 	$(srcdir)/src/effects/gradients \
 	$(srcdir)/src/utils \
 	$(srcdir)/src/utils/mac \
 	$(srcdir)/src/sfnt \
 	$(NULL)
 
-EXPORTS_skia = \
-	include/core/Sk64.h \
-	include/core/SkAdvancedTypefaceMetrics.h \
-	include/core/SkBitmap.h \
-	include/core/SkBlitRow.h \
-	include/core/SkBounder.h \
-	include/core/SkCanvas.h \
-	include/core/SkChunkAlloc.h \
-	include/core/SkClipStack.h \
-	include/core/SkColor.h \
-	include/core/SkColorFilter.h \
-	include/core/SkColorPriv.h \
-	include/core/SkColorShader.h \
-	include/core/SkColorTable.h \
-	include/core/SkComposeShader.h \
-	include/core/SkData.h \
-	include/core/SkDeque.h \
-	include/core/SkDevice.h \
-	include/core/SkDither.h \
-	include/core/SkDraw.h \
-	include/core/SkDrawFilter.h \
-	include/core/SkDrawLooper.h \
-	include/core/SkEmptyShader.h \
-	include/core/SkEndian.h \
-	include/core/SkFixed.h \
-	include/core/SkFlattenable.h \
-	include/core/SkFloatBits.h \
-	include/core/SkFloatingPoint.h \
-	include/core/SkFontHost.h \
-	include/core/SkGeometry.h \
-	include/core/SkGraphics.h \
-	include/core/SkInstCnt.h \
-	include/core/SkLineClipper.h \
-	include/core/SkMMapStream.h \
-	include/core/SkMallocPixelRef.h \
-	include/core/SkMask.h \
-	include/core/SkMaskFilter.h \
-	include/core/SkMath.h \
-	include/core/SkMatrix.h \
-	include/core/SkMetaData.h \
-	include/core/SkOSFile.h \
-	include/core/SkPackBits.h \
-	include/core/SkPaint.h \
-	include/core/SkPath.h \
-	include/core/SkPathEffect.h \
-	include/core/SkPathMeasure.h \
-	include/core/SkPicture.h \
-	include/core/SkPixelRef.h \
-	include/core/SkPoint.h \
-	include/core/SkPostConfig.h \
-	include/core/SkPreConfig.h \
-	include/core/SkRandom.h \
-	include/core/SkRasterizer.h \
-	include/core/SkReader32.h \
-	include/core/SkRect.h \
-	include/core/SkRefCnt.h \
-	include/core/SkRegion.h \
-	include/core/SkScalar.h \
-	include/core/SkScalarCompare.h \
-	include/core/SkShader.h \
-	include/core/SkSize.h \
-	include/core/SkStream.h \
-	include/core/SkString.h \
-	include/core/SkTArray.h \
-	include/core/SkTDArray.h \
-	include/core/SkTDLinkedList.h \
-	include/core/SkTDStack.h \
-	include/core/SkTDict.h \
-	include/core/SkTLazy.h \
-	include/core/SkTRegistry.h \
-	include/core/SkTScopedPtr.h \
-	include/core/SkTSearch.h \
-	include/core/SkTemplates.h \
-	include/core/SkThread.h \
-	include/core/SkThread_platform.h \
-	include/core/SkTime.h \
-	include/core/SkTrace.h \
-	include/core/SkTypeface.h \
-	include/core/SkTypes.h \
-	include/core/SkUnPreMultiply.h \
-	include/core/SkUnitMapper.h \
-	include/core/SkUtils.h \
-	include/core/SkWeakRefCnt.h \
-	include/core/SkWriter32.h \
-	include/core/SkXfermode.h \
-	include/config/SkUserConfig.h \
-	include/effects/SkDashPathEffect.h \
-	include/effects/SkGradientShader.h \
-	include/effects/SkBlurDrawLooper.h \
-	include/effects/SkBlurMaskFilter.h \
-	include/effects/SkLayerDrawLooper.h \
-	include/effects/SkLayerRasterizer.h \
-	include/effects/SkMorphologyImageFilter.h \
-	include/gpu/GrAARectRenderer.h \
-	include/gpu/GrCacheID.h \
-	include/gpu/GrClipData.h \
-	include/gpu/GrColor.h \
-	include/gpu/GrConfig.h \
-	include/gpu/GrContextFactory.h \
-	include/gpu/GrContext.h \
-	include/gpu/GrCustomStage.h \
-	include/gpu/GrCustomStageUnitTest.h \
-	include/gpu/GrFontScaler.h \
-	include/gpu/GrGlyph.h \
-	include/gpu/GrInstanceCounter.h \
-	include/gpu/GrKey.h \
-	include/gpu/GrMatrix.h \
-	include/gpu/GrNoncopyable.h \
-	include/gpu/GrPaint.h \
-	include/gpu/GrPoint.h \
-	include/gpu/GrProgramStageFactory.h \
-	include/gpu/GrRect.h \
-	include/gpu/GrRefCnt.h \
-	include/gpu/GrRenderTarget.h \
-	include/gpu/GrResource.h \
-	include/gpu/GrSamplerState.h \
-	include/gpu/GrScalar.h \
-	include/gpu/GrSurface.h \
-	include/gpu/GrTextContext.h \
-	include/gpu/GrTextureAccess.h \
-	include/gpu/GrTexture.h \
-	include/gpu/GrTypes.h \
-	include/gpu/GrUserConfig.h \
-	include/gpu/SkGpuCanvas.h \
-	include/gpu/SkGpuDevice.h \
-	include/gpu/SkGr.h \
-	include/gpu/SkGrPixelRef.h \
-	include/gpu/SkGrTexturePixelRef.h \
-	include/gpu/gl/GrGLConfig.h \
-	include/gpu/gl/GrGLFunctions.h \
-	include/gpu/gl/GrGLInterface.h \
-	include/gpu/gl/SkANGLEGLContext.h \
-	include/gpu/gl/SkDebugGLContext.h \
-	include/gpu/gl/SkGLContext.h \
-	include/gpu/gl/SkMesaGLContext.h \
-	include/gpu/gl/SkNativeGLContext.h \
-	include/gpu/gl/SkNullGLContext.h \
-	include/utils/SkDeferredCanvas.h \
-	include/views/SkTextBox.h \
-	$(NULL)
-
 GPU_CPPSRCS = \
 	GrAAConvexPathRenderer.cpp \
 	GrAAHairLinePathRenderer.cpp \
 	GrAARectRenderer.cpp \
 	GrAddPathRenderers_default.cpp \
 	GrAllocPool.cpp \
 	GrAtlas.cpp \
 	GrBufferAllocPool.cpp \
@@ -433,19 +290,16 @@ CPPSRCS = \
 ifdef MOZ_ENABLE_SKIA_GPU
 CPPSRCS += \
 	$(GPU_CPPSRCS) \
 	$(GPU_GL_CPPSRCS) \
 	$(NULL)
 endif
 
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
-EXPORTS_skia += \
-	include/ports/SkTypeface_mac.h \
-	$(NULL)
 CPPSRCS += \
 	SkFontHost_mac_coretext.cpp \
 	SkStream_mac.cpp \
 	SkTime_Unix.cpp \
 	$(NULL)
 endif
 
 ifeq (android,$(MOZ_WIDGET_TOOLKIT))
@@ -501,20 +355,16 @@ endif
 OS_CXXFLAGS += $(MOZ_PANGO_CFLAGS)
 endif
 
 ifeq (Linux,$(OS_TARGET))
 DEFINES += -DSK_USE_POSIX_THREADS=1
 endif
 
 ifeq (windows,$(MOZ_WIDGET_TOOLKIT))
-EXPORTS_skia += \
-	include/config/sk_stdint.h \
-	include/ports/SkTypeface_win.h \
-	$(NULL)
 CPPSRCS += \
 	SkFontHost_win.cpp \
 	SkFontHost_tables.cpp \
 	SkFontHost_sandbox_none.cpp \
 	SkTime_win.cpp \
 	$(NULL)
 DEFINES += -DSKIA_IMPLEMENTATION=1 -DGR_IMPLEMENTATION=1
 endif
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -1,8 +1,158 @@
 # -*- 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/.
 
 MODULE = 'skia'
 
+EXPORTS.skia += [
+    'include/config/SkUserConfig.h',
+    'include/core/Sk64.h',
+    'include/core/SkAdvancedTypefaceMetrics.h',
+    'include/core/SkBitmap.h',
+    'include/core/SkBlitRow.h',
+    'include/core/SkBounder.h',
+    'include/core/SkCanvas.h',
+    'include/core/SkChunkAlloc.h',
+    'include/core/SkClipStack.h',
+    'include/core/SkColor.h',
+    'include/core/SkColorFilter.h',
+    'include/core/SkColorPriv.h',
+    'include/core/SkColorShader.h',
+    'include/core/SkColorTable.h',
+    'include/core/SkComposeShader.h',
+    'include/core/SkData.h',
+    'include/core/SkDeque.h',
+    'include/core/SkDevice.h',
+    'include/core/SkDither.h',
+    'include/core/SkDraw.h',
+    'include/core/SkDrawFilter.h',
+    'include/core/SkDrawLooper.h',
+    'include/core/SkEmptyShader.h',
+    'include/core/SkEndian.h',
+    'include/core/SkFixed.h',
+    'include/core/SkFlattenable.h',
+    'include/core/SkFloatBits.h',
+    'include/core/SkFloatingPoint.h',
+    'include/core/SkFontHost.h',
+    'include/core/SkGeometry.h',
+    'include/core/SkGraphics.h',
+    'include/core/SkInstCnt.h',
+    'include/core/SkLineClipper.h',
+    'include/core/SkMMapStream.h',
+    'include/core/SkMallocPixelRef.h',
+    'include/core/SkMask.h',
+    'include/core/SkMaskFilter.h',
+    'include/core/SkMath.h',
+    'include/core/SkMatrix.h',
+    'include/core/SkMetaData.h',
+    'include/core/SkOSFile.h',
+    'include/core/SkPackBits.h',
+    'include/core/SkPaint.h',
+    'include/core/SkPath.h',
+    'include/core/SkPathEffect.h',
+    'include/core/SkPathMeasure.h',
+    'include/core/SkPicture.h',
+    'include/core/SkPixelRef.h',
+    'include/core/SkPoint.h',
+    'include/core/SkPostConfig.h',
+    'include/core/SkPreConfig.h',
+    'include/core/SkRandom.h',
+    'include/core/SkRasterizer.h',
+    'include/core/SkReader32.h',
+    'include/core/SkRect.h',
+    'include/core/SkRefCnt.h',
+    'include/core/SkRegion.h',
+    'include/core/SkScalar.h',
+    'include/core/SkScalarCompare.h',
+    'include/core/SkShader.h',
+    'include/core/SkSize.h',
+    'include/core/SkStream.h',
+    'include/core/SkString.h',
+    'include/core/SkTArray.h',
+    'include/core/SkTDArray.h',
+    'include/core/SkTDLinkedList.h',
+    'include/core/SkTDStack.h',
+    'include/core/SkTDict.h',
+    'include/core/SkTLazy.h',
+    'include/core/SkTRegistry.h',
+    'include/core/SkTScopedPtr.h',
+    'include/core/SkTSearch.h',
+    'include/core/SkTemplates.h',
+    'include/core/SkThread.h',
+    'include/core/SkThread_platform.h',
+    'include/core/SkTime.h',
+    'include/core/SkTrace.h',
+    'include/core/SkTypeface.h',
+    'include/core/SkTypes.h',
+    'include/core/SkUnPreMultiply.h',
+    'include/core/SkUnitMapper.h',
+    'include/core/SkUtils.h',
+    'include/core/SkWeakRefCnt.h',
+    'include/core/SkWriter32.h',
+    'include/core/SkXfermode.h',
+    'include/effects/SkBlurDrawLooper.h',
+    'include/effects/SkBlurMaskFilter.h',
+    'include/effects/SkDashPathEffect.h',
+    'include/effects/SkGradientShader.h',
+    'include/effects/SkLayerDrawLooper.h',
+    'include/effects/SkLayerRasterizer.h',
+    'include/effects/SkMorphologyImageFilter.h',
+    'include/gpu/GrAARectRenderer.h',
+    'include/gpu/GrCacheID.h',
+    'include/gpu/GrClipData.h',
+    'include/gpu/GrColor.h',
+    'include/gpu/GrConfig.h',
+    'include/gpu/GrContext.h',
+    'include/gpu/GrContextFactory.h',
+    'include/gpu/GrCustomStage.h',
+    'include/gpu/GrCustomStageUnitTest.h',
+    'include/gpu/GrFontScaler.h',
+    'include/gpu/GrGlyph.h',
+    'include/gpu/GrInstanceCounter.h',
+    'include/gpu/GrKey.h',
+    'include/gpu/GrMatrix.h',
+    'include/gpu/GrNoncopyable.h',
+    'include/gpu/GrPaint.h',
+    'include/gpu/GrPoint.h',
+    'include/gpu/GrProgramStageFactory.h',
+    'include/gpu/GrRect.h',
+    'include/gpu/GrRefCnt.h',
+    'include/gpu/GrRenderTarget.h',