Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey CLOSED TREE
authorMike Shal <mshal@mozilla.com>
Tue, 23 Apr 2013 17:54:15 -0400
changeset 133041 6e45e9f62d2171419a8d8780ad4779ff0488ccb5
parent 133040 d3b6e29faca11f2abb4a50679f83fb612d801022
child 133054 982dafef356cded9708b3dd20bf93da1c73bc3a6
child 133068 1ba392c9103c997e09afaaaab7a1d979559c85df
child 133598 8841f53d2f4a09fedf5628ba23b9494aa4540280
child 155343 d720bf6a90b9e45971948b919017eb3654b14cbb
push id24737
push usermshal@mozilla.com
push dateMon, 27 May 2013 18:09:31 +0000
treeherdermozilla-central@6e45e9f62d21 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjoey
bugs864774
milestone24.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey CLOSED TREE From 9e0ba7f425143f545eb6c4b26a9a96b5ade4d8e9 Mon Sep 17 00:00:00 2001
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/html/Makefile.in
accessible/src/html/moz.build
accessible/src/jsat/moz.build
accessible/src/other/Makefile.in
accessible/src/other/moz.build
accessible/src/shared.mozbuild
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/windows/sdn/Makefile.in
accessible/src/windows/sdn/moz.build
accessible/src/windows/uia/Makefile.in
accessible/src/windows/uia/moz.build
accessible/src/xpcom/Makefile.in
accessible/src/xpcom/moz.build
accessible/src/xul/Makefile.in
accessible/src/xul/moz.build
b2g/app/Makefile.in
b2g/app/moz.build
b2g/gaia/Makefile.in
b2g/gaia/moz.build
browser/app/Makefile.in
browser/app/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
browser/components/feeds/src/Makefile.in
browser/components/feeds/src/moz.build
browser/components/migration/src/Makefile.in
browser/components/migration/src/moz.build
browser/components/shell/src/Makefile.in
browser/components/shell/src/moz.build
browser/metro/shell/commandexecutehandler/Makefile.in
browser/metro/shell/commandexecutehandler/moz.build
browser/metro/shell/linktool/Makefile.in
browser/metro/shell/linktool/moz.build
browser/metro/shell/testing/Makefile.in
browser/metro/shell/testing/moz.build
build/stlport/Makefile.in
build/stlport/moz.build
build/unix/stdc++compat/Makefile.in
build/unix/stdc++compat/moz.build
build/win32/Makefile.in
build/win32/crashinjectdll/Makefile.in
build/win32/crashinjectdll/moz.build
build/win32/moz.build
build/win32/vmwarerecordinghelper/Makefile.in
build/win32/vmwarerecordinghelper/moz.build
caps/src/Makefile.in
caps/src/moz.build
chrome/src/Makefile.in
chrome/src/moz.build
content/base/src/Makefile.in
content/base/src/moz.build
content/canvas/src/Makefile.in
content/canvas/src/moz.build
content/events/src/Makefile.in
content/events/src/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/mathml/content/src/Makefile.in
content/mathml/content/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/blink/Makefile.in
content/media/webaudio/blink/moz.build
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/recognition/test/Makefile.in
content/media/webspeech/recognition/test/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/src/Makefile.in
content/xml/document/src/moz.build
content/xslt/src/base/Makefile.in
content/xslt/src/base/moz.build
content/xslt/src/xml/Makefile.in
content/xslt/src/xml/moz.build
content/xslt/src/xpath/Makefile.in
content/xslt/src/xpath/moz.build
content/xslt/src/xslt/Makefile.in
content/xslt/src/xslt/moz.build
content/xul/content/src/Makefile.in
content/xul/content/src/moz.build
content/xul/document/src/Makefile.in
content/xul/document/src/moz.build
content/xul/templates/src/Makefile.in
content/xul/templates/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/test/Makefile.in
dom/bindings/test/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/fm/Makefile.in
dom/fm/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/ipc/Makefile.in
dom/ipc/moz.build
dom/media/Makefile.in
dom/media/bridge/Makefile.in
dom/media/bridge/moz.build
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/hangui/Makefile.in
dom/plugins/ipc/hangui/moz.build
dom/plugins/ipc/moz.build
dom/power/Makefile.in
dom/power/moz.build
dom/quota/Makefile.in
dom/quota/moz.build
dom/src/events/Makefile.in
dom/src/events/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/offline/Makefile.in
dom/src/offline/moz.build
dom/src/storage/Makefile.in
dom/src/storage/moz.build
dom/system/Makefile.in
dom/system/android/Makefile.in
dom/system/android/moz.build
dom/system/gonk/Makefile.in
dom/system/gonk/moz.build
dom/system/moz.build
dom/system/unix/Makefile.in
dom/system/unix/moz.build
dom/system/windows/Makefile.in
dom/system/windows/moz.build
dom/telephony/Makefile.in
dom/telephony/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/composer/src/Makefile.in
editor/composer/src/moz.build
editor/libeditor/base/Makefile.in
editor/libeditor/base/moz.build
editor/libeditor/html/Makefile.in
editor/libeditor/html/moz.build
editor/libeditor/text/Makefile.in
editor/libeditor/text/moz.build
editor/txmgr/src/Makefile.in
editor/txmgr/src/moz.build
editor/txtsvc/src/Makefile.in
editor/txtsvc/src/moz.build
embedding/browser/build/Makefile.in
embedding/browser/build/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/build/Makefile.in
embedding/components/build/moz.build
embedding/components/commandhandler/src/Makefile.in
embedding/components/commandhandler/src/moz.build
embedding/components/find/src/Makefile.in
embedding/components/find/src/moz.build
embedding/components/printingui/src/mac/Makefile.in
embedding/components/printingui/src/mac/moz.build
embedding/components/printingui/src/os2/Makefile.in
embedding/components/printingui/src/os2/moz.build
embedding/components/printingui/src/unixshared/Makefile.in
embedding/components/printingui/src/unixshared/moz.build
embedding/components/printingui/src/win/Makefile.in
embedding/components/printingui/src/win/moz.build
embedding/components/webbrowserpersist/src/Makefile.in
embedding/components/webbrowserpersist/src/moz.build
embedding/components/windowwatcher/src/Makefile.in
embedding/components/windowwatcher/src/moz.build
embedding/tests/winEmbed/Makefile.in
embedding/tests/winEmbed/moz.build
extensions/auth/Makefile.in
extensions/auth/moz.build
extensions/cookie/Makefile.in
extensions/cookie/moz.build
extensions/gio/Makefile.in
extensions/gio/moz.build
extensions/gnomevfs/Makefile.in
extensions/gnomevfs/moz.build
extensions/permissions/Makefile.in
extensions/permissions/moz.build
extensions/pref/autoconfig/src/Makefile.in
extensions/pref/autoconfig/src/moz.build
extensions/spellcheck/hunspell/src/Makefile.in
extensions/spellcheck/hunspell/src/moz.build
extensions/spellcheck/src/Makefile.in
extensions/spellcheck/src/moz.build
extensions/universalchardet/src/base/Makefile.in
extensions/universalchardet/src/base/moz.build
extensions/universalchardet/src/xpcom/Makefile.in
extensions/universalchardet/src/xpcom/moz.build
extensions/widgetutils/src/Makefile.in
extensions/widgetutils/src/moz.build
gfx/2d/Makefile.in
gfx/2d/moz.build
gfx/angle/Makefile.in
gfx/angle/moz.build
gfx/angle/src/libEGL/Makefile.in
gfx/angle/src/libEGL/moz.build
gfx/angle/src/libGLESv2/Makefile.in
gfx/angle/src/libGLESv2/moz.build
gfx/cairo/cairo/src/Makefile.in
gfx/cairo/cairo/src/moz.build
gfx/gl/Makefile.in
gfx/gl/moz.build
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/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/build/Makefile.in
image/build/moz.build
image/decoders/Makefile.in
image/decoders/icon/Makefile.in
image/decoders/icon/android/Makefile.in
image/decoders/icon/android/moz.build
image/decoders/icon/gtk/Makefile.in
image/decoders/icon/gtk/moz.build
image/decoders/icon/moz.build
image/decoders/icon/os2/Makefile.in
image/decoders/icon/os2/moz.build
image/decoders/icon/qt/Makefile.in
image/decoders/icon/qt/moz.build
image/decoders/icon/win/Makefile.in
image/decoders/icon/win/moz.build
image/decoders/moz.build
image/encoders/bmp/Makefile.in
image/encoders/bmp/moz.build
image/encoders/ico/Makefile.in
image/encoders/ico/moz.build
image/encoders/jpeg/Makefile.in
image/encoders/jpeg/moz.build
image/encoders/png/Makefile.in
image/encoders/png/moz.build
image/src/Makefile.in
image/src/moz.build
intl/build/Makefile.in
intl/build/moz.build
intl/chardet/src/Makefile.in
intl/chardet/src/moz.build
intl/hyphenation/src/Makefile.in
intl/hyphenation/src/moz.build
intl/locale/src/Makefile.in
intl/locale/src/mac/Makefile.in
intl/locale/src/mac/moz.build
intl/locale/src/moz.build
intl/locale/src/os2/Makefile.in
intl/locale/src/os2/moz.build
intl/locale/src/unix/Makefile.in
intl/locale/src/unix/moz.build
intl/locale/src/windows/Makefile.in
intl/locale/src/windows/moz.build
intl/lwbrk/src/Makefile.in
intl/lwbrk/src/moz.build
intl/strres/src/Makefile.in
intl/strres/src/moz.build
intl/uconv/src/Makefile.in
intl/uconv/src/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/uconv/util/Makefile.in
intl/uconv/util/moz.build
intl/unicharutil/src/Makefile.in
intl/unicharutil/src/moz.build
intl/unicharutil/tests/Makefile.in
intl/unicharutil/tests/moz.build
intl/unicharutil/util/Makefile.in
intl/unicharutil/util/internal/Makefile.in
intl/unicharutil/util/internal/moz.build
intl/unicharutil/util/moz.build
ipc/app/Makefile.in
ipc/app/moz.build
ipc/chromium/Makefile.in
ipc/chromium/moz.build
ipc/dbus/Makefile.in
ipc/dbus/moz.build
ipc/glue/Makefile.in
ipc/glue/moz.build
ipc/ipdl/Makefile.in
ipc/ipdl/moz.build
ipc/ipdl/test/cxx/Makefile.in
ipc/ipdl/test/cxx/app/Makefile.in
ipc/ipdl/test/cxx/app/moz.build
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/ductwork/debugger/Makefile.in
js/ductwork/debugger/moz.build
js/ipc/Makefile.in
js/ipc/moz.build
js/jsd/Makefile.in
js/jsd/moz.build
js/src/Makefile.in
js/src/gdb/Makefile.in
js/src/gdb/moz.build
js/src/jsapi-tests/Makefile.in
js/src/jsapi-tests/moz.build
js/src/moz.build
js/src/shell/Makefile.in
js/src/shell/moz.build
js/xpconnect/loader/Makefile.in
js/xpconnect/loader/moz.build
js/xpconnect/shell/Makefile.in
js/xpconnect/shell/moz.build
js/xpconnect/src/Makefile.in
js/xpconnect/src/moz.build
js/xpconnect/tests/components/native/Makefile.in
js/xpconnect/tests/components/native/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/mathml/Makefile.in
layout/mathml/moz.build
layout/printing/Makefile.in
layout/printing/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/src/Makefile.in
layout/xul/base/src/moz.build
layout/xul/grid/Makefile.in
layout/xul/grid/moz.build
layout/xul/tree/Makefile.in
layout/xul/tree/moz.build
media/libsoundtouch/src/Makefile.in
media/libsoundtouch/src/moz.build
media/mtransport/build/Makefile.in
media/mtransport/build/moz.build
media/mtransport/standalone/Makefile.in
media/mtransport/standalone/moz.build
media/omx-plugin/Makefile.in
media/omx-plugin/froyo/Makefile.in
media/omx-plugin/froyo/moz.build
media/omx-plugin/gb/Makefile.in
media/omx-plugin/gb/moz.build
media/omx-plugin/gb235/Makefile.in
media/omx-plugin/gb235/moz.build
media/omx-plugin/hc/Makefile.in
media/omx-plugin/hc/moz.build
media/omx-plugin/jb-htc/Makefile.in
media/omx-plugin/jb-htc/moz.build
media/omx-plugin/lib/froyo/libstagefright/Makefile.in
media/omx-plugin/lib/froyo/libstagefright/moz.build
media/omx-plugin/lib/gb/libstagefright/Makefile.in
media/omx-plugin/lib/gb/libstagefright/moz.build
media/omx-plugin/lib/gb/libstagefright_color_conversion/Makefile.in
media/omx-plugin/lib/gb/libstagefright_color_conversion/moz.build
media/omx-plugin/lib/gb/libutils/Makefile.in
media/omx-plugin/lib/gb/libutils/moz.build
media/omx-plugin/lib/gb235/libstagefright/Makefile.in
media/omx-plugin/lib/gb235/libstagefright/moz.build
media/omx-plugin/lib/hc/libstagefright/Makefile.in
media/omx-plugin/lib/hc/libstagefright/moz.build
media/omx-plugin/lib/ics/libstagefright/Makefile.in
media/omx-plugin/lib/ics/libstagefright/moz.build
media/omx-plugin/lib/ics/libutils/Makefile.in
media/omx-plugin/lib/ics/libutils/moz.build
media/omx-plugin/moz.build
media/omx-plugin/sony/Makefile.in
media/omx-plugin/sony/moz.build
memory/mozalloc/Makefile.in
memory/mozalloc/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/libjar/Makefile.in
modules/libjar/moz.build
modules/libjar/zipwriter/src/Makefile.in
modules/libjar/zipwriter/src/moz.build
modules/libpref/src/Makefile.in
modules/libpref/src/moz.build
mozglue/android/Makefile.in
mozglue/android/moz.build
mozglue/build/Makefile.in
mozglue/build/moz.build
mozglue/linker/Makefile.in
mozglue/linker/moz.build
mozglue/tests/Makefile.in
mozglue/tests/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/dash/mpd/Makefile.in
netwerk/dash/mpd/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/protocol/about/Makefile.in
netwerk/protocol/about/moz.build
netwerk/protocol/data/Makefile.in
netwerk/protocol/data/moz.build
netwerk/protocol/device/Makefile.in
netwerk/protocol/device/moz.build
netwerk/protocol/file/Makefile.in
netwerk/protocol/file/moz.build
netwerk/protocol/ftp/Makefile.in
netwerk/protocol/ftp/moz.build
netwerk/protocol/http/Makefile.in
netwerk/protocol/http/moz.build
netwerk/protocol/res/Makefile.in
netwerk/protocol/res/moz.build
netwerk/protocol/viewsource/Makefile.in
netwerk/protocol/viewsource/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/socket/Makefile.in
netwerk/socket/moz.build
netwerk/streamconv/converters/Makefile.in
netwerk/streamconv/converters/moz.build
netwerk/streamconv/src/Makefile.in
netwerk/streamconv/src/moz.build
netwerk/streamconv/test/Makefile.in
netwerk/streamconv/test/moz.build
netwerk/system/android/Makefile.in
netwerk/system/android/moz.build
netwerk/system/maemo/Makefile.in
netwerk/system/maemo/moz.build
netwerk/system/qt/Makefile.in
netwerk/system/qt/moz.build
netwerk/system/win32/Makefile.in
netwerk/system/win32/moz.build
netwerk/test/Makefile.in
netwerk/test/moz.build
netwerk/wifi/Makefile.in
netwerk/wifi/moz.build
other-licenses/skia-npapi/Makefile.in
other-licenses/skia-npapi/moz.build
other-licenses/snappy/Makefile.in
other-licenses/snappy/moz.build
parser/html/Makefile.in
parser/html/moz.build
parser/htmlparser/src/Makefile.in
parser/htmlparser/src/moz.build
parser/xml/src/Makefile.in
parser/xml/src/moz.build
profile/dirserviceprovider/src/Makefile.in
profile/dirserviceprovider/src/moz.build
profile/dirserviceprovider/standalone/Makefile.in
profile/dirserviceprovider/standalone/moz.build
rdf/base/src/Makefile.in
rdf/base/src/moz.build
rdf/build/Makefile.in
rdf/build/moz.build
rdf/datasource/src/Makefile.in
rdf/datasource/src/moz.build
rdf/tests/dsds/Makefile.in
rdf/tests/dsds/moz.build
rdf/tests/rdfcat/Makefile.in
rdf/tests/rdfcat/moz.build
rdf/tests/rdfpoll/Makefile.in
rdf/tests/rdfpoll/moz.build
rdf/tests/triplescat/Makefile.in
rdf/tests/triplescat/moz.build
rdf/util/src/Makefile.in
rdf/util/src/internal/Makefile.in
rdf/util/src/internal/moz.build
rdf/util/src/moz.build
security/manager/boot/src/Makefile.in
security/manager/boot/src/moz.build
security/manager/pki/src/Makefile.in
security/manager/pki/src/moz.build
security/manager/ssl/src/Makefile.in
security/manager/ssl/src/moz.build
services/crypto/component/Makefile.in
services/crypto/component/moz.build
startupcache/Makefile.in
startupcache/moz.build
storage/build/Makefile.in
storage/build/moz.build
storage/src/Makefile.in
storage/src/moz.build
testing/gtest/Makefile.in
testing/gtest/moz.build
testing/mochitest/ssltunnel/Makefile.in
testing/mochitest/ssltunnel/moz.build
testing/tools/screenshot/Makefile.in
testing/tools/screenshot/moz.build
toolkit/components/alerts/Makefile.in
toolkit/components/alerts/moz.build
toolkit/components/autocomplete/Makefile.in
toolkit/components/autocomplete/moz.build
toolkit/components/build/Makefile.in
toolkit/components/build/moz.build
toolkit/components/commandlines/Makefile.in
toolkit/components/commandlines/moz.build
toolkit/components/ctypes/Makefile.in
toolkit/components/ctypes/moz.build
toolkit/components/ctypes/tests/Makefile.in
toolkit/components/ctypes/tests/moz.build
toolkit/components/diskspacewatcher/Makefile.in
toolkit/components/diskspacewatcher/moz.build
toolkit/components/downloads/Makefile.in
toolkit/components/downloads/moz.build
toolkit/components/filepicker/Makefile.in
toolkit/components/filepicker/moz.build
toolkit/components/find/Makefile.in
toolkit/components/find/moz.build
toolkit/components/intl/Makefile.in
toolkit/components/intl/moz.build
toolkit/components/maintenanceservice/Makefile.in
toolkit/components/maintenanceservice/moz.build
toolkit/components/mediasniffer/Makefile.in
toolkit/components/mediasniffer/moz.build
toolkit/components/parentalcontrols/Makefile.in
toolkit/components/parentalcontrols/moz.build
toolkit/components/perf/Makefile.in
toolkit/components/perf/moz.build
toolkit/components/places/Makefile.in
toolkit/components/places/moz.build
toolkit/components/protobuf/Makefile.in
toolkit/components/protobuf/moz.build
toolkit/components/reflect/Makefile.in
toolkit/components/reflect/moz.build
toolkit/components/remote/Makefile.in
toolkit/components/remote/moz.build
toolkit/components/satchel/Makefile.in
toolkit/components/satchel/moz.build
toolkit/components/startup/Makefile.in
toolkit/components/startup/moz.build
toolkit/components/statusfilter/Makefile.in
toolkit/components/statusfilter/moz.build
toolkit/components/telemetry/Makefile.in
toolkit/components/telemetry/moz.build
toolkit/components/typeaheadfind/Makefile.in
toolkit/components/typeaheadfind/moz.build
toolkit/components/url-classifier/Makefile.in
toolkit/components/url-classifier/moz.build
toolkit/crashreporter/Makefile.in
toolkit/crashreporter/breakpad-windows-libxul/Makefile.in
toolkit/crashreporter/breakpad-windows-libxul/moz.build
toolkit/crashreporter/breakpad-windows-standalone/Makefile.in
toolkit/crashreporter/breakpad-windows-standalone/moz.build
toolkit/crashreporter/client/Makefile.in
toolkit/crashreporter/client/moz.build
toolkit/crashreporter/google-breakpad/src/client/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/linux/handler/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/moz.build
toolkit/crashreporter/google-breakpad/src/client/mac/crash_generation/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/mac/crash_generation/moz.build
toolkit/crashreporter/google-breakpad/src/client/mac/handler/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/mac/handler/moz.build
toolkit/crashreporter/google-breakpad/src/client/moz.build
toolkit/crashreporter/google-breakpad/src/client/solaris/handler/Makefile.in
toolkit/crashreporter/google-breakpad/src/client/solaris/handler/moz.build
toolkit/crashreporter/google-breakpad/src/common/Makefile.in
toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
toolkit/crashreporter/google-breakpad/src/common/mac/Makefile.in
toolkit/crashreporter/google-breakpad/src/common/mac/moz.build
toolkit/crashreporter/google-breakpad/src/common/moz.build
toolkit/crashreporter/google-breakpad/src/common/solaris/Makefile.in
toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build
toolkit/crashreporter/google-breakpad/src/processor/Makefile.in
toolkit/crashreporter/google-breakpad/src/processor/moz.build
toolkit/crashreporter/injector/Makefile.in
toolkit/crashreporter/injector/moz.build
toolkit/crashreporter/moz.build
toolkit/crashreporter/test/Makefile.in
toolkit/crashreporter/test/moz.build
toolkit/devtools/server/Makefile.in
toolkit/devtools/server/moz.build
toolkit/identity/Makefile.in
toolkit/identity/moz.build
toolkit/library/Makefile.in
toolkit/library/moz.build
toolkit/library/winvccorlib/Makefile.in
toolkit/library/winvccorlib/moz.build
toolkit/mozapps/plugins/tests/Makefile.in
toolkit/mozapps/plugins/tests/moz.build
toolkit/mozapps/update/common/Makefile.in
toolkit/mozapps/update/common/moz.build
toolkit/mozapps/update/test/Makefile.in
toolkit/mozapps/update/test/moz.build
toolkit/mozapps/update/updater/Makefile.in
toolkit/mozapps/update/updater/moz.build
toolkit/profile/Makefile.in
toolkit/profile/moz.build
toolkit/system/androidproxy/Makefile.in
toolkit/system/androidproxy/moz.build
toolkit/system/dbus/Makefile.in
toolkit/system/dbus/moz.build
toolkit/system/gnome/Makefile.in
toolkit/system/gnome/moz.build
toolkit/system/unixproxy/Makefile.in
toolkit/system/unixproxy/moz.build
toolkit/system/windowsproxy/Makefile.in
toolkit/system/windowsproxy/moz.build
toolkit/xre/Makefile.in
toolkit/xre/moz.build
toolkit/xre/test/win/Makefile.in
toolkit/xre/test/win/moz.build
tools/jprof/Makefile.in
tools/jprof/moz.build
tools/jprof/stub/Makefile.in
tools/jprof/stub/moz.build
tools/profiler/Makefile.in
tools/profiler/moz.build
tools/trace-malloc/Makefile.in
tools/trace-malloc/lib/Makefile.in
tools/trace-malloc/lib/moz.build
tools/trace-malloc/moz.build
uriloader/base/Makefile.in
uriloader/base/moz.build
uriloader/exthandler/Makefile.in
uriloader/exthandler/moz.build
uriloader/exthandler/tests/Makefile.in
uriloader/exthandler/tests/moz.build
uriloader/prefetch/Makefile.in
uriloader/prefetch/moz.build
view/src/Makefile.in
view/src/moz.build
webapprt/gtk2/Makefile.in
webapprt/gtk2/moz.build
webapprt/win/Makefile.in
webapprt/win/moz.build
widget/android/Makefile.in
widget/android/moz.build
widget/gonk/Makefile.in
widget/gonk/libdisplay/Makefile.in
widget/gonk/libdisplay/moz.build
widget/gonk/moz.build
widget/gtk2/Makefile.in
widget/gtk2/moz.build
widget/os2/Makefile.in
widget/os2/moz.build
widget/qt/Makefile.in
widget/qt/faststartupqt/Makefile.in
widget/qt/faststartupqt/moz.build
widget/qt/moz.build
widget/shared/Makefile.in
widget/shared/moz.build
widget/windows/Makefile.in
widget/windows/moz.build
widget/windows/winrt/Makefile.in
widget/windows/winrt/moz.build
widget/xpwidgets/Makefile.in
widget/xpwidgets/moz.build
widget/xremoteclient/Makefile.in
widget/xremoteclient/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/glue/nomozalloc/Makefile.in
xpcom/glue/nomozalloc/moz.build
xpcom/glue/standalone/Makefile.in
xpcom/glue/standalone/moz.build
xpcom/glue/standalone/staticruntime/Makefile.in
xpcom/glue/standalone/staticruntime/moz.build
xpcom/glue/staticruntime/Makefile.in
xpcom/glue/staticruntime/moz.build
xpcom/glue/tests/gtest/Makefile.in
xpcom/glue/tests/gtest/moz.build
xpcom/io/Makefile.in
xpcom/io/moz.build
xpcom/reflect/xptcall/src/Makefile.in
xpcom/reflect/xptcall/src/md/os2/Makefile.in
xpcom/reflect/xptcall/src/md/os2/moz.build
xpcom/reflect/xptcall/src/md/test/Makefile.in
xpcom/reflect/xptcall/src/md/test/moz.build
xpcom/reflect/xptcall/src/md/unix/Makefile.in
xpcom/reflect/xptcall/src/md/unix/moz.build
xpcom/reflect/xptcall/src/md/win32/Makefile.in
xpcom/reflect/xptcall/src/md/win32/moz.build
xpcom/reflect/xptcall/src/moz.build
xpcom/reflect/xptcall/tests/Makefile.in
xpcom/reflect/xptcall/tests/moz.build
xpcom/reflect/xptinfo/src/Makefile.in
xpcom/reflect/xptinfo/src/moz.build
xpcom/reflect/xptinfo/tests/Makefile.in
xpcom/reflect/xptinfo/tests/moz.build
xpcom/sample/Makefile.in
xpcom/sample/moz.build
xpcom/sample/program/Makefile.in
xpcom/sample/program/moz.build
xpcom/string/src/Makefile.in
xpcom/string/src/moz.build
xpcom/tests/Makefile.in
xpcom/tests/bug656331_component/Makefile.in
xpcom/tests/bug656331_component/moz.build
xpcom/tests/component/Makefile.in
xpcom/tests/component/moz.build
xpcom/tests/component_no_aslr/Makefile.in
xpcom/tests/component_no_aslr/moz.build
xpcom/tests/external/Makefile.in
xpcom/tests/external/moz.build
xpcom/tests/moz.build
xpcom/threads/Makefile.in
xpcom/threads/moz.build
xpcom/windbgdlg/Makefile.in
xpcom/windbgdlg/moz.build
xpfe/appshell/src/Makefile.in
xpfe/appshell/src/moz.build
xpfe/components/autocomplete/src/Makefile.in
xpfe/components/autocomplete/src/moz.build
xpfe/components/build/Makefile.in
xpfe/components/build/moz.build
xpfe/components/directory/Makefile.in
xpfe/components/directory/moz.build
xpfe/components/windowds/Makefile.in
xpfe/components/windowds/moz.build
xulrunner/app/Makefile.in
xulrunner/app/moz.build
xulrunner/examples/simple/components/src/Makefile.in
xulrunner/examples/simple/components/src/moz.build
xulrunner/stub/Makefile.in
xulrunner/stub/moz.build
xulrunner/tools/redit/Makefile.in
xulrunner/tools/redit/moz.build
--- a/accessible/src/atk/Makefile.in
+++ b/accessible/src/atk/Makefile.in
@@ -8,39 +8,16 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_toolkit_s
 EXPORT_LIBRARY = ..
 LIBXUL_LIBRARY = 1
 
-
-CPPSRCS = \
-  AccessibleWrap.cpp \
-  ApplicationAccessibleWrap.cpp \
-  AtkSocketAccessible.cpp \
-  DocAccessibleWrap.cpp \
-  nsMaiInterfaceComponent.cpp \
-  nsMaiInterfaceAction.cpp \
-  nsMaiInterfaceText.cpp \
-  nsMaiInterfaceEditableText.cpp \
-  nsMaiInterfaceSelection.cpp \
-  nsMaiInterfaceValue.cpp \
-  nsMaiHyperlink.cpp \
-  nsMaiInterfaceHypertext.cpp \
-  nsMaiInterfaceHyperlinkImpl.cpp \
-  nsMaiInterfaceTable.cpp \
-  nsMaiInterfaceDocument.cpp \
-  nsMaiInterfaceImage.cpp \
-  Platform.cpp \
-  RootAccessibleWrap.cpp \
-  UtilInterface.cpp \
-  $(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
@@ -6,8 +6,30 @@
 
 MODULE = 'accessibility'
 
 EXPORTS.mozilla.a11y += [
     'AccessibleWrap.h',
     'HyperTextAccessibleWrap.h',
 ]
 
+CPP_SOURCES += [
+    'AccessibleWrap.cpp',
+    'ApplicationAccessibleWrap.cpp',
+    'AtkSocketAccessible.cpp',
+    'DocAccessibleWrap.cpp',
+    'Platform.cpp',
+    'RootAccessibleWrap.cpp',
+    'UtilInterface.cpp',
+    'nsMaiHyperlink.cpp',
+    'nsMaiInterfaceAction.cpp',
+    'nsMaiInterfaceComponent.cpp',
+    'nsMaiInterfaceDocument.cpp',
+    'nsMaiInterfaceEditableText.cpp',
+    'nsMaiInterfaceHyperlinkImpl.cpp',
+    'nsMaiInterfaceHypertext.cpp',
+    'nsMaiInterfaceImage.cpp',
+    'nsMaiInterfaceSelection.cpp',
+    'nsMaiInterfaceTable.cpp',
+    'nsMaiInterfaceText.cpp',
+    'nsMaiInterfaceValue.cpp',
+]
+
--- a/accessible/src/base/Makefile.in
+++ b/accessible/src/base/Makefile.in
@@ -7,50 +7,16 @@ topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_base_s
 LIBXUL_LIBRARY = 1
 
-
-CPPSRCS = \
-  AccCollector.cpp \
-  AccEvent.cpp \
-  AccGroupInfo.cpp \
-  AccIterator.cpp \
-  Filters.cpp \
-  ARIAMap.cpp \
-  ARIAStateMap.cpp \
-  DocManager.cpp \
-  EventQueue.cpp \
-  FocusManager.cpp \
-  NotificationController.cpp \
-  nsAccessNode.cpp \
-  nsCoreUtils.cpp \
-  nsAccUtils.cpp \
-  nsAccessibilityService.cpp \
-  nsAccessiblePivot.cpp \
-  nsEventShell.cpp \
-  nsTextEquivUtils.cpp \
-  RoleAsserts.cpp \
-  SelectionManager.cpp \
-  StyleInfo.cpp \
-  TextAttrs.cpp \
-  TextUpdater.cpp \
-  TreeWalker.cpp \
-  $(NULL)
-
-ifneq ($(A11Y_LOG),0)
-CPPSRCS += \
-  Logging.cpp \
-  $(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,14 +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/.
 
+include('../shared.mozbuild')
+
 MODULE = 'accessibility'
 
 EXPORTS += [
     'AccEvent.h',
     'nsAccessNode.h',
     'nsAccessibilityService.h',
 ]
 
@@ -21,8 +23,40 @@ EXPORTS.mozilla.a11y += [
     'SelectionManager.h',
     'States.h',
 ]
 
 if CONFIG['MOZ_DEBUG']:
     EXPORTS.mozilla.a11y += [
         'Logging.h',
     ]
+
+CPP_SOURCES += [
+    'AccCollector.cpp',
+    'AccEvent.cpp',
+    'AccGroupInfo.cpp',
+    'AccIterator.cpp',
+    'ARIAMap.cpp',
+    'ARIAStateMap.cpp',
+    'DocManager.cpp',
+    'EventQueue.cpp',
+    'Filters.cpp',
+    'FocusManager.cpp',
+    'NotificationController.cpp',
+    'nsAccessibilityService.cpp',
+    'nsAccessiblePivot.cpp',
+    'nsAccessNode.cpp',
+    'nsAccUtils.cpp',
+    'nsCoreUtils.cpp',
+    'nsEventShell.cpp',
+    'nsTextEquivUtils.cpp',
+    'RoleAsserts.cpp',
+    'SelectionManager.cpp',
+    'StyleInfo.cpp',
+    'TextAttrs.cpp',
+    'TextUpdater.cpp',
+    'TreeWalker.cpp',
+]
+
+if a11y_log:
+    CPP_SOURCES += [
+        'Logging.cpp',
+    ]
--- a/accessible/src/generic/Makefile.in
+++ b/accessible/src/generic/Makefile.in
@@ -7,32 +7,16 @@ topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_generic_s
 LIBXUL_LIBRARY = 1
 
-
-CPPSRCS = \
-  Accessible.cpp \
-  ApplicationAccessible.cpp \
-  ARIAGridAccessible.cpp \
-  BaseAccessibles.cpp \
-  DocAccessible.cpp \
-  FormControlAccessible.cpp \
-  HyperTextAccessible.cpp \
-  ImageAccessible.cpp \
-  OuterDocAccessible.cpp \
-  RootAccessible.cpp \
-  TableCellAccessible.cpp \
-  TextLeafAccessible.cpp \
-  $(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
@@ -7,8 +7,23 @@
 MODULE = 'accessibility'
 
 EXPORTS.mozilla.a11y += [
     'Accessible.h',
     'DocAccessible.h',
     'HyperTextAccessible.h',
 ]
 
+CPP_SOURCES += [
+    'ARIAGridAccessible.cpp',
+    'Accessible.cpp',
+    'ApplicationAccessible.cpp',
+    'BaseAccessibles.cpp',
+    'DocAccessible.cpp',
+    'FormControlAccessible.cpp',
+    'HyperTextAccessible.cpp',
+    'ImageAccessible.cpp',
+    'OuterDocAccessible.cpp',
+    'RootAccessible.cpp',
+    'TableCellAccessible.cpp',
+    'TextLeafAccessible.cpp',
+]
+
--- a/accessible/src/html/Makefile.in
+++ b/accessible/src/html/Makefile.in
@@ -8,29 +8,16 @@ topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_html_s
 LIBXUL_LIBRARY = 1
 
-
-
-CPPSRCS = \
-  HTMLCanvasAccessible.cpp \
-  HTMLElementAccessibles.cpp \
-  HTMLFormControlAccessible.cpp \
-  HTMLImageMapAccessible.cpp \
-  HTMLLinkAccessible.cpp \
-  HTMLListAccessible.cpp \
-  HTMLSelectAccessible.cpp \
-  HTMLTableAccessible.cpp \
-  $(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 \
   -I$(srcdir)/../generic \
--- a/accessible/src/html/moz.build
+++ b/accessible/src/html/moz.build
@@ -1,8 +1,19 @@
 # -*- 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'
 
+CPP_SOURCES += [
+    'HTMLCanvasAccessible.cpp',
+    'HTMLElementAccessibles.cpp',
+    'HTMLFormControlAccessible.cpp',
+    'HTMLImageMapAccessible.cpp',
+    'HTMLLinkAccessible.cpp',
+    'HTMLListAccessible.cpp',
+    'HTMLSelectAccessible.cpp',
+    'HTMLTableAccessible.cpp',
+]
+
--- a/accessible/src/jsat/moz.build
+++ b/accessible/src/jsat/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 = 'alerts'
 
+CPP_SOURCES += [
+    'nsAccessibilityFactory.cpp',
+]
+
--- a/accessible/src/other/Makefile.in
+++ b/accessible/src/other/Makefile.in
@@ -8,22 +8,16 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_toolkit_s
 EXPORT_LIBRARY = ..
 LIBXUL_LIBRARY = 1
 
-
-CPPSRCS = \
-  AccessibleWrap.cpp \
-  Platform.cpp \
-  $(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
@@ -6,8 +6,13 @@
 
 MODULE = 'accessibility'
 
 EXPORTS.mozilla.a11y += [
     'AccessibleWrap.h',
     'HyperTextAccessibleWrap.h',
 ]
 
+CPP_SOURCES += [
+    'AccessibleWrap.cpp',
+    'Platform.cpp',
+]
+
new file mode 100644
--- /dev/null
+++ b/accessible/src/shared.mozbuild
@@ -0,0 +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/.
+
+a11y_log = 0
+if CONFIG['MOZ_DEBUG']:
+    a11y_log = 1
+
+if CONFIG['MOZ_UPDATE_CHANNEL'] not in ('aurora', 'beta', 'release', 'esr'):
+    a11y_log = 1
--- a/accessible/src/windows/ia2/Makefile.in
+++ b/accessible/src/windows/ia2/Makefile.in
@@ -8,31 +8,16 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_toolkit_ia2_s
 EXPORT_LIBRARY = 1
 LIBXUL_LIBRARY = 1
 
-
-CPPSRCS += \
-  ia2AccessibleAction.cpp \
-  ia2AccessibleComponent.cpp \
-  ia2AccessibleEditableText.cpp \
-  ia2AccessibleHyperlink.cpp \
-  ia2AccessibleHypertext.cpp \
-  ia2AccessibleImage.cpp \
-  ia2AccessibleRelation.cpp \
-  ia2AccessibleTable.cpp \
-  ia2AccessibleTableCell.cpp \
-  ia2AccessibleText.cpp \
-  ia2AccessibleValue.cpp \
-  $(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
@@ -11,8 +11,22 @@ EXPORTS += [
     'ia2AccessibleComponent.h',
     'ia2AccessibleEditableText.h',
     'ia2AccessibleHyperlink.h',
     'ia2AccessibleHypertext.h',
     'ia2AccessibleText.h',
     'ia2AccessibleValue.h',
 ]
 
+CPP_SOURCES += [
+    'ia2AccessibleAction.cpp',
+    'ia2AccessibleComponent.cpp',
+    'ia2AccessibleEditableText.cpp',
+    'ia2AccessibleHyperlink.cpp',
+    'ia2AccessibleHypertext.cpp',
+    'ia2AccessibleImage.cpp',
+    'ia2AccessibleRelation.cpp',
+    'ia2AccessibleTable.cpp',
+    'ia2AccessibleTableCell.cpp',
+    'ia2AccessibleText.cpp',
+    'ia2AccessibleValue.cpp',
+]
+
--- a/accessible/src/windows/msaa/Makefile.in
+++ b/accessible/src/windows/msaa/Makefile.in
@@ -8,44 +8,16 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_toolkit_msaa_s
 EXPORT_LIBRARY = 1
 LIBXUL_LIBRARY = 1
 
-
-CPPSRCS = \
-  AccessibleWrap.cpp \
-  ApplicationAccessibleWrap.cpp \
-  ARIAGridAccessibleWrap.cpp \
-  DocAccessibleWrap.cpp \
-  HTMLTableAccessibleWrap.cpp \
-  HTMLWin32ObjectAccessible.cpp \
-  HyperTextAccessibleWrap.cpp \
-  ImageAccessibleWrap.cpp \
-  IUnknownImpl.cpp \
-  nsWinUtils.cpp \
-  Compatibility.cpp \
-  EnumVariant.cpp \
-  Platform.cpp \
-  ServiceProvider.cpp \
-  RootAccessibleWrap.cpp \
-  TextLeafAccessibleWrap.cpp \
-  $(NULL)
-
-ifdef MOZ_XUL
-CPPSRCS += \
-  XULListboxAccessibleWrap.cpp \
-  XULMenuAccessibleWrap.cpp \
-  XULTreeGridAccessibleWrap.cpp \
-  $(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/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
@@ -11,8 +11,33 @@ EXPORTS += [
 ]
 
 EXPORTS.mozilla.a11y += [
     'AccessibleWrap.h',
     'Compatibility.h',
     'HyperTextAccessibleWrap.h',
 ]
 
+CPP_SOURCES += [
+    'AccessibleWrap.cpp',
+    'ApplicationAccessibleWrap.cpp',
+    'ARIAGridAccessibleWrap.cpp',
+    'DocAccessibleWrap.cpp',
+    'HTMLTableAccessibleWrap.cpp',
+    'HTMLWin32ObjectAccessible.cpp',
+    'HyperTextAccessibleWrap.cpp',
+    'ImageAccessibleWrap.cpp',
+    'IUnknownImpl.cpp',
+    'nsWinUtils.cpp',
+    'Compatibility.cpp',
+    'EnumVariant.cpp',
+    'Platform.cpp',
+    'ServiceProvider.cpp',
+    'RootAccessibleWrap.cpp',
+    'TextLeafAccessibleWrap.cpp',
+]
+
+if CONFIG['MOZ_XUL']:
+    CPP_SOURCES += [
+        'XULListboxAccessibleWrap.cpp',
+        'XULMenuAccessibleWrap.cpp',
+        'XULTreeGridAccessibleWrap.cpp',
+    ]
--- a/accessible/src/windows/sdn/Makefile.in
+++ b/accessible/src/windows/sdn/Makefile.in
@@ -11,21 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_toolkit_sdn_s
 EXPORT_LIBRARY = 1
 LIBXUL_LIBRARY = 1
 # 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
 
-CPPSRCS += \
-  sdnAccessible.cpp \
-  sdnTextAccessible.cpp \
-  $(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)/config/rules.mk
 
 LOCAL_INCLUDES += \
   -I$(srcdir) \
--- a/accessible/src/windows/sdn/moz.build
+++ b/accessible/src/windows/sdn/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 = 'accessibility'
 
+CPP_SOURCES += [
+    'sdnAccessible.cpp',
+    'sdnTextAccessible.cpp',
+]
+
--- a/accessible/src/windows/uia/Makefile.in
+++ b/accessible/src/windows/uia/Makefile.in
@@ -11,21 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_toolkit_uia_s
 EXPORT_LIBRARY = ..
 LIBXUL_LIBRARY = 1
 # 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
 
-
-CPPSRCS += \
-  uiaRawElmProvider.cpp \
-  $(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)/config/rules.mk
 
 LOCAL_INCLUDES += \
   -I$(srcdir) \
--- a/accessible/src/windows/uia/moz.build
+++ b/accessible/src/windows/uia/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'
 
+CPP_SOURCES += [
+    'uiaRawElmProvider.cpp',
+]
+
--- a/accessible/src/xpcom/Makefile.in
+++ b/accessible/src/xpcom/Makefile.in
@@ -8,23 +8,16 @@ topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_xpcom_s
 LIBXUL_LIBRARY = 1
 
-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.
 FORCE_STATIC_LIB = 1
 
 EXTRA_MDDEPEND_FILES = xpcAccEvents.pp
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES = \
--- a/accessible/src/xpcom/moz.build
+++ b/accessible/src/xpcom/moz.build
@@ -5,8 +5,15 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULE = 'accessibility'
 
 EXPORTS += [
     'xpcAccEvents.h',
 ]
 
+CPP_SOURCES += [
+    'nsAccessibleRelation.cpp',
+    'xpcAccEvents.cpp',
+    'xpcAccessibleTable.cpp',
+    'xpcAccessibleTableCell.cpp',
+]
+
--- a/accessible/src/xul/Makefile.in
+++ b/accessible/src/xul/Makefile.in
@@ -8,33 +8,16 @@ topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = accessibility_xul_s
 LIBXUL_LIBRARY = 1
 
-
-
-CPPSRCS = \
-  XULAlertAccessible.cpp \
-  XULColorPickerAccessible.cpp \
-  XULComboboxAccessible.cpp \
-  XULElementAccessibles.cpp \
-  XULFormControlAccessible.cpp \
-  XULListboxAccessible.cpp \
-  XULMenuAccessible.cpp \
-  XULSelectControlAccessible.cpp \
-  XULSliderAccessible.cpp \
-  XULTabAccessible.cpp \
-  XULTreeAccessible.cpp \
-  XULTreeGridAccessible.cpp \
-  $(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/xul/moz.build
+++ b/accessible/src/xul/moz.build
@@ -1,8 +1,23 @@
 # -*- 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'
 
+CPP_SOURCES += [
+    'XULAlertAccessible.cpp',
+    'XULColorPickerAccessible.cpp',
+    'XULComboboxAccessible.cpp',
+    'XULElementAccessibles.cpp',
+    'XULFormControlAccessible.cpp',
+    'XULListboxAccessible.cpp',
+    'XULMenuAccessible.cpp',
+    'XULSelectControlAccessible.cpp',
+    'XULSliderAccessible.cpp',
+    'XULTabAccessible.cpp',
+    'XULTreeAccessible.cpp',
+    'XULTreeGridAccessible.cpp',
+]
+
--- a/b2g/app/Makefile.in
+++ b/b2g/app/Makefile.in
@@ -14,18 +14,16 @@ include $(topsrcdir)/config/makefiles/rc
 PREF_JS_EXPORTS = $(srcdir)/b2g.js
 
 ifdef ENABLE_MARIONETTE
 DEFINES += -DENABLE_MARIONETTE=1
 endif
 
 ifndef LIBXUL_SDK
 
-CPPSRCS = nsBrowserApp.cpp
-
 ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
 LIBS += \
   -lui \
   -lEGL \
   -lhardware_legacy \
   -lhardware \
   -lcutils \
   $(DEPTH)/media/libpng/$(LIB_PREFIX)mozpng.$(LIB_SUFFIX) \
--- a/b2g/app/moz.build
+++ b/b2g/app/moz.build
@@ -4,8 +4,11 @@
 # 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 not CONFIG['LIBXUL_SDK']:
     if CONFIG['GAIADIR']:
         PROGRAM = CONFIG['MOZ_APP_NAME'] + "-bin"
     else:
         PROGRAM = CONFIG['MOZ_APP_NAME']
+    CPP_SOURCES += [
+        'nsBrowserApp.cpp',
+    ]
--- a/b2g/gaia/Makefile.in
+++ b/b2g/gaia/Makefile.in
@@ -7,17 +7,16 @@ topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 GAIA_PATH := gaia/profile
 
 ifeq ($(OS_ARCH),WINNT)
-CPPSRCS = run-b2g.cpp
 DEFINES += \
   -DB2G_NAME=L\"$(MOZ_APP_NAME)-bin$(BIN_SUFFIX)\" \
   -DGAIA_PATH=L\"$(subst /,\\\\,$(GAIA_PATH))\" \
   $(NULL)
 GAIA_MAKE=make
 else # Non-windows machines use the same wrapper program
 CSRCS = run-b2g.c
 DEFINES += \
--- a/b2g/gaia/moz.build
+++ b/b2g/gaia/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/.
 
 PROGRAM = CONFIG['MOZ_APP_NAME']
 
+if CONFIG['OS_ARCH'] == 'WINNT':
+    CPP_SOURCES += [
+        'run-b2g.cpp',
+    ]
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -38,18 +38,16 @@ endif
 
 ifdef LIBXUL_SDK #{
 PREF_JS_EXPORTS += $(srcdir)/profile/channel-prefs.js
 DEFINES += -DLIBXUL_SDK
 endif #} LIBXUL_SDK
 
 # Build a binary bootstrapping with XRE_main
 
-CPPSRCS = nsBrowserApp.cpp
-
 LOCAL_INCLUDES += \
   -I$(topsrcdir)/toolkit/xre \
   -I$(topsrcdir)/xpcom/base \
   -I$(topsrcdir)/xpcom/build \
   -I$(DEPTH)/build \
   $(NULL)
 
 DEFINES += -DXPCOM_GLUE
--- a/browser/app/moz.build
+++ b/browser/app/moz.build
@@ -3,8 +3,11 @@
 # 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/.
 
 DIRS += ['profile/extensions']
 
 PROGRAM = CONFIG['MOZ_APP_NAME']
 
+CPP_SOURCES += [
+    'nsBrowserApp.cpp',
+]
--- a/browser/components/about/Makefile.in
+++ b/browser/components/about/Makefile.in
@@ -9,13 +9,11 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = browserabout_s
 
 FORCE_STATIC_LIB = 1
 USE_STATIC_LIBS = 1
 
-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
@@ -5,8 +5,12 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULE = 'browserabout'
 
 EXPORTS.mozilla.browser += [
     'AboutRedirector.h',
 ]
 
+CPP_SOURCES += [
+    'AboutRedirector.cpp',
+]
+
--- a/browser/components/build/Makefile.in
+++ b/browser/components/build/Makefile.in
@@ -12,19 +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
 
-CPPSRCS = nsModule.cpp \
-          $(NULL)
-
 ifeq ($(OS_ARCH),WINNT)
 OS_LIBS	+= $(call EXPAND_LIBNAME,ole32 shell32 shlwapi)
 endif
 
 LOCAL_INCLUDES = \
 	-I$(srcdir)/../shell/src \
 	-I$(srcdir)/../feeds/src \
 	-I$(srcdir)/../about \
--- a/browser/components/build/moz.build
+++ b/browser/components/build/moz.build
@@ -5,8 +5,12 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULE = 'browsercomps'
 
 EXPORTS += [
     'nsBrowserCompsCID.h',
 ]
 
+CPP_SOURCES += [
+    'nsModule.cpp',
+]
+
--- a/browser/components/dirprovider/Makefile.in
+++ b/browser/components/dirprovider/Makefile.in
@@ -9,18 +9,16 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = browserdir_s
 
 FORCE_STATIC_LIB = 1
 USE_STATIC_LIBS = 1
 
-CPPSRCS = DirectoryProvider.cpp
-
 LOCAL_INCLUDES = -I$(srcdir)/../build
 
 EXTRA_DSO_LDOPTS = \
 	$(XPCOM_GLUE_LDOPTS) \
 	$(NSPR_LIBS) \
 	$(NULL)
 
 include $(topsrcdir)/config/rules.mk
--- a/browser/components/dirprovider/moz.build
+++ b/browser/components/dirprovider/moz.build
@@ -7,8 +7,12 @@
 TEST_DIRS += ['tests']
 
 MODULE = 'browserdir'
 
 EXPORTS.mozilla.browser += [
     'DirectoryProvider.h',
 ]
 
+CPP_SOURCES += [
+    'DirectoryProvider.cpp',
+]
+
--- a/browser/components/feeds/src/Makefile.in
+++ b/browser/components/feeds/src/Makefile.in
@@ -25,13 +25,11 @@ EXTRA_COMPONENTS = \
 	WebContentConverter.js \
   $(NULL)
 
 EXTRA_PP_COMPONENTS = \
 	FeedWriter.js \
 	$(NULL)
 
 
-CPPSRCS = nsFeedSniffer.cpp
-
 LOCAL_INCLUDES = -I$(srcdir)/../../build
 
 include $(topsrcdir)/config/rules.mk
--- a/browser/components/feeds/src/moz.build
+++ b/browser/components/feeds/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 = 'browser_feeds'
 
+CPP_SOURCES += [
+    'nsFeedSniffer.cpp',
+]
+
--- a/browser/components/migration/src/Makefile.in
+++ b/browser/components/migration/src/Makefile.in
@@ -19,18 +19,16 @@ EXTRA_COMPONENTS = \
   FirefoxProfileMigrator.js \
   $(NULL)
 
 EXTRA_PP_COMPONENTS = \
   ChromeProfileMigrator.js \
   $(NULL)
 
 ifeq ($(OS_ARCH),WINNT)
-CPPSRCS += nsIEHistoryEnumerator.cpp
-
 EXTRA_COMPONENTS += IEProfileMigrator.js \
                     $(NULL)
 
 EXTRA_PP_COMPONENTS += SafariProfileMigrator.js \
                        $(NULL)
 
 DEFINES += -DHAS_IE_MIGRATOR -DHAS_SAFARI_MIGRATOR
 endif
--- a/browser/components/migration/src/moz.build
+++ b/browser/components/migration/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 = 'migration'
 
+if CONFIG['OS_ARCH'] == 'WINNT':
+    CPP_SOURCES += [
+        'nsIEHistoryEnumerator.cpp',
+    ]
--- a/browser/components/shell/src/Makefile.in
+++ b/browser/components/shell/src/Makefile.in
@@ -8,30 +8,33 @@ topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH   = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 FORCE_STATIC_LIB = 1
 USE_STATIC_LIBS = 1
 
+
+# TODO: Previously, LIBRARY_NAME was set as follows:
+#ifdef CPPSRCS
+#LIBRARY_NAME = shellservice_s
+#endif
+# But now we set CPPSRCS in moz.build, which isn't defined at this point.
+# This can be simplified when LIBRARY_NAME is in moz.build as well.
 ifeq ($(OS_ARCH),WINNT)
-CPPSRCS = nsWindowsShellService.cpp
+LIBRARY_NAME = shellservice_s
 else
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
-CPPSRCS = nsMacShellService.cpp
+LIBRARY_NAME = shellservice_s
 else
 ifeq ($(MOZ_WIDGET_TOOLKIT), gtk2)
-CPPSRCS = nsGNOMEShellService.cpp
-endif
+LIBRARY_NAME = shellservice_s
 endif
 endif
-
-ifdef CPPSRCS
-LIBRARY_NAME = shellservice_s
 endif
 
 EXTRA_COMPONENTS = nsSetDefaultBrowser.js nsSetDefaultBrowser.manifest
 
 include $(topsrcdir)/config/rules.mk
 
 DEFINES += -DMOZ_APP_NAME=\"$(MOZ_APP_NAME)\" \
   -DMOZ_APP_VERSION=\"$(MOZ_APP_VERSION)\"
--- a/browser/components/shell/src/moz.build
+++ b/browser/components/shell/src/moz.build
@@ -1,8 +1,20 @@
 # -*- 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 = 'shellservice'
 
+if CONFIG['OS_ARCH'] == 'WINNT':
+    CPP_SOURCES += [
+        'nsWindowsShellService.cpp',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+    CPP_SOURCES += [
+        'nsMacShellService.cpp',
+    ]
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2':
+    CPP_SOURCES += [
+        'nsGNOMEShellService.cpp',
+    ]
--- a/browser/metro/shell/commandexecutehandler/Makefile.in
+++ b/browser/metro/shell/commandexecutehandler/Makefile.in
@@ -17,21 +17,16 @@ include $(topsrcdir)/config/config.mk
 DIST_SUBDIR =
 
 DIST_PROGRAM = CommandExecuteHandler$(BIN_SUFFIX)
 
 # Don't link against mozglue.dll
 MOZ_GLUE_LDFLAGS =
 MOZ_GLUE_PROGRAM_LDFLAGS =
 
-CPPSRCS	= \
-	CommandExecuteHandler.cpp \
-	CEHHelper.cpp \
-	$(NULL)
-
 OS_LIBS = \
 	kernel32.lib \
 	user32.lib \
 	ole32.lib \
 	shlwapi.lib \
 	propsys.lib \
 	advapi32.lib \
 	wininet.lib \
--- a/browser/metro/shell/commandexecutehandler/moz.build
+++ b/browser/metro/shell/commandexecutehandler/moz.build
@@ -1,7 +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/.
 
 PROGRAM = 'CommandExecuteHandler'
+
+CPP_SOURCES += [
+    'CEHHelper.cpp',
+    'CommandExecuteHandler.cpp',
+]
--- a/browser/metro/shell/linktool/Makefile.in
+++ b/browser/metro/shell/linktool/Makefile.in
@@ -10,18 +10,16 @@ VPATH      = @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 NO_PROFILE_GUIDED_OPTIMIZE = 1
 
 include $(topsrcdir)/config/config.mk
 
 DIST_SUBDIR = metro/install
 
-CPPSRCS    = linktool.cpp
-
 OS_LIBS = \
 	kernel32.lib \
 	user32.lib \
 	ole32.lib \
 	shlwapi.lib \
 	shell32.lib \
 	propsys.lib \
 	$(NULL)
--- a/browser/metro/shell/linktool/moz.build
+++ b/browser/metro/shell/linktool/moz.build
@@ -1,8 +1,11 @@
 # -*- 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/.
 
 PROGRAM = 'linktool'
 
+CPP_SOURCES += [
+    'linktool.cpp',
+]
--- a/browser/metro/shell/testing/Makefile.in
+++ b/browser/metro/shell/testing/Makefile.in
@@ -18,20 +18,16 @@ MOZ_GLUE_PROGRAM_LDFLAGS =
 
 NO_PROFILE_GUIDED_OPTIMIZE = 1
 
 include $(topsrcdir)/config/config.mk
 
 # We want this exe in dist/bin
 DIST_SUBDIR =
 
-CPPSRCS	= \
-	metrotestharness.cpp \
-	$(NULL)
-
 OS_LIBS = \
 	kernel32.lib \
 	user32.lib \
 	ole32.lib \
 	shlwapi.lib \
 	propsys.lib \
 	advapi32.lib \
 	$(NULL)
--- a/browser/metro/shell/testing/moz.build
+++ b/browser/metro/shell/testing/moz.build
@@ -1,8 +1,11 @@
 # -*- 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/.
 
 PROGRAM = 'metrotestharness'
 
+CPP_SOURCES += [
+    'metrotestharness.cpp',
+]
--- a/build/stlport/Makefile.in
+++ b/build/stlport/Makefile.in
@@ -15,16 +15,15 @@ FORCE_STATIC_LIB = 1
 STL_FLAGS =
 
 # Force to build a static library, instead of a fake library, without
 # installing it in dist/lib.
 LIBRARY = $(LIB_PREFIX)$(LIBRARY_NAME).$(LIB_SUFFIX)
 
 VPATH += $(STLPORT_SOURCES)/src
 
-CPPSRCS = $(notdir $(wildcard $(STLPORT_SOURCES)/src/*.cpp))
 CSRCS = $(notdir $(wildcard $(STLPORT_SOURCES)/src/*.c))
 
 include $(topsrcdir)/config/rules.mk
 
 DEFINES += -D_GNU_SOURCE
 CXXFLAGS += -fuse-cxa-atexit
 INCLUDES += -I$(STLPORT_SOURCES)/stlport
--- a/build/stlport/moz.build
+++ b/build/stlport/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/.
 
 CONFIGURE_SUBST_FILES += ['stl/config/_android.h']
 
+CPP_SOURCES += [
+    '$(notdir $(wildcard $(STLPORT_SOURCES)/src/*.cpp))',
+]
+
--- a/build/unix/stdc++compat/Makefile.in
+++ b/build/unix/stdc++compat/Makefile.in
@@ -11,18 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= stdc++compat
 HOST_LIBRARY_NAME = host_stdc++compat
 FORCE_STATIC_LIB= 1
 STL_FLAGS =
 NO_EXPAND_LIBS = 1
 NO_PROFILE_GUIDED_OPTIMIZE = 1
 
-CPPSRCS = \
-  stdc++compat.cpp
   $(NULL)
 
 HOST_CPPSRCS = $(CPPSRCS)
 
 include $(topsrcdir)/config/rules.mk
 
 CXXFLAGS += -DMOZ_LIBSTDCXX_VERSION=$(MOZ_LIBSTDCXX_TARGET_VERSION)
 HOST_CXXFLAGS += -DMOZ_LIBSTDCXX_VERSION=$(MOZ_LIBSTDCXX_TARGET_VERSION)
--- a/build/unix/stdc++compat/moz.build
+++ b/build/unix/stdc++compat/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 = 'build'
 
+CPP_SOURCES += [
+    'stdc++compat.cpp',
+]
+
--- a/build/win32/Makefile.in
+++ b/build/win32/Makefile.in
@@ -9,17 +9,16 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 NO_PROFILE_GUIDED_OPTIMIZE = 1
 
 ifdef ENABLE_TESTS
 
 USE_STATIC_LIBS = 1
-CPPSRCS = crashinject.cpp
 
 endif # ENABLE_TESTS
 
 MOZ_GLUE_LDFLAGS =
 
 include $(topsrcdir)/config/rules.mk
 
 ifdef WIN32_REDIST_DIR
--- a/build/win32/crashinjectdll/Makefile.in
+++ b/build/win32/crashinjectdll/Makefile.in
@@ -9,13 +9,11 @@ VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = crashinjectdll
 DEFFILE = $(srcdir)/crashinjectdll.def
 FORCE_SHARED_LIB = 1
 USE_STATIC_LIBS = 1
 
-CPPSRCS = crashinjectdll.cpp
-
 MOZ_GLUE_LDFLAGS =
 
 include $(topsrcdir)/config/rules.mk
--- a/build/win32/crashinjectdll/moz.build
+++ b/build/win32/crashinjectdll/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/.
 
+CPP_SOURCES += [
+    'crashinjectdll.cpp',
+]
+
--- a/build/win32/moz.build
+++ b/build/win32/moz.build
@@ -6,8 +6,11 @@
 
 if CONFIG['_MSC_VER'] and CONFIG['OS_TEST'] != 'x86_64':
     TEST_DIRS += ['vmwarerecordinghelper']
 
 TEST_DIRS += ['crashinjectdll']
 
 if CONFIG['ENABLE_TESTS']:
     PROGRAM = 'crashinject'
+    CPP_SOURCES += [
+        'crashinject.cpp',
+    ]
--- a/build/win32/vmwarerecordinghelper/Makefile.in
+++ b/build/win32/vmwarerecordinghelper/Makefile.in
@@ -10,13 +10,11 @@ VPATH = @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = vmwarerecordinghelper
 DEFFILE = $(srcdir)/$(LIBRARY_NAME).def
 
 FORCE_SHARED_LIB = 1
 USE_STATIC_LIBS = 1
 
-CPPSRCS = $(LIBRARY_NAME).cpp
-
 MOZ_GLUE_LDFLAGS =
 
 include $(topsrcdir)/config/rules.mk
--- a/build/win32/vmwarerecordinghelper/moz.build
+++ b/build/win32/vmwarerecordinghelper/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/.
 
+CPP_SOURCES += [
+    'vmwarerecordinghelper.cpp',
+]
+
--- a/caps/src/Makefile.in
+++ b/caps/src/Makefile.in
@@ -11,24 +11,14 @@ VPATH		= @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= caps_s
 MSVC_ENABLE_PGO := 1
 FORCE_STATIC_LIB = 1
 LIBXUL_LIBRARY = 1
 
 
-CPPSRCS		= \
-		nsPrincipal.cpp \
-		nsSystemPrincipal.cpp \
-		nsNullPrincipal.cpp \
-		nsNullPrincipalURI.cpp \
-		nsJSPrincipals.cpp \
-		nsScriptSecurityManager.cpp \
-		nsSecurityManagerFactory.cpp \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES	+= -I$(srcdir)/../include \
 		   -I$(topsrcdir)/js/xpconnect/src \
 		   -I$(topsrcdir)/dom/base
 
--- a/caps/src/moz.build
+++ b/caps/src/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 = 'caps'
 
+CPP_SOURCES += [
+    'nsJSPrincipals.cpp',
+    'nsNullPrincipal.cpp',
+    'nsNullPrincipalURI.cpp',
+    'nsPrincipal.cpp',
+    'nsScriptSecurityManager.cpp',
+    'nsSecurityManagerFactory.cpp',
+    'nsSystemPrincipal.cpp',
+]
+
--- a/chrome/src/Makefile.in
+++ b/chrome/src/Makefile.in
@@ -10,23 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME    = chrome_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY  = 1
 FORCE_STATIC_LIB = 1
 
-CPPSRCS		= \
-		nsChromeRegistry.cpp \
-		nsChromeRegistryChrome.cpp \
-		nsChromeProtocolHandler.cpp \
-		nsChromeRegistryContent.cpp \
-		$(NULL)
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
 		-I$(topsrcdir)/netwerk/protocol/res \
 		-I$(topsrcdir)/netwerk/base/src \
 		$(NULL)
--- a/chrome/src/moz.build
+++ b/chrome/src/moz.build
@@ -5,8 +5,15 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULE = 'chrome'
 
 EXPORTS.mozilla.chrome += [
     'RegistryMessageUtils.h',
 ]
 
+CPP_SOURCES += [
+    'nsChromeProtocolHandler.cpp',
+    'nsChromeRegistry.cpp',
+    'nsChromeRegistryChrome.cpp',
+    'nsChromeRegistryContent.cpp',
+]
+
--- a/content/base/src/Makefile.in
+++ b/content/base/src/Makefile.in
@@ -9,119 +9,22 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconbase_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY	= 1
 
-CPPSRCS		= \
-		Comment.cpp \
-		DirectionalityUtils.cpp \
-		DocumentType.cpp \
-		DOMImplementation.cpp \
-		EventSource.cpp \
-		FileIOObject.cpp \
-		nsAtomListUtils.cpp \
-		nsAttrAndChildArray.cpp \
-		nsAttrValue.cpp \
-		nsAttrValueOrString.cpp \
-		nsCCUncollectableMarker.cpp \
-		nsChannelPolicy.cpp \
-		nsContentAreaDragDrop.cpp \
-		nsContentIterator.cpp \
-		nsContentList.cpp \
-		nsContentPolicy.cpp \
-		nsContentSink.cpp \
-		nsContentUtils.cpp \
-		nsCopySupport.cpp \
-		nsCrossSiteListenerProxy.cpp \
-		nsCSPService.cpp \
-		nsDataDocumentContentPolicy.cpp \
-		Attr.cpp \
-		nsDOMAttributeMap.cpp \
-		nsDOMBlobBuilder.cpp \
-		nsDOMCaretPosition.cpp \
-		nsDOMFile.cpp \
-		nsDOMFileReader.cpp \
-		nsDOMLists.cpp \
-		nsDOMParser.cpp \
-		nsDOMSerializer.cpp \
-		nsDOMTokenList.cpp \
-		nsDOMSettableTokenList.cpp \
-		nsDocument.cpp \
-		nsDocumentEncoder.cpp \
-		DocumentFragment.cpp \
-		nsFrameLoader.cpp \
-		Element.cpp \
-		nsFormData.cpp \
-		nsGenConImageContent.cpp \
-		nsGenericDOMDataNode.cpp \
-		nsGkAtoms.cpp \
-		nsHTMLContentSerializer.cpp \
-		nsImageLoadingContent.cpp \
-		nsINode.cpp \
-		nsLineBreaker.cpp \
-		nsMappedAttributeElement.cpp \
-		nsMappedAttributes.cpp \
-		nsNameSpaceManager.cpp \
-		nsNoDataProtocolContentPolicy.cpp \
-		nsNodeInfo.cpp \
-		nsNodeInfoManager.cpp \
-		NodeIterator.cpp \
-		nsNodeUtils.cpp \
-		nsObjectLoadingContent.cpp \
-		nsPlainTextSerializer.cpp \
-		nsPropertyTable.cpp \
-		nsRange.cpp \
-		nsReferencedElement.cpp \
-		nsScriptElement.cpp \
-		nsScriptLoader.cpp \
-		nsStubDocumentObserver.cpp \
-		nsStubMutationObserver.cpp \
-		nsStyledElement.cpp \
-		nsStyleLinkElement.cpp \
-		nsSyncLoadService.cpp \
-		Text.cpp \
-		nsTextFragment.cpp \
-		nsTextNode.cpp \
-		nsTraversal.cpp \
-		nsTreeSanitizer.cpp \
-		TreeWalker.cpp \
-                nsViewportInfo.cpp \
-		WebSocket.cpp \
-		nsXHTMLContentSerializer.cpp \
-		nsXMLContentSerializer.cpp \
-		nsXMLHttpRequest.cpp \
-		nsXMLNameSpaceMap.cpp \
-		FragmentOrElement.cpp \
-		Link.cpp \
-		nsHostObjectProtocolHandler.cpp \
-		nsHostObjectURI.cpp \
-		nsFrameMessageManager.cpp \
-		nsInProcessTabChildGlobal.cpp \
-		ThirdPartyUtil.cpp \
-		nsDOMMutationObserver.cpp \
-		nsMixedContentBlocker.cpp \
-		$(NULL)
-
 ifdef MOZ_WEBRTC
-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
-ifneq (,$(INTEL_ARCHITECTURE))
-CPPSRCS += nsTextFragmentSSE2.cpp
-endif
-
 GQI_SRCS = contentbase.gqi
 
 # we don't want the shared lib, but we want to force the creation of a
 # static lib.
 FORCE_STATIC_LIB = 1
 
 EXTRA_COMPONENTS = \
 		contentSecurityPolicy.manifest \
--- a/content/base/src/moz.build
+++ b/content/base/src/moz.build
@@ -34,22 +34,122 @@ EXPORTS += [
     'nsTextFragment.h',
 ]
 
 if CONFIG['MOZ_WEBRTC']:
     EXPORTS += [
         'nsDOMDataChannel.h',
         'nsDOMDataChannelDeclarations.h',
     ]
+    CPP_SOURCES += [
+        'nsDOMDataChannel.cpp',
+    ]
+
+# Are we targeting x86-32 or x86-64?  If so, we want to include SSE2 code for
+# nsTextFragment.cpp
+if CONFIG['INTEL_ARCHITECTURE']:
+    CPP_SOURCES += [
+        'nsTextFragmentSSE2.cpp',
+    ]
 
 EXPORTS.mozilla.dom += [
     'Attr.h',
     'Comment.h',
     'DOMImplementation.h',
     'DocumentFragment.h',
     'DocumentType.h',
     'EventSource.h',
     'Link.h',
     'NodeIterator.h',
     'Text.h',
     'TreeWalker.h',
 ]
 
+CPP_SOURCES += [
+    'Attr.cpp',
+    'Comment.cpp',
+    'DOMImplementation.cpp',
+    'DirectionalityUtils.cpp',
+    'DocumentFragment.cpp',
+    'DocumentType.cpp',
+    'Element.cpp',
+    'EventSource.cpp',
+    'FileIOObject.cpp',
+    'FragmentOrElement.cpp',
+    'Link.cpp',
+    'NodeIterator.cpp',
+    'Text.cpp',
+    'ThirdPartyUtil.cpp',
+    'TreeWalker.cpp',
+    'WebSocket.cpp',
+    'nsAtomListUtils.cpp',
+    'nsAttrAndChildArray.cpp',
+    'nsAttrValue.cpp',
+    'nsAttrValueOrString.cpp',
+    'nsCCUncollectableMarker.cpp',
+    'nsCSPService.cpp',
+    'nsChannelPolicy.cpp',
+    'nsContentAreaDragDrop.cpp',
+    'nsContentIterator.cpp',
+    'nsContentList.cpp',
+    'nsContentPolicy.cpp',
+    'nsContentSink.cpp',
+    'nsContentUtils.cpp',
+    'nsCopySupport.cpp',
+    'nsCrossSiteListenerProxy.cpp',
+    'nsDOMAttributeMap.cpp',
+    'nsDOMBlobBuilder.cpp',
+    'nsDOMCaretPosition.cpp',
+    'nsDOMFile.cpp',
+    'nsDOMFileReader.cpp',
+    'nsDOMLists.cpp',
+    'nsDOMMutationObserver.cpp',
+    'nsDOMParser.cpp',
+    'nsDOMSerializer.cpp',
+    'nsDOMSettableTokenList.cpp',
+    'nsDOMTokenList.cpp',
+    'nsDataDocumentContentPolicy.cpp',
+    'nsDocument.cpp',
+    'nsDocumentEncoder.cpp',
+    'nsFormData.cpp',
+    'nsFrameLoader.cpp',
+    'nsFrameMessageManager.cpp',
+    'nsGenConImageContent.cpp',
+    'nsGenericDOMDataNode.cpp',
+    'nsGkAtoms.cpp',
+    'nsHTMLContentSerializer.cpp',
+    'nsHostObjectProtocolHandler.cpp',
+    'nsHostObjectURI.cpp',
+    'nsINode.cpp',
+    'nsImageLoadingContent.cpp',
+    'nsInProcessTabChildGlobal.cpp',
+    'nsLineBreaker.cpp',
+    'nsMappedAttributeElement.cpp',
+    'nsMappedAttributes.cpp',
+    'nsMixedContentBlocker.cpp',
+    'nsNameSpaceManager.cpp',
+    'nsNoDataProtocolContentPolicy.cpp',
+    'nsNodeInfo.cpp',
+    'nsNodeInfoManager.cpp',
+    'nsNodeUtils.cpp',
+    'nsObjectLoadingContent.cpp',
+    'nsPlainTextSerializer.cpp',
+    'nsPropertyTable.cpp',
+    'nsRange.cpp',
+    'nsReferencedElement.cpp',
+    'nsScriptElement.cpp',
+    'nsScriptLoader.cpp',
+    'nsStubDocumentObserver.cpp',
+    'nsStubMutationObserver.cpp',
+    'nsStyleLinkElement.cpp',
+    'nsStyledElement.cpp',
+    'nsSyncLoadService.cpp',
+    'nsTextFragment.cpp',
+    'nsTextNode.cpp',
+    'nsTraversal.cpp',
+    'nsTreeSanitizer.cpp',
+    'nsViewportInfo.cpp',
+    'nsXHTMLContentSerializer.cpp',
+    'nsXMLContentSerializer.cpp',
+    'nsXMLHttpRequest.cpp',
+    'nsXMLNameSpaceMap.cpp',
+]
+
--- a/content/canvas/src/Makefile.in
+++ b/content/canvas/src/Makefile.in
@@ -10,66 +10,20 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconcvs_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY  = 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS	= \
-	CanvasImageCache.cpp \
-	CanvasRenderingContext2D.cpp \
-	CanvasUtils.cpp \
-	DocumentRendererParent.cpp \
-	DocumentRendererChild.cpp \
-	ImageData.cpp \
-	$(NULL)
-
 ifdef MOZ_WEBGL
-
-CPPSRCS += \
-	WebGLActiveInfo.cpp \
-	WebGLBuffer.cpp \
-	WebGLContext.cpp \
-	WebGLContextGL.cpp \
-	WebGLContextUtils.cpp \
-	WebGLContextReporter.cpp \
-	WebGLContextValidate.cpp \
-	WebGLElementArrayCache.cpp \
-	WebGLExtensionBase.cpp \
-	WebGLExtensionCompressedTextureATC.cpp \
-	WebGLExtensionCompressedTexturePVRTC.cpp \
-	WebGLExtensionCompressedTextureS3TC.cpp \
-	WebGLExtensionDebugRendererInfo.cpp \
-	WebGLExtensionDepthTexture.cpp \
-	WebGLExtensionElementIndexUint.cpp \
-	WebGLExtensionLoseContext.cpp \
-	WebGLExtensionStandardDerivatives.cpp \
-	WebGLExtensionTextureFilterAnisotropic.cpp \
-	WebGLExtensionTextureFloat.cpp \
-	WebGLFramebuffer.cpp \
-	WebGLObjectModel.cpp \
-	WebGLProgram.cpp \
-	WebGLRenderbuffer.cpp \
-	WebGLShader.cpp \
-	WebGLShaderPrecisionFormat.cpp \
-	WebGLTexelConversions.cpp \
-	WebGLTexture.cpp \
-	WebGLUniformLocation.cpp \
-	$(NULL)
-
 LOCAL_INCLUDES += \
 	-I$(topsrcdir)/js/xpconnect/wrappers \
 	$(NULL)
-
-else
-
-CPPSRCS += WebGLContextNotSupported.cpp
-
 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
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
--- a/content/canvas/src/moz.build
+++ b/content/canvas/src/moz.build
@@ -10,8 +10,52 @@ EXPORTS.mozilla.dom += [
     'CanvasGradient.h',
     'CanvasPattern.h',
     'CanvasRenderingContext2D.h',
     'CanvasUtils.h',
     'ImageData.h',
     'TextMetrics.h',
 ]
 
+CPP_SOURCES += [
+    'CanvasImageCache.cpp',
+    'CanvasRenderingContext2D.cpp',
+    'CanvasUtils.cpp',
+    'DocumentRendererChild.cpp',
+    'DocumentRendererParent.cpp',
+    'ImageData.cpp',
+]
+
+if CONFIG['MOZ_WEBGL']:
+    CPP_SOURCES += [
+        'WebGLActiveInfo.cpp',
+        'WebGLBuffer.cpp',
+        'WebGLContext.cpp',
+        'WebGLContextGL.cpp',
+        'WebGLContextUtils.cpp',
+        'WebGLContextReporter.cpp',
+        'WebGLContextValidate.cpp',
+        'WebGLElementArrayCache.cpp',
+        'WebGLExtensionBase.cpp',
+        'WebGLExtensionCompressedTextureATC.cpp',
+        'WebGLExtensionCompressedTexturePVRTC.cpp',
+        'WebGLExtensionCompressedTextureS3TC.cpp',
+        'WebGLExtensionDebugRendererInfo.cpp',
+        'WebGLExtensionDepthTexture.cpp',
+        'WebGLExtensionElementIndexUint.cpp',
+        'WebGLExtensionLoseContext.cpp',
+        'WebGLExtensionStandardDerivatives.cpp',
+        'WebGLExtensionTextureFilterAnisotropic.cpp',
+        'WebGLExtensionTextureFloat.cpp',
+        'WebGLFramebuffer.cpp',
+        'WebGLObjectModel.cpp',
+        'WebGLProgram.cpp',
+        'WebGLRenderbuffer.cpp',
+        'WebGLShader.cpp',
+        'WebGLShaderPrecisionFormat.cpp',
+        'WebGLTexelConversions.cpp',
+        'WebGLTexture.cpp',
+        'WebGLUniformLocation.cpp',
+    ]
+else:
+    CPP_SOURCES += [
+        'WebGLContextNotSupported.cpp',
+    ]
--- a/content/events/src/Makefile.in
+++ b/content/events/src/Makefile.in
@@ -10,63 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconevents_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY  = 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS		= \
-		EventTarget.cpp \
-		nsEventListenerManager.cpp \
-		nsEventStateManager.cpp \
-		nsDOMEvent.cpp \
-		nsDOMDataContainerEvent.cpp \
-		nsDOMUIEvent.cpp \
-		nsDOMKeyboardEvent.cpp \
-		nsDOMTextEvent.cpp \
-		nsDOMMouseEvent.cpp \
-		nsDOMMouseScrollEvent.cpp \
-		nsDOMDragEvent.cpp \
-		nsDOMMutationEvent.cpp \
-		nsDOMDeviceMotionEvent.cpp \
-		nsDOMBeforeUnloadEvent.cpp \
-		nsDOMXULCommandEvent.cpp \
-		nsDOMCommandEvent.cpp \
-		nsDOMMessageEvent.cpp \
-		nsPaintRequest.cpp \
-		nsPrivateTextRange.cpp \
-		nsAsyncDOMEvent.cpp \
-		nsEventDispatcher.cpp \
-		nsIMEStateManager.cpp \
-		nsContentEventHandler.cpp \
-		nsEventListenerService.cpp \
-		nsDOMDataTransfer.cpp \
-		nsDOMNotifyPaintEvent.cpp \
-		nsDOMNotifyAudioAvailableEvent.cpp \
-		nsDOMSimpleGestureEvent.cpp \
-		nsDOMEventTargetHelper.cpp \
-		nsDOMScrollAreaEvent.cpp \
-		nsDOMTransitionEvent.cpp \
-		nsDOMAnimationEvent.cpp \
-		nsDOMTouchEvent.cpp \
-		nsDOMCompositionEvent.cpp \
-		nsDOMClipboardEvent.cpp \
-		DOMWheelEvent.cpp \
-		TextComposition.cpp \
-		Touch.cpp \
-		$(NULL)
-
-ifdef MOZ_GAMEPAD
-CPPSRCS += \
-  nsDOMGamepad.cpp \
-  $(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/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES	+= \
--- a/content/events/src/moz.build
+++ b/content/events/src/moz.build
@@ -15,8 +15,53 @@ EXPORTS += [
     'nsEventListenerManager.h',
     'nsEventStateManager.h',
 ]
 
 EXPORTS.mozilla.dom += [
     'Touch.h',
 ]
 
+CPP_SOURCES += [
+    'DOMWheelEvent.cpp',
+    'EventTarget.cpp',
+    'TextComposition.cpp',
+    'Touch.cpp',
+    'nsAsyncDOMEvent.cpp',
+    'nsContentEventHandler.cpp',
+    'nsDOMAnimationEvent.cpp',
+    'nsDOMBeforeUnloadEvent.cpp',
+    'nsDOMClipboardEvent.cpp',
+    'nsDOMCommandEvent.cpp',
+    'nsDOMCompositionEvent.cpp',
+    'nsDOMDataContainerEvent.cpp',
+    'nsDOMDataTransfer.cpp',
+    'nsDOMDeviceMotionEvent.cpp',
+    'nsDOMDragEvent.cpp',
+    'nsDOMEvent.cpp',
+    'nsDOMEventTargetHelper.cpp',
+    'nsDOMKeyboardEvent.cpp',
+    'nsDOMMessageEvent.cpp',
+    'nsDOMMouseEvent.cpp',
+    'nsDOMMouseScrollEvent.cpp',
+    'nsDOMMutationEvent.cpp',
+    'nsDOMNotifyAudioAvailableEvent.cpp',
+    'nsDOMNotifyPaintEvent.cpp',
+    'nsDOMScrollAreaEvent.cpp',
+    'nsDOMSimpleGestureEvent.cpp',
+    'nsDOMTextEvent.cpp',
+    'nsDOMTouchEvent.cpp',
+    'nsDOMTransitionEvent.cpp',
+    'nsDOMUIEvent.cpp',
+    'nsDOMXULCommandEvent.cpp',
+    'nsEventDispatcher.cpp',
+    'nsEventListenerManager.cpp',
+    'nsEventListenerService.cpp',
+    'nsEventStateManager.cpp',
+    'nsIMEStateManager.cpp',
+    'nsPaintRequest.cpp',
+    'nsPrivateTextRange.cpp',
+]
+
+if CONFIG['MOZ_GAMEPAD']:
+    CPP_SOURCES += [
+        'nsDOMGamepad.cpp',
+    ]
--- a/content/html/content/src/Makefile.in
+++ b/content/html/content/src/Makefile.in
@@ -10,94 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconhtmlcon_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS		= \
-		HTMLPropertiesCollection.cpp \
-		nsClientRect.cpp \
-		nsHTMLDNSPrefetch.cpp \
-		nsGenericHTMLElement.cpp \
-		nsGenericHTMLFrameElement.cpp \
-		nsFormSubmission.cpp \
-		nsTextEditorState.cpp \
-		HTMLElement.cpp \
-		HTMLAnchorElement.cpp \
-		HTMLAreaElement.cpp \
-		HTMLAudioElement.cpp \
-		HTMLBRElement.cpp \
-		HTMLBodyElement.cpp \
-		HTMLButtonElement.cpp \
-		HTMLCanvasElement.cpp \
-		HTMLDataElement.cpp \
-		HTMLDataListElement.cpp \
-		HTMLDivElement.cpp \
-		HTMLFieldSetElement.cpp \
-		HTMLFontElement.cpp \
-		nsHTMLFormElement.cpp \
-		HTMLFrameElement.cpp \
-		HTMLFrameSetElement.cpp \
-		HTMLHRElement.cpp \
-		HTMLHeadingElement.cpp \
-		HTMLIFrameElement.cpp \
-		HTMLImageElement.cpp \
-		HTMLInputElement.cpp \
-		HTMLLIElement.cpp \
-		HTMLLabelElement.cpp \
-		HTMLLegendElement.cpp \
-		HTMLLinkElement.cpp \
-		HTMLMapElement.cpp \
-		HTMLMediaElement.cpp \
-		HTMLMenuElement.cpp \
-		HTMLMenuItemElement.cpp \
-		HTMLMetaElement.cpp \
-		HTMLMeterElement.cpp \
-		HTMLModElement.cpp \
-		HTMLObjectElement.cpp \
-		HTMLSharedObjectElement.cpp \
-		HTMLOptionElement.cpp \
-		HTMLOptionsCollection.cpp \
-		HTMLOptGroupElement.cpp \
-		HTMLOutputElement.cpp \
-		HTMLParagraphElement.cpp \
-		HTMLPreElement.cpp \
-		HTMLProgressElement.cpp \
-		HTMLScriptElement.cpp \
-		HTMLSelectElement.cpp \
-		HTMLSharedElement.cpp \
-		HTMLSharedListElement.cpp \
-		HTMLSourceElement.cpp \
-		HTMLSpanElement.cpp \
-		HTMLStyleElement.cpp \
-		HTMLTableElement.cpp \
-		HTMLTableCaptionElement.cpp \
-		HTMLTableCellElement.cpp \
-		HTMLTableColElement.cpp \
-		HTMLTableRowElement.cpp \
-		HTMLTableSectionElement.cpp \
-		HTMLTemplateElement.cpp \
-		HTMLTextAreaElement.cpp \
-		HTMLTimeElement.cpp \
-		HTMLTitleElement.cpp \
-		HTMLTrackElement.cpp \
-		HTMLVideoElement.cpp \
-		HTMLUnknownElement.cpp \
-		MediaError.cpp \
-		TimeRanges.cpp \
-		ValidityState.cpp \
-		nsIConstraintValidation.cpp \
-		nsRadioVisitor.cpp \
-		nsDOMStringMap.cpp \
-		UndoManager.cpp \
-		$(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
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
 INCLUDES	+= \
 		-I$(srcdir)/../../document/src \
--- a/content/html/content/src/moz.build
+++ b/content/html/content/src/moz.build
@@ -70,8 +70,86 @@ EXPORTS.mozilla.dom += [
     'HTMLTrackElement.h',
     'HTMLUnknownElement.h',
     'MediaError.h',
     'TimeRanges.h',
     'UndoManager.h',
     'ValidityState.h',
 ]
 
+CPP_SOURCES += [
+    'HTMLAnchorElement.cpp',
+    'HTMLAreaElement.cpp',
+    'HTMLAudioElement.cpp',
+    'HTMLBRElement.cpp',
+    'HTMLBodyElement.cpp',
+    'HTMLButtonElement.cpp',
+    'HTMLCanvasElement.cpp',
+    'HTMLDataElement.cpp',
+    'HTMLDataListElement.cpp',
+    'HTMLDivElement.cpp',
+    'HTMLElement.cpp',
+    'HTMLFieldSetElement.cpp',
+    'HTMLFontElement.cpp',
+    'HTMLFrameElement.cpp',
+    'HTMLFrameSetElement.cpp',
+    'HTMLHRElement.cpp',
+    'HTMLHeadingElement.cpp',
+    'HTMLIFrameElement.cpp',
+    'HTMLImageElement.cpp',
+    'HTMLInputElement.cpp',
+    'HTMLLIElement.cpp',
+    'HTMLLabelElement.cpp',
+    'HTMLLegendElement.cpp',
+    'HTMLLinkElement.cpp',
+    'HTMLMapElement.cpp',
+    'HTMLMediaElement.cpp',
+    'HTMLMenuElement.cpp',
+    'HTMLMenuItemElement.cpp',
+    'HTMLMetaElement.cpp',
+    'HTMLMeterElement.cpp',
+    'HTMLModElement.cpp',
+    'HTMLObjectElement.cpp',
+    'HTMLOptGroupElement.cpp',
+    'HTMLOptionElement.cpp',
+    'HTMLOptionsCollection.cpp',
+    'HTMLOutputElement.cpp',
+    'HTMLParagraphElement.cpp',
+    'HTMLPreElement.cpp',
+    'HTMLProgressElement.cpp',
+    'HTMLPropertiesCollection.cpp',
+    'HTMLScriptElement.cpp',
+    'HTMLSelectElement.cpp',
+    'HTMLSharedElement.cpp',
+    'HTMLSharedListElement.cpp',
+    'HTMLSharedObjectElement.cpp',
+    'HTMLSourceElement.cpp',
+    'HTMLSpanElement.cpp',
+    'HTMLStyleElement.cpp',
+    'HTMLTableCaptionElement.cpp',
+    'HTMLTableCellElement.cpp',
+    'HTMLTableColElement.cpp',
+    'HTMLTableElement.cpp',
+    'HTMLTableRowElement.cpp',
+    'HTMLTableSectionElement.cpp',
+    'HTMLTemplateElement.cpp',
+    'HTMLTextAreaElement.cpp',
+    'HTMLTimeElement.cpp',
+    'HTMLTitleElement.cpp',
+    'HTMLTrackElement.cpp',
+    'HTMLUnknownElement.cpp',
+    'HTMLVideoElement.cpp',
+    'MediaError.cpp',
+    'TimeRanges.cpp',
+    'UndoManager.cpp',
+    'ValidityState.cpp',
+    'nsClientRect.cpp',
+    'nsDOMStringMap.cpp',
+    'nsFormSubmission.cpp',
+    'nsGenericHTMLElement.cpp',
+    'nsGenericHTMLFrameElement.cpp',
+    'nsHTMLDNSPrefetch.cpp',
+    'nsHTMLFormElement.cpp',
+    'nsIConstraintValidation.cpp',
+    'nsRadioVisitor.cpp',
+    'nsTextEditorState.cpp',
+]
+
--- a/content/html/document/src/Makefile.in
+++ b/content/html/document/src/Makefile.in
@@ -10,25 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconhtmldoc_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS		= \
-		nsHTMLContentSink.cpp \
-		nsHTMLDocument.cpp \
-		ImageDocument.cpp \
-		MediaDocument.cpp \
-		PluginDocument.cpp \
-		VideoDocument.cpp \
-		$(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
@@ -8,8 +8,17 @@ MODULE = 'content'
 
 EXPORTS += [
     'nsIHTMLDocument.h',
 ]
 
 EXPORTS.mozilla.dom += [
     'ImageDocument.h',
 ]
+
+CPP_SOURCES += [
+    'ImageDocument.cpp',
+    'MediaDocument.cpp',
+    'PluginDocument.cpp',
+    'VideoDocument.cpp',
+    'nsHTMLContentSink.cpp',
+    'nsHTMLDocument.cpp',
+]
--- a/content/mathml/content/src/Makefile.in
+++ b/content/mathml/content/src/Makefile.in
@@ -9,21 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkcontentmathml_s
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS		= \
-		nsMathMLElement.cpp               \
-		nsMathMLElementFactory.cpp        \
-		$(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
 
 include $(topsrcdir)/config/rules.mk
--- a/content/mathml/content/src/moz.build
+++ b/content/mathml/content/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 = 'content'
 
+CPP_SOURCES += [
+    'nsMathMLElement.cpp',
+    'nsMathMLElementFactory.cpp',
+]
+
--- a/content/media/Makefile.in
+++ b/content/media/Makefile.in
@@ -11,45 +11,16 @@ include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = gkconmedia_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY = 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS := 1
 endif # !_MSC_VER
 
-CPPSRCS = \
-  AudioAvailableEventManager.cpp \
-  AudioChannelFormat.cpp \
-  AudioNodeEngine.cpp \
-  AudioNodeStream.cpp \
-  AudioSegment.cpp \
-  AudioStream.cpp \
-  AudioStreamTrack.cpp \
-  DecoderTraits.cpp \
-  DOMMediaStream.cpp \
-  FileBlockCache.cpp \
-  MediaCache.cpp \
-  MediaDecoder.cpp \
-  MediaDecoderStateMachine.cpp \
-  MediaDecoderReader.cpp \
-  MediaResource.cpp \
-  MediaStreamGraph.cpp \
-  MediaStreamTrack.cpp \
-  StreamBuffer.cpp \
-  TextTrack.cpp \
-  TextTrackList.cpp \
-  TextTrackCue.cpp \
-  TextTrackCueList.cpp \
-  VideoFrameContainer.cpp \
-  VideoSegment.cpp \
-  VideoStreamTrack.cpp \
-  VideoUtils.cpp \
-  $(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 DEFINES  += -D_IMPL_NS_LAYOUT
 CFLAGS   += $(GSTREAMER_CFLAGS)
--- a/content/media/dash/Makefile.in
+++ b/content/media/dash/Makefile.in
@@ -13,22 +13,16 @@ topsrcdir  := @top_srcdir@
 srcdir     := @srcdir@
 VPATH      := @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME   := gkcondash_s
 LIBXUL_LIBRARY := 1
 
-CPPSRCS := \
-  DASHDecoder.cpp \
-  DASHRepDecoder.cpp \
-  DASHReader.cpp \
-  $(NULL)
-
 FORCE_STATIC_LIB := 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES := \
   -I$(topsrcdir)/netwerk/dash/mpd \
   -I$(srcdir)/../webm \
   -I$(srcdir)/../../base/src \
--- a/content/media/dash/moz.build
+++ b/content/media/dash/moz.build
@@ -8,8 +8,14 @@ MODULE = 'content'
 
 EXPORTS += [
     'DASHDecoder.h',
     'DASHReader.h',
     'DASHRepDecoder.h',
     'DASHRepReader.h',
 ]
 
+CPP_SOURCES += [
+    'DASHDecoder.cpp',
+    'DASHReader.cpp',
+    'DASHRepDecoder.cpp',
+]
+
--- a/content/media/gstreamer/Makefile.in
+++ b/content/media/gstreamer/Makefile.in
@@ -8,24 +8,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkcongstreamer_s
 LIBXUL_LIBRARY 	= 1
 
-
-CPPSRCS		= \
-		GStreamerReader.cpp \
-		GStreamerDecoder.cpp \
-		GStreamerFormatHelper.cpp \
-		GStreamerMozVideoBuffer.cpp \
-		$(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 CFLAGS		+= $(GSTREAMER_CFLAGS)
 CXXFLAGS	+= $(GSTREAMER_CFLAGS)
 
 
--- a/content/media/gstreamer/moz.build
+++ b/content/media/gstreamer/moz.build
@@ -7,8 +7,15 @@
 MODULE = 'content'
 
 EXPORTS += [
     'GStreamerDecoder.h',
     'GStreamerFormatHelper.h',
     'GStreamerReader.h',
 ]
 
+CPP_SOURCES += [
+    'GStreamerDecoder.cpp',
+    'GStreamerFormatHelper.cpp',
+    'GStreamerReader.cpp',
+    'GStreamerMozVideoBuffer.cpp',
+]
+
--- a/content/media/moz.build
+++ b/content/media/moz.build
@@ -78,8 +78,37 @@ EXPORTS.mozilla.dom += [
     'AudioStreamTrack.h',
     'MediaStreamTrack.h',
     'TextTrack.h',
     'TextTrackCue.h',
     'TextTrackCueList.h',
     'TextTrackList.h',
     'VideoStreamTrack.h',
 ]
+
+CPP_SOURCES += [
+    'AudioAvailableEventManager.cpp',
+    'AudioChannelFormat.cpp',
+    'AudioNodeEngine.cpp',
+    'AudioNodeStream.cpp',
+    'AudioSegment.cpp',
+    'AudioStream.cpp',
+    'AudioStreamTrack.cpp',
+    'DOMMediaStream.cpp',
+    'DecoderTraits.cpp',
+    'FileBlockCache.cpp',
+    'MediaCache.cpp',
+    'MediaDecoder.cpp',
+    'MediaDecoderReader.cpp',
+    'MediaDecoderStateMachine.cpp',
+    'MediaResource.cpp',
+    'MediaStreamGraph.cpp',
+    'MediaStreamTrack.cpp',
+    'StreamBuffer.cpp',
+    'TextTrack.cpp',
+    'TextTrackCue.cpp',
+    'TextTrackCueList.cpp',
+    'TextTrackList.cpp',
+    'VideoFrameContainer.cpp',
+    'VideoSegment.cpp',
+    'VideoStreamTrack.cpp',
+    'VideoUtils.cpp',
+]
--- a/content/media/ogg/Makefile.in
+++ b/content/media/ogg/Makefile.in
@@ -9,17 +9,11 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconogg_s
 LIBXUL_LIBRARY 	= 1
 FAIL_ON_WARNINGS := 1
 
 
-CPPSRCS		= \
-		OggDecoder.cpp \
-		OggCodecState.cpp \
-		OggReader.cpp \
-		$(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/ogg/moz.build
+++ b/content/media/ogg/moz.build
@@ -7,8 +7,14 @@
 MODULE = 'content'
 
 EXPORTS += [
     'OggCodecState.h',
     'OggDecoder.h',
     'OggReader.h',
 ]
 
+CPP_SOURCES += [
+    'OggCodecState.cpp',
+    'OggDecoder.cpp',
+    'OggReader.cpp',
+]
+
--- a/content/media/omx/Makefile.in
+++ b/content/media/omx/Makefile.in
@@ -7,22 +7,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconomx_s
 LIBXUL_LIBRARY 	= 1
 
-CPPSRCS		= \
-		MediaOmxDecoder.cpp \
-		MediaOmxReader.cpp \
-		OmxDecoder.cpp \
-		$(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
 INCLUDES	+= \
 		-I$(topsrcdir)/ipc/chromium/src \
 		-I$(srcdir)/../../base/src \
--- a/content/media/omx/moz.build
+++ b/content/media/omx/moz.build
@@ -6,8 +6,14 @@
 
 MODULE = 'content'
 
 EXPORTS += [
     'MediaOmxDecoder.h',
     'MediaOmxReader.h',
 ]
 
+CPP_SOURCES += [
+    'MediaOmxDecoder.cpp',
+    'MediaOmxReader.cpp',
+    'OmxDecoder.cpp',
+]
+
--- a/content/media/plugins/Makefile.in
+++ b/content/media/plugins/Makefile.in
@@ -7,22 +7,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconmediaplugins_s
 LIBXUL_LIBRARY 	= 1
 
-CPPSRCS		= \
-		MediaPluginHost.cpp \
-		MediaPluginDecoder.cpp \
-		MediaPluginReader.cpp \
-		$(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES	+= \
 		-I$(srcdir)/../../base/src \
 		-I$(srcdir)/../../html/content/src \
 		$(NULL)
--- a/content/media/plugins/moz.build
+++ b/content/media/plugins/moz.build
@@ -8,8 +8,14 @@ MODULE = 'content'
 
 EXPORTS += [
     'MPAPI.h',
     'MediaPluginDecoder.h',
     'MediaPluginHost.h',
     'MediaPluginReader.h',
 ]
 
+CPP_SOURCES += [
+    'MediaPluginDecoder.cpp',
+    'MediaPluginHost.cpp',
+    'MediaPluginReader.cpp',
+]
+
--- a/content/media/raw/Makefile.in
+++ b/content/media/raw/Makefile.in
@@ -9,21 +9,16 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = gkconraw_s
 LIBXUL_LIBRARY = 1
 FAIL_ON_WARNINGS := 1
 
-CPPSRCS += \
-  RawDecoder.cpp \
-  RawReader.cpp \
-  $(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES	+= \
 		-I$(srcdir)/../../base/src \
 		-I$(srcdir)/../../html/content/src \
 		$(NULL)
--- a/content/media/raw/moz.build
+++ b/content/media/raw/moz.build
@@ -7,8 +7,13 @@
 MODULE = 'content'
 
 EXPORTS += [
     'RawDecoder.h',
     'RawReader.h',
     'RawStructs.h',
 ]
 
+CPP_SOURCES += [
+    'RawDecoder.cpp',
+    'RawReader.cpp',
+]
+
--- a/content/media/wave/Makefile.in
+++ b/content/media/wave/Makefile.in
@@ -9,16 +9,11 @@ VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconwave_s
 LIBXUL_LIBRARY 	= 1
 
 
-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
@@ -6,8 +6,13 @@
 
 MODULE = 'content'
 
 EXPORTS += [
     'WaveDecoder.h',
     'WaveReader.h',
 ]
 
+CPP_SOURCES += [
+    'WaveDecoder.cpp',
+    'WaveReader.cpp',
+]
+
--- a/content/media/webaudio/Makefile.in
+++ b/content/media/webaudio/Makefile.in
@@ -10,37 +10,11 @@ VPATH            := @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME   := gkconwebaudio_s
 LIBXUL_LIBRARY := 1
 ifndef _MSC_VER
 FAIL_ON_WARNINGS := 1
 endif # !_MSC_VER
 
-CPPSRCS := \
-  AnalyserNode.cpp \
-  AudioBuffer.cpp \
-  AudioBufferSourceNode.cpp \
-  AudioContext.cpp \
-  AudioDestinationNode.cpp \
-  AudioListener.cpp \
-  AudioNode.cpp \
-  AudioParam.cpp \
-  AudioProcessingEvent.cpp \
-  BiquadFilterNode.cpp \
-  ChannelMergerNode.cpp \
-  ChannelSplitterNode.cpp \
-  DelayNode.cpp \
-  DynamicsCompressorNode.cpp \
-  EnableWebAudioCheck.cpp \
-  GainNode.cpp \
-  MediaBufferDecoder.cpp \
-  OfflineAudioCompletionEvent.cpp \
-  PannerNode.cpp \
-  ScriptProcessorNode.cpp \
-  ThreeDPoint.cpp \
-  WaveShaperNode.cpp \
-  WebAudioUtils.cpp \
-  $(NULL)
-
 FORCE_STATIC_LIB := 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/webaudio/blink/Makefile.in
+++ b/content/media/webaudio/blink/Makefile.in
@@ -7,18 +7,11 @@ topsrcdir        := @top_srcdir@
 srcdir           := @srcdir@
 VPATH            := @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME   := gkconwebaudio_blink_s
 LIBXUL_LIBRARY := 1
 
-CPPSRCS := \
-  Biquad.cpp \
-  DynamicsCompressor.cpp \
-  DynamicsCompressorKernel.cpp \
-  ZeroPole.cpp \
-  $(NULL)
-
 FORCE_STATIC_LIB := 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/webaudio/blink/moz.build
+++ b/content/media/webaudio/blink/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'
 
+CPP_SOURCES += [
+    'Biquad.cpp',
+    'DynamicsCompressor.cpp',
+    'DynamicsCompressorKernel.cpp',
+    'ZeroPole.cpp',
+]
+
--- a/content/media/webaudio/moz.build
+++ b/content/media/webaudio/moz.build
@@ -35,8 +35,34 @@ EXPORTS.mozilla.dom += [
     'EnableWebAudioCheck.h',
     'GainNode.h',
     'OfflineAudioCompletionEvent.h',
     'PannerNode.h',
     'ScriptProcessorNode.h',
     'WaveShaperNode.h',
 ]
 
+CPP_SOURCES += [
+    'AnalyserNode.cpp',
+    'AudioBuffer.cpp',
+    'AudioBufferSourceNode.cpp',
+    'AudioContext.cpp',
+    'AudioDestinationNode.cpp',
+    'AudioListener.cpp',
+    'AudioNode.cpp',
+    'AudioParam.cpp',
+    'AudioProcessingEvent.cpp',
+    'BiquadFilterNode.cpp',
+    'ChannelMergerNode.cpp',
+    'ChannelSplitterNode.cpp',
+    'DelayNode.cpp',
+    'DynamicsCompressorNode.cpp',
+    'EnableWebAudioCheck.cpp',
+    'GainNode.cpp',
+    'MediaBufferDecoder.cpp',
+    'OfflineAudioCompletionEvent.cpp',
+    'PannerNode.cpp',
+    'ScriptProcessorNode.cpp',
+    'ThreeDPoint.cpp',
+    'WaveShaperNode.cpp',
+    'WebAudioUtils.cpp',
+]
+
--- a/content/media/webm/Makefile.in
+++ b/content/media/webm/Makefile.in
@@ -9,22 +9,16 @@ VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconwebm_s
 LIBXUL_LIBRARY 	= 1
 
 
-CPPSRCS		= \
-		WebMBufferedParser.cpp \
-		WebMDecoder.cpp \
-		WebMReader.cpp \
-		$(NULL)
-
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES = \
 		$(MOZ_LIBVPX_CFLAGS) \
 		$(NULL)
 
--- a/content/media/webm/moz.build
+++ b/content/media/webm/moz.build
@@ -6,8 +6,14 @@
 
 MODULE = 'content'
 
 EXPORTS += [
     'WebMDecoder.h',
     'WebMReader.h',
 ]
 
+CPP_SOURCES += [
+    'WebMBufferedParser.cpp',
+    'WebMDecoder.cpp',
+    'WebMReader.cpp',
+]
+
--- a/content/media/webrtc/Makefile.in
+++ b/content/media/webrtc/Makefile.in
@@ -7,28 +7,16 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME = gkconwebrtc_s
 LIBXUL_LIBRARY = 1
 
-CPPSRCS	= \
-  MediaEngineDefault.cpp \
-  $(NULL)
-
-ifdef MOZ_WEBRTC
-CPPSRCS += \
-  MediaEngineWebRTC.cpp \
-  MediaEngineWebRTCVideo.cpp \
-  MediaEngineWebRTCAudio.cpp \
-  $(NULL)
-endif
-
 ifeq ($(OS_ARCH),WINNT)
 OS_CXXFLAGS += -DNOMINMAX
 endif
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
--- a/content/media/webrtc/moz.build
+++ b/content/media/webrtc/moz.build
@@ -8,8 +8,18 @@ MODULE = 'content'
 
 EXPORTS += [
     'MediaEngine.h',
     'MediaEngineDefault.h',
 ]
 
 if CONFIG['MOZ_WEBRTC']:
     EXPORTS += ['MediaEngineWebRTC.h']
+    CPP_SOURCES += [
+        'MediaEngineWebRTC.cpp',
+        'MediaEngineWebRTCVideo.cpp',
+        'MediaEngineWebRTCAudio.cpp',
+    ]
+
+CPP_SOURCES += [
+    'MediaEngineDefault.cpp',
+]
+
--- a/content/media/webspeech/recognition/Makefile.in
+++ b/content/media/webspeech/recognition/Makefile.in
@@ -14,28 +14,13 @@ VPATH += \
   $(srcdir)/test \
   $(NULL)
 
 LIBRARY_NAME   := gkconwebspeechrecognition_s
 LIBXUL_LIBRARY := 1
 
 LOCAL_INCLUDES += $(VPATH:%=-I%)
 
-CPPSRCS := \
-  EnableWebSpeechRecognitionCheck.cpp \
-  SpeechGrammar.cpp \
-  SpeechGrammarList.cpp \
-  SpeechRecognitionAlternative.cpp \
-  SpeechRecognition.cpp \
-  SpeechRecognitionResult.cpp \
-  SpeechRecognitionResultList.cpp \
-  SpeechStreamListener.cpp \
-  endpointer.cc \
-  energy_endpointer.cc \
-  energy_endpointer_params.cc \
-  FakeSpeechRecognitionService.cpp \
-  $(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
@@ -21,8 +21,23 @@ EXPORTS.mozilla.dom += [
     'SpeechGrammarList.h',
     'SpeechRecognition.h',
     'SpeechRecognitionAlternative.h',
     'SpeechRecognitionResult.h',
     'SpeechRecognitionResultList.h',
     'SpeechStreamListener.h',
 ]
 
+CPP_SOURCES += [
+    'EnableWebSpeechRecognitionCheck.cpp',
+    'FakeSpeechRecognitionService.cpp',
+    'SpeechGrammar.cpp',
+    'SpeechGrammarList.cpp',
+    'SpeechRecognition.cpp',
+    'SpeechRecognitionAlternative.cpp',
+    'SpeechRecognitionResult.cpp',
+    'SpeechRecognitionResultList.cpp',
+    'SpeechStreamListener.cpp',
+    'endpointer.cc',
+    'energy_endpointer.cc',
+    'energy_endpointer_params.cc',
+]
+
--- a/content/media/webspeech/recognition/test/Makefile.in
+++ b/content/media/webspeech/recognition/test/Makefile.in
@@ -5,20 +5,16 @@
 DEPTH          := @DEPTH@
 topsrcdir      := @top_srcdir@
 srcdir         := @srcdir@
 VPATH          := @srcdir@
 relativesrcdir := @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-CPPSRCS := \
-  FakeSpeechRecognitionService.cpp \
-  $(NULL)
-
 MOCHITEST_FILES := \
   head.js \
   test_success_without_recognition_service.html \
   test_timeout.html \
   test_recognition_service_error.html \
   test_audio_capture_error.html \
   test_abort.html \
   test_call_start_from_end_handler.html \
--- a/content/media/webspeech/recognition/test/moz.build
+++ b/content/media/webspeech/recognition/test/moz.build
@@ -1,4 +1,9 @@
 # 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/.
+
+CPP_SOURCES += [
+    'FakeSpeechRecognitionService.cpp',
+]
+
--- a/content/media/webspeech/synth/Makefile.in
+++ b/content/media/webspeech/synth/Makefile.in
@@ -17,24 +17,13 @@ VPATH += \
   $(NULL)
 
 LIBRARY_NAME   := gkconwebspeechsynth_s
 EXPORT_LIBRARY  = 1
 LIBXUL_LIBRARY  = 1
 
 LOCAL_INCLUDES += $(VPATH:%=-I%)
 
-CPPSRCS := \
-  EnableSpeechSynthesisCheck.cpp \
-  SpeechSynthesisUtterance.cpp \
-  SpeechSynthesisVoice.cpp \
-  SpeechSynthesis.cpp \
-  SpeechSynthesisChild.cpp \
-  SpeechSynthesisParent.cpp \
-  nsSynthVoiceRegistry.cpp \
-  nsSpeechTask.cpp \
-  $(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
@@ -21,8 +21,19 @@ EXPORTS.mozilla.dom += [
     'SpeechSynthesisChild.h',
     'SpeechSynthesisParent.h',
     'SpeechSynthesisUtterance.h',
     'SpeechSynthesisVoice.h',
     'nsSpeechTask.h',
     'nsSynthVoiceRegistry.h',
 ]
 
+CPP_SOURCES += [
+    'EnableSpeechSynthesisCheck.cpp',
+    'SpeechSynthesis.cpp',
+    'SpeechSynthesisChild.cpp',
+    'SpeechSynthesisParent.cpp',
+    'SpeechSynthesisUtterance.cpp',
+    'SpeechSynthesisVoice.cpp',
+    'nsSpeechTask.cpp',
+    'nsSynthVoiceRegistry.cpp',
+]
+
--- a/content/media/wmf/Makefile.in
+++ b/content/media/wmf/Makefile.in
@@ -8,24 +8,15 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 FAIL_ON_WARNINGS := 1
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconwmf_s
 LIBXUL_LIBRARY 	= 1
 
-CPPSRCS		= \
-		DXVA2Manager.cpp \
-		WMFByteStream.cpp \
-		WMFDecoder.cpp \
-		WMFReader.cpp \
-		WMFUtils.cpp \
-		WMFSourceReaderCallback.cpp \
-		$(NULL)
-
 ifeq ($(OS_ARCH),WINNT)
 OS_CXXFLAGS += -DNOMINMAX
 endif
 
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
--- a/content/media/wmf/moz.build
+++ b/content/media/wmf/moz.build
@@ -7,8 +7,17 @@
 MODULE = 'content'
 
 EXPORTS += [
     'WMF.h',
     'WMFDecoder.h',
     'WMFReader.h',
 ]
 
+CPP_SOURCES += [
+    'DXVA2Manager.cpp',
+    'WMFByteStream.cpp',
+    'WMFDecoder.cpp',
+    'WMFReader.cpp',
+    'WMFSourceReaderCallback.cpp',
+    'WMFUtils.cpp',
+]
+
--- a/content/smil/Makefile.in
+++ b/content/smil/Makefile.in
@@ -9,43 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconsmil_s
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS	= \
-	nsDOMTimeEvent.cpp \
-	nsSMILAnimationController.cpp \
-	nsSMILAnimationFunction.cpp \
-	nsSMILCompositor.cpp \
-	nsSMILCSSProperty.cpp \
-	nsSMILCSSValueType.cpp \
-	nsSMILFloatType.cpp \
-	nsSMILInstanceTime.cpp \
-	nsSMILInterval.cpp \
-	nsSMILKeySpline.cpp \
-	nsSMILMappedAttribute.cpp \
-	nsSMILNullType.cpp \
-	nsSMILParserUtils.cpp \
-	nsSMILRepeatCount.cpp \
-	nsSMILSetAnimationFunction.cpp \
-	nsSMILTimeContainer.cpp \
-	nsSMILTimedElement.cpp \
-	nsSMILTimeValue.cpp \
-	nsSMILTimeValueSpec.cpp \
-	nsSMILValue.cpp \
-	SMILBoolType.cpp \
-	SMILEnumType.cpp \
-	SMILIntegerType.cpp \
-	SMILStringType.cpp \
-	$(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
 
 INCLUDES += 	\
 		-I$(srcdir)/../base/src \
 		-I$(srcdir)/../../layout/style \
--- a/content/smil/moz.build
+++ b/content/smil/moz.build
@@ -29,8 +29,35 @@ EXPORTS += [
     'nsSMILTimeValue.h',
     'nsSMILTimeValueSpec.h',
     'nsSMILTimeValueSpecParams.h',
     'nsSMILTimedElement.h',
     'nsSMILTypes.h',
     'nsSMILValue.h',
 ]
 
+CPP_SOURCES += [
+    'SMILBoolType.cpp',
+    'SMILEnumType.cpp',
+    'SMILIntegerType.cpp',
+    'SMILStringType.cpp',
+    'nsDOMTimeEvent.cpp',
+    'nsSMILAnimationController.cpp',
+    'nsSMILAnimationFunction.cpp',
+    'nsSMILCSSProperty.cpp',
+    'nsSMILCSSValueType.cpp',
+    'nsSMILCompositor.cpp',
+    'nsSMILFloatType.cpp',
+    'nsSMILInstanceTime.cpp',
+    'nsSMILInterval.cpp',
+    'nsSMILKeySpline.cpp',
+    'nsSMILMappedAttribute.cpp',
+    'nsSMILNullType.cpp',
+    'nsSMILParserUtils.cpp',
+    'nsSMILRepeatCount.cpp',
+    'nsSMILSetAnimationFunction.cpp',
+    'nsSMILTimeContainer.cpp',
+    'nsSMILTimeValue.cpp',
+    'nsSMILTimeValueSpec.cpp',
+    'nsSMILTimedElement.cpp',
+    'nsSMILValue.cpp',
+]
+
--- a/content/svg/content/src/Makefile.in
+++ b/content/svg/content/src/Makefile.in
@@ -9,158 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkcontentsvg_s
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS	= 1
 
-CPPSRCS		= \
-		DOMSVGAnimatedLengthList.cpp \
-		DOMSVGAnimatedNumberList.cpp \
-		DOMSVGLength.cpp \
-		DOMSVGLengthList.cpp \
-		DOMSVGNumber.cpp \
-		DOMSVGNumberList.cpp \
-		DOMSVGPathSeg.cpp \
-		DOMSVGPathSegList.cpp \
-		DOMSVGPoint.cpp \
-		DOMSVGPointList.cpp \
-		DOMSVGStringList.cpp \
-		DOMSVGTransformList.cpp \
-		nsISVGPoint.cpp \
-		nsSVGAngle.cpp \
-		nsSVGAnimatedTransformList.cpp \
-		nsSVGBoolean.cpp \
-		nsSVGClass.cpp \
-		nsSVGDataParser.cpp \
-		nsSVGElement.cpp \
-		nsSVGEnum.cpp \
-		nsSVGFeatures.cpp \
-		nsSVGFilters.cpp \
-		nsSVGInteger.cpp \
-		nsSVGIntegerPair.cpp \
-		nsSVGLength2.cpp \
-		nsSVGNumber2.cpp \
-		nsSVGNumberPair.cpp \
-		nsSVGPathDataParser.cpp \
-		nsSVGPathGeometryElement.cpp \
-		nsSVGPolyElement.cpp \
-		nsSVGString.cpp \
-		nsSVGTransform.cpp \
-		nsSVGViewBox.cpp \
-		SVGAElement.cpp \
-		SVGAltGlyphElement.cpp \
-		SVGAngle.cpp \
-		SVGAnimatedAngle.cpp \
-		SVGAnimatedBoolean.cpp \
-		SVGAnimatedLength.cpp \
-		SVGAnimatedLengthList.cpp \
-		SVGAnimatedNumberList.cpp \
-		SVGAnimatedPathSegList.cpp \
-		SVGAnimatedPointList.cpp \
-		SVGAnimatedPreserveAspectRatio.cpp \
-		SVGAnimatedRect.cpp \
-		SVGAnimatedTransformList.cpp \
-		SVGAnimateElement.cpp \
-		SVGAnimateTransformElement.cpp \
-		SVGAnimateMotionElement.cpp \
-		SVGAnimationElement.cpp \
-		SVGAttrValueWrapper.cpp \
-		SVGClipPathElement.cpp \
-		SVGCircleElement.cpp \
-		SVGContentUtils.cpp \
-		SVGDefsElement.cpp \
-		SVGDescElement.cpp \
-		SVGElementFactory.cpp \
-		SVGEllipseElement.cpp \
-		SVGFEBlendElement.cpp \
-		SVGFEColorMatrixElement.cpp \
-		SVGFEComponentTransferElement.cpp \
-		SVGFECompositeElement.cpp \
-		SVGFEConvolveMatrixElement.cpp \
-		SVGFEDiffuseLightingElement.cpp \
-		SVGFEDisplacementMapElement.cpp \
-		SVGFEDistantLightElement.cpp \
-		SVGFEFloodElement.cpp \
-		SVGFEGaussianBlurElement.cpp \
-		SVGFEImageElement.cpp \
-		SVGFEMergeElement.cpp \
-		SVGFEMergeNodeElement.cpp \
-		SVGFEMorphologyElement.cpp \
-		SVGFEOffsetElement.cpp \
-		SVGFEPointLightElement.cpp \
-		SVGFESpecularLightingElement.cpp \
-		SVGFESpotLightElement.cpp \
-		SVGFETileElement.cpp \
-		SVGFETurbulenceElement.cpp \
-		SVGFilterElement.cpp \
-		SVGForeignObjectElement.cpp \
-		SVGFragmentIdentifier.cpp \
-		SVGGElement.cpp \
-		SVGGradientElement.cpp \
-		SVGGraphicsElement.cpp \
-		SVGImageElement.cpp \
-		SVGIntegerPairSMILType.cpp \
-		SVGLength.cpp \
-		SVGLengthList.cpp \
-		SVGLengthListSMILType.cpp \
-		SVGLineElement.cpp \
-		SVGMarkerElement.cpp \
-		SVGMaskElement.cpp \
-		SVGMatrix.cpp \
-		SVGMetadataElement.cpp \
-		SVGMotionSMILType.cpp \
-		SVGMotionSMILAttr.cpp \
-		SVGMotionSMILAnimationFunction.cpp \
-		SVGMotionSMILPathUtils.cpp \
-		SVGMPathElement.cpp \
-		SVGNumberList.cpp \
-		SVGNumberListSMILType.cpp \
-		SVGNumberPairSMILType.cpp \
-		SVGOrientSMILType.cpp \
-		SVGPathData.cpp \
-		SVGPathElement.cpp \
-		SVGPathSegUtils.cpp \
-		SVGPathSegListSMILType.cpp \
-		SVGPatternElement.cpp \
-		SVGPointList.cpp \
-		SVGPointListSMILType.cpp \
-		SVGPolygonElement.cpp \
-		SVGPolylineElement.cpp \
-		SVGPreserveAspectRatio.cpp \
-		SVGRect.cpp \
-		SVGRectElement.cpp \
-		SVGScriptElement.cpp \
-		SVGSetElement.cpp \
-		SVGStopElement.cpp \
-		SVGStringList.cpp \
-		SVGStyleElement.cpp \
-		SVGSymbolElement.cpp \
-		SVGSVGElement.cpp \
-		SVGSwitchElement.cpp \
-		SVGTests.cpp \
-		SVGTextContentElement.cpp \
-		SVGTextElement.cpp \
-		SVGTextPathElement.cpp \
-		SVGTextPositioningElement.cpp \
-		SVGTitleElement.cpp \
-		SVGTransform.cpp \
-		SVGTransformableElement.cpp \
-		SVGTransformList.cpp \
-		SVGTransformListParser.cpp \
-		SVGTransformListSMILType.cpp \
-		SVGTSpanElement.cpp \
-		SVGUseElement.cpp \
-		SVGViewBoxSMILType.cpp \
-		SVGViewElement.cpp \
-		SVGZoomEvent.cpp \
-		$(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
 
 include $(topsrcdir)/config/rules.mk
 
--- a/content/svg/content/src/moz.build
+++ b/content/svg/content/src/moz.build
@@ -89,8 +89,150 @@ EXPORTS.mozilla.dom += [
     'SVGTransform.h',
     'SVGTransformableElement.h',
     'SVGUseElement.h',
     'SVGViewElement.h',
     'SVGZoomEvent.h',
     'nsSVGAnimatedTransformList.h',
 ]
 
+CPP_SOURCES += [
+    'DOMSVGAnimatedLengthList.cpp',
+    'DOMSVGAnimatedNumberList.cpp',
+    'DOMSVGLength.cpp',
+    'DOMSVGLengthList.cpp',
+    'DOMSVGNumber.cpp',
+    'DOMSVGNumberList.cpp',
+    'DOMSVGPathSeg.cpp',
+    'DOMSVGPathSegList.cpp',
+    'DOMSVGPoint.cpp',
+    'DOMSVGPointList.cpp',
+    'DOMSVGStringList.cpp',
+    'DOMSVGTransformList.cpp',
+    'SVGAElement.cpp',
+    'SVGAltGlyphElement.cpp',
+    'SVGAngle.cpp',
+    'SVGAnimateElement.cpp',
+    'SVGAnimateMotionElement.cpp',
+    'SVGAnimateTransformElement.cpp',
+    'SVGAnimatedAngle.cpp',
+    'SVGAnimatedBoolean.cpp',
+    'SVGAnimatedLength.cpp',
+    'SVGAnimatedLengthList.cpp',
+    'SVGAnimatedNumberList.cpp',
+    'SVGAnimatedPathSegList.cpp',
+    'SVGAnimatedPointList.cpp',
+    'SVGAnimatedPreserveAspectRatio.cpp',
+    'SVGAnimatedRect.cpp',
+    'SVGAnimatedTransformList.cpp',
+    'SVGAnimationElement.cpp',
+    'SVGAttrValueWrapper.cpp',
+    'SVGCircleElement.cpp',
+    'SVGClipPathElement.cpp',
+    'SVGContentUtils.cpp',
+    'SVGDefsElement.cpp',
+    'SVGDescElement.cpp',
+    'SVGElementFactory.cpp',
+    'SVGEllipseElement.cpp',
+    'SVGFEBlendElement.cpp',
+    'SVGFEColorMatrixElement.cpp',
+    'SVGFEComponentTransferElement.cpp',
+    'SVGFECompositeElement.cpp',
+    'SVGFEConvolveMatrixElement.cpp',
+    'SVGFEDiffuseLightingElement.cpp',
+    'SVGFEDisplacementMapElement.cpp',
+    'SVGFEDistantLightElement.cpp',
+    'SVGFEFloodElement.cpp',
+    'SVGFEGaussianBlurElement.cpp',
+    'SVGFEImageElement.cpp',
+    'SVGFEMergeElement.cpp',
+    'SVGFEMergeNodeElement.cpp',
+    'SVGFEMorphologyElement.cpp',
+    'SVGFEOffsetElement.cpp',
+    'SVGFEPointLightElement.cpp',
+    'SVGFESpecularLightingElement.cpp',
+    'SVGFESpotLightElement.cpp',
+    'SVGFETileElement.cpp',
+    'SVGFETurbulenceElement.cpp',
+    'SVGFilterElement.cpp',
+    'SVGForeignObjectElement.cpp',
+    'SVGFragmentIdentifier.cpp',
+    'SVGGElement.cpp',
+    'SVGGradientElement.cpp',
+    'SVGGraphicsElement.cpp',
+    'SVGImageElement.cpp',
+    'SVGIntegerPairSMILType.cpp',
+    'SVGLength.cpp',
+    'SVGLengthList.cpp',
+    'SVGLengthListSMILType.cpp',
+    'SVGLineElement.cpp',
+    'SVGMPathElement.cpp',
+    'SVGMarkerElement.cpp',
+    'SVGMaskElement.cpp',
+    'SVGMatrix.cpp',
+    'SVGMetadataElement.cpp',
+    'SVGMotionSMILAnimationFunction.cpp',
+    'SVGMotionSMILAttr.cpp',
+    'SVGMotionSMILPathUtils.cpp',
+    'SVGMotionSMILType.cpp',
+    'SVGNumberList.cpp',
+    'SVGNumberListSMILType.cpp',
+    'SVGNumberPairSMILType.cpp',
+    'SVGOrientSMILType.cpp',
+    'SVGPathData.cpp',
+    'SVGPathElement.cpp',
+    'SVGPathSegListSMILType.cpp',
+    'SVGPathSegUtils.cpp',
+    'SVGPatternElement.cpp',
+    'SVGPointList.cpp',
+    'SVGPointListSMILType.cpp',
+    'SVGPolygonElement.cpp',
+    'SVGPolylineElement.cpp',
+    'SVGPreserveAspectRatio.cpp',
+    'SVGRect.cpp',
+    'SVGRectElement.cpp',
+    'SVGSVGElement.cpp',
+    'SVGScriptElement.cpp',
+    'SVGSetElement.cpp',
+    'SVGStopElement.cpp',
+    'SVGStringList.cpp',
+    'SVGStyleElement.cpp',
+    'SVGSwitchElement.cpp',
+    'SVGSymbolElement.cpp',
+    'SVGTSpanElement.cpp',
+    'SVGTests.cpp',
+    'SVGTextContentElement.cpp',
+    'SVGTextElement.cpp',
+    'SVGTextPathElement.cpp',
+    'SVGTextPositioningElement.cpp',
+    'SVGTitleElement.cpp',
+    'SVGTransform.cpp',
+    'SVGTransformList.cpp',
+    'SVGTransformListParser.cpp',
+    'SVGTransformListSMILType.cpp',
+    'SVGTransformableElement.cpp',
+    'SVGUseElement.cpp',
+    'SVGViewBoxSMILType.cpp',
+    'SVGViewElement.cpp',
+    'SVGZoomEvent.cpp',
+    'nsISVGPoint.cpp',
+    'nsSVGAngle.cpp',
+    'nsSVGAnimatedTransformList.cpp',
+    'nsSVGBoolean.cpp',
+    'nsSVGClass.cpp',
+    'nsSVGDataParser.cpp',
+    'nsSVGElement.cpp',
+    'nsSVGEnum.cpp',
+    'nsSVGFeatures.cpp',
+    'nsSVGFilters.cpp',
+    'nsSVGInteger.cpp',
+    'nsSVGIntegerPair.cpp',
+    'nsSVGLength2.cpp',
+    'nsSVGNumber2.cpp',
+    'nsSVGNumberPair.cpp',
+    'nsSVGPathDataParser.cpp',
+    'nsSVGPathGeometryElement.cpp',
+    'nsSVGPolyElement.cpp',
+    'nsSVGString.cpp',
+    'nsSVGTransform.cpp',
+    'nsSVGViewBox.cpp',
+]
+
--- a/content/svg/document/src/Makefile.in
+++ b/content/svg/document/src/Makefile.in
@@ -9,20 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconsvgdoc_s
 LIBXUL_LIBRARY	= 1
 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
 
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES	+= \
 		-I$(srcdir) \
 		-I$(srcdir)/../../../xml/document/src \
--- a/content/svg/document/src/moz.build
+++ b/content/svg/document/src/moz.build
@@ -5,8 +5,12 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULE = 'content'
 
 EXPORTS.mozilla.dom += [
     'SVGDocument.h',
 ]
 
+CPP_SOURCES += [
+    'SVGDocument.cpp',
+]
+
--- a/content/xbl/src/Makefile.in
+++ b/content/xbl/src/Makefile.in
@@ -10,36 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconxbl_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-CPPSRCS		= \
-    nsXBLBinding.cpp \
-    nsXBLPrototypeBinding.cpp \
-    nsXBLPrototypeResources.cpp \
-    nsXBLResourceLoader.cpp \
-    nsXBLDocumentInfo.cpp \
-    nsXBLContentSink.cpp \
-    nsXBLProtoImplProperty.cpp \
-    nsXBLProtoImplMethod.cpp \
-    nsXBLProtoImplField.cpp \
-    nsXBLProtoImpl.cpp \
-    nsXBLEventHandler.cpp \
-    nsXBLWindowKeyHandler.cpp \
-    nsXBLPrototypeHandler.cpp \
-    nsXBLService.cpp \
-    nsBindingManager.cpp \
-    nsXBLInsertionPoint.cpp \
-    nsXBLSerialize.cpp \
-		$(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
@@ -7,8 +7,28 @@
 MODULE = 'content'
 
 EXPORTS += [
     'nsBindingManager.h',
     'nsXBLBinding.h',
     'nsXBLService.h',
 ]
 
+CPP_SOURCES += [
+    'nsBindingManager.cpp',
+    'nsXBLBinding.cpp',
+    'nsXBLContentSink.cpp',
+    'nsXBLDocumentInfo.cpp',
+    'nsXBLEventHandler.cpp',
+    'nsXBLInsertionPoint.cpp',
+    'nsXBLProtoImpl.cpp',
+    'nsXBLProtoImplField.cpp',
+    'nsXBLProtoImplMethod.cpp',
+    'nsXBLProtoImplProperty.cpp',
+    'nsXBLPrototypeBinding.cpp',
+    'nsXBLPrototypeHandler.cpp',
+    'nsXBLPrototypeResources.cpp',
+    'nsXBLResourceLoader.cpp',
+    'nsXBLSerialize.cpp',
+    'nsXBLService.cpp',
+    'nsXBLWindowKeyHandler.cpp',
+]
+
--- a/content/xml/content/src/Makefile.in
+++ b/content/xml/content/src/Makefile.in
@@ -10,23 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconxmlcon_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-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.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES	+= \
 		-I$(srcdir)/../../../base/src \
 		$(NULL)
--- a/content/xml/content/src/moz.build
+++ b/content/xml/content/src/moz.build
@@ -7,8 +7,15 @@
 MODULE = 'content'
 
 EXPORTS.mozilla.dom += [
     'CDATASection.h',
     'ProcessingInstruction.h',
     'XMLStylesheetProcessingInstruction.h',
 ]
 
+CPP_SOURCES += [
+    'CDATASection.cpp',
+    'ProcessingInstruction.cpp',
+    'XMLStylesheetProcessingInstruction.cpp',
+    'nsXMLElement.cpp',
+]
+
--- a/content/xml/document/src/Makefile.in
+++ b/content/xml/document/src/Makefile.in
@@ -10,23 +10,16 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 LIBRARY_NAME	= gkconxmldoc_s
 MSVC_ENABLE_PGO := 1
 LIBXUL_LIBRARY	= 1
 FAIL_ON_WARNINGS = 1
 
-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.
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES	= \
 		-I$(srcdir) \
 		-I$(srcdir)/../../../html/document/src \
--- a/content/xml/document/src/moz.build
+++ b/content/xml/document/src/moz.build
@@ -5,8 +5,15 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULE = 'content'
 
 EXPORTS.mozilla.dom += [
     'XMLDocument.h',