Backout 7f8928077ed4 (bug 742795) for make-package & find filepath failures
authorEd Morley <emorley@mozilla.com>
Mon, 06 Aug 2012 16:05:07 +0100
changeset 101556 867c9f564966b8995494955846d2f6597d6d978a
parent 101555 1e9ec6f54266e358bf5e88de6b0f4eb82a68eebd
child 101557 dc18da2fd18c33dd3c286b97dd7164e6409c9caf
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
bugs742795
milestone17.0a1
backs out7f8928077ed4fed434d03af45843de85298b13e1
Backout 7f8928077ed4 (bug 742795) for make-package & find filepath failures
build/ConfigStatus.py
build/tests/unit-ConfigStatus.py
config/autoconf.mk.in
js/src/build/ConfigStatus.py
js/src/config/autoconf.mk.in
--- a/build/ConfigStatus.py
+++ b/build/ConfigStatus.py
@@ -94,58 +94,53 @@ def shell_escape(s):
     '''
     return re.sub('''([ \t`#$^&*(){}\\|;'"<>?\[\]])''', r'\\\1', str(s)).replace('$', '$$')
 
 class ConfigEnvironment(object):
     '''A ConfigEnvironment is defined by a source directory and a build
     directory. It preprocesses files from the source directory and stores
     the result in the object directory.
 
-    There are two types of files: config files and config headers,
-    each treated through a different member function.
+     There are two types of files: config files and config headers,
+     each treated through a different member function.
 
-    Creating a ConfigEnvironment requires a few arguments:
-      - topsrcdir and topobjdir are, respectively, the top source and
-        the top object directory.
-      - defines is a list of (name, value) tuples. In autoconf, these are
-        set with AC_DEFINE and AC_DEFINE_UNQUOTED
-      - non_global_defines are a list of names appearing in defines above
-        that are not meant to be exported in ACDEFINES and ALLDEFINES (see
-        below)
-      - substs is a list of (name, value) tuples. In autoconf, these are
-        set with AC_SUBST.
+     Creating a ConfigEnvironment requires a few arguments:
+       - topsrcdir and topobjdir are, respectively, the top source and
+         the top object directory.
+       - defines is a list of (name, value) tuples. In autoconf, these are
+         set with AC_DEFINE and AC_DEFINE_UNQUOTED
+       - non_global_defines are a list of names appearing in defines above
+         that are not meant to be exported in ACDEFINES and ALLDEFINES (see
+         below)
+       - substs is a list of (name, value) tuples. In autoconf, these are
+         set with AC_SUBST.
 
-    ConfigEnvironment automatically defines two additional substs variables
-    from all the defines not appearing in non_global_defines:
-      - ACDEFINES contains the defines in the form -DNAME=VALUE, for use on
-        preprocessor command lines. The order in which defines were given
-        when creating the ConfigEnvironment is preserved.
-      - ALLDEFINES contains the defines in the form #define NAME VALUE, in
-        sorted order, for use in config files, for an automatic listing of
-        defines.
-    and another additional subst variable from all the other substs:
-      - ALLSUBSTS contains the substs in the form NAME = VALUE, in sorted
-        order, for use in autoconf.mk. It includes ACDEFINES, but doesn't
-        include ALLDEFINES.
+     ConfigEnvironment automatically defines two additional substs variables
+     from all the defines not appearing in non_global_defines:
+       - ACDEFINES contains the defines in the form -DNAME=VALUE, for use on
+         preprocessor command lines. The order in which defines were given
+         when creating the ConfigEnvironment is preserved.
+       - ALLDEFINES contains the defines in the form #define NAME VALUE, in
+         sorted order, for use in config files, for an automatic listing of
+         defines.
 
     ConfigEnvironment expects a "top_srcdir" subst to be set with the top
     source directory, in msys format on windows. It is used to derive a
     "srcdir" subst when treating config files. It can either be an absolute
     path or a path relative to the topobjdir.
     '''
 
     def __init__(self, topobjdir = '.', topsrcdir = '.',
                  defines = [], non_global_defines = [], substs = []):
         self.defines = dict(defines)
         self.substs = dict(substs)
         self.topsrcdir = topsrcdir
         self.topobjdir = topobjdir
         global_defines = [name for name, value in defines if not name in non_global_defines]
         self.substs['ACDEFINES'] = ' '.join(["-D%s=%s" % (name, shell_escape(self.defines[name])) for name in global_defines])
-        self.substs['ALLSUBSTS'] = '\n'.join(sorted(["%s = %s" % (name, self.substs[name]) for name in self.substs]))
         self.substs['ALLDEFINES'] = '\n'.join(sorted(["#define %s %s" % (name, self.defines[name]) for name in global_defines]))
 
     def get_relative_srcdir(self, file):
         '''Returns the relative source directory for the given file, always
         using / as a path separator.
         '''
         assert(isinstance(file, basestring))
         dir = posixpath.dirname(relpath(file, self.topobjdir).replace(os.sep, '/'))
--- a/build/tests/unit-ConfigStatus.py
+++ b/build/tests/unit-ConfigStatus.py
@@ -49,40 +49,30 @@ class TestFileAvoidWrite(unittest.TestCa
             # Check that no write actually happens when writing the
             # same content as what already is in the file
             with FileAvoidWrite('file') as file:
                 file.write('content')
 
 
 class TestEnvironment(unittest.TestCase):
     def test_auto_substs(self):
-        '''Test the automatically set values of ACDEFINES, ALLDEFINES
-        and ALLSUBSTS.
+        '''Test the automatically set values of ACDEFINES and ALLDEFINES.
         '''
         env = ConfigEnvironment(
                   defines = [ ('foo', 'bar'), ('baz', 'qux 42'),
                               ('abc', 'def'), ('extra', 'foobar') ],
-                  non_global_defines = ['extra', 'ignore'],
-                  substs = [ ('FOO', 'bar'), ('ABC', 'def'),
-                             ('bar', 'baz qux'), ('zzz', '"abc def"') ])
+                  non_global_defines = ['extra', 'ignore'])
         # non_global_defines should be filtered out in ACDEFINES and
         # ALLDEFINES.
         # Original order of the defines need to be respected in ACDEFINES
-        self.assertEqual(env.substs['ACDEFINES'], '''-Dfoo=bar -Dbaz=qux\ 42 -Dabc=def''')
+        self.assertEqual(env.substs['ACDEFINES'], '-Dfoo=bar -Dbaz=qux\\ 42 -Dabc=def')
         # ALLDEFINES, on the other hand, needs to be sorted
         self.assertEqual(env.substs['ALLDEFINES'], '''#define abc def
 #define baz qux 42
 #define foo bar''')
-        # Likewise for ALLSUBSTS, which also mustn't contain ALLDEFINES
-        # but contain ACDEFINES
-        self.assertEqual(env.substs['ALLSUBSTS'], '''ABC = def
-ACDEFINES = -Dfoo=bar -Dbaz=qux\ 42 -Dabc=def
-FOO = bar
-bar = baz qux
-zzz = "abc def"''')
 
     def test_config_file(self):
         '''Test the creation of config files.
         '''
         with MockedOpen({'file.in': '''#ifdef foo
 @foo@
 @bar@
 '''}):
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -1,2 +1,668 @@
-@ALLSUBSTS@
+#
+# 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/.
+
+# A netscape style .mk file for autoconf builds
+
+target          = @target@
+ac_configure_args = @ac_configure_args@
+MOZILLA_VERSION = @MOZILLA_VERSION@
+FIREFOX_VERSION	= @FIREFOX_VERSION@
+
+MOZ_BUILD_APP = @MOZ_BUILD_APP@
+MOZ_APP_NAME	= @MOZ_APP_NAME@
+MOZ_APP_DISPLAYNAME = @MOZ_APP_DISPLAYNAME@
+MOZ_APP_BASENAME = @MOZ_APP_BASENAME@
+MOZ_APP_VENDOR = @MOZ_APP_VENDOR@
+MOZ_APP_PROFILE = @MOZ_APP_PROFILE@
+MOZ_APP_ID = @MOZ_APP_ID@
+MAR_CHANNEL_ID = @MAR_CHANNEL_ID@
+ACCEPTED_MAR_CHANNEL_IDS = @ACCEPTED_MAR_CHANNEL_IDS@
+MOZ_PROFILE_MIGRATOR = @MOZ_PROFILE_MIGRATOR@
+MOZ_EXTENSION_MANAGER = @MOZ_EXTENSION_MANAGER@
+MOZ_APP_UA_NAME = @MOZ_APP_UA_NAME@
+MOZ_UA_OS_AGNOSTIC = @MOZ_UA_OS_AGNOSTIC@
+MOZ_APP_VERSION = @MOZ_APP_VERSION@
+MOZ_APP_MAXVERSION = @MOZ_APP_MAXVERSION@
+MOZ_MACBUNDLE_NAME = @MOZ_MACBUNDLE_NAME@
+MOZ_MACBUNDLE_ID = @MOZ_MACBUNDLE_ID@
+MOZ_APP_STATIC_INI = @MOZ_APP_STATIC_INI@
+
+MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@
+
+prefix		= @prefix@
+exec_prefix	= @exec_prefix@
+bindir		= @bindir@
+includedir	= @includedir@
+libdir		= @libdir@
+datadir		= @datadir@
+mandir		= @mandir@
+
+LIBXUL_SDK      = @LIBXUL_SDK@
+
+MOZ_FS_LAYOUT = @MOZ_FS_LAYOUT@
+
+L10NBASEDIR     = @L10NBASEDIR@
+
+LIBXUL_DIST	= @LIBXUL_DIST@
+SYSTEM_LIBXUL   = @SYSTEM_LIBXUL@
+
+XULRUNNER_STUB_NAME = @XULRUNNER_STUB_NAME@
+
+MOZ_CHROME_FILE_FORMAT	= @MOZ_CHROME_FILE_FORMAT@
+MOZ_OMNIJAR		= @MOZ_OMNIJAR@
+OMNIJAR_NAME		= @OMNIJAR_NAME@
+
+MOZ_WIDGET_TOOLKIT	= @MOZ_WIDGET_TOOLKIT@
+MOZ_GFX_OPTIMIZE_MOBILE = @MOZ_GFX_OPTIMIZE_MOBILE@
+
+MOZ_X11			= @MOZ_X11@
+
+MOZ_PANGO = @MOZ_PANGO@
+
+MOZ_JS_LIBS		   = @MOZ_JS_LIBS@
+
+MOZ_DEBUG	= @MOZ_DEBUG@
+MOZ_DEBUG_SYMBOLS = @MOZ_DEBUG_SYMBOLS@
+MOZ_DEBUG_ENABLE_DEFS		= @MOZ_DEBUG_ENABLE_DEFS@
+MOZ_DEBUG_DISABLE_DEFS	= @MOZ_DEBUG_DISABLE_DEFS@
+MOZ_DEBUG_FLAGS	= @MOZ_DEBUG_FLAGS@
+MOZ_DEBUG_LDFLAGS=@MOZ_DEBUG_LDFLAGS@
+MOZ_EXTENSIONS  = @MOZ_EXTENSIONS@
+MOZ_JSDEBUGGER  = @MOZ_JSDEBUGGER@
+MOZ_IPDL_TESTS 	= @MOZ_IPDL_TESTS@
+MOZ_MEMORY      = @MOZ_MEMORY@
+MOZ_JEMALLOC    = @MOZ_JEMALLOC@
+MOZ_PROFILING   = @MOZ_PROFILING@
+MOZ_ENABLE_PROFILER_SPS = @MOZ_ENABLE_PROFILER_SPS@
+MOZ_JPROF       = @MOZ_JPROF@
+MOZ_SHARK       = @MOZ_SHARK@
+MOZ_CALLGRIND   = @MOZ_CALLGRIND@
+MOZ_VALGRIND    = @MOZ_VALGRIND@
+MOZ_VTUNE       = @MOZ_VTUNE@
+MOZ_ETW         = @MOZ_ETW@
+DEHYDRA_PATH    = @DEHYDRA_PATH@
+
+MOZ_USING_CCACHE = @MOZ_USING_CCACHE@
+CLANG_CXX = @CLANG_CXX@
+MOZ_LINKER = @MOZ_LINKER@
+MOZ_OLD_LINKER = @MOZ_OLD_LINKER@
+MOZ_ENABLE_SZIP = @MOZ_ENABLE_SZIP@
+NS_TRACE_MALLOC = @NS_TRACE_MALLOC@
+USE_ELF_DYNSTR_GC = @USE_ELF_DYNSTR_GC@
+USE_ELF_HACK = @USE_ELF_HACK@
+STDCXX_COMPAT = @STDCXX_COMPAT@
+MOZ_LIBSTDCXX_TARGET_VERSION=@MOZ_LIBSTDCXX_TARGET_VERSION@
+MOZ_LIBSTDCXX_HOST_VERSION=@MOZ_LIBSTDCXX_HOST_VERSION@
+INCREMENTAL_LINKER = @INCREMENTAL_LINKER@
+MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
+ENABLE_TESTS	= @ENABLE_TESTS@
+ENABLE_MARIONETTE = @ENABLE_MARIONETTE@
+IBMBIDI = @IBMBIDI@
+MOZ_UNIVERSALCHARDET = @MOZ_UNIVERSALCHARDET@
+ACCESSIBILITY = @ACCESSIBILITY@
+MOZ_BRANDING_DIRECTORY = @MOZ_BRANDING_DIRECTORY@
+MOZ_MAINTENANCE_SERVICE	= @MOZ_MAINTENANCE_SERVICE@
+MOZ_VERIFY_MAR_SIGNATURE	= @MOZ_VERIFY_MAR_SIGNATURE@
+MOZ_ENABLE_SIGNMAR	= @MOZ_ENABLE_SIGNMAR@
+MOZ_UPDATER	= @MOZ_UPDATER@
+MOZ_UPDATE_CHANNEL	= @MOZ_UPDATE_CHANNEL@
+MOZ_UPDATE_PACKAGING	= @MOZ_UPDATE_PACKAGING@
+MOZ_DISABLE_PARENTAL_CONTROLS = @MOZ_DISABLE_PARENTAL_CONTROLS@
+NS_ENABLE_TSF = @NS_ENABLE_TSF@
+MOZ_SPELLCHECK = @MOZ_SPELLCHECK@
+MOZ_ANDROID_HISTORY = @MOZ_ANDROID_HISTORY@
+MOZ_WEBSMS_BACKEND = @MOZ_WEBSMS_BACKEND@
+MOZ_JAVA_COMPOSITOR = @MOZ_JAVA_COMPOSITOR@
+MOZ_ONLY_TOUCH_EVENTS = @MOZ_ONLY_TOUCH_EVENTS@
+MOZ_PROFILELOCKING = @MOZ_PROFILELOCKING@
+MOZ_FEEDS = @MOZ_FEEDS@
+MOZ_TOOLKIT_SEARCH = @MOZ_TOOLKIT_SEARCH@
+MOZ_PLACES = @MOZ_PLACES@
+MOZ_SAFE_BROWSING = @MOZ_SAFE_BROWSING@
+MOZ_URL_CLASSIFIER = @MOZ_URL_CLASSIFIER@
+MOZ_ZIPWRITER = @MOZ_ZIPWRITER@
+MOZ_OGG = @MOZ_OGG@
+MOZ_RAW = @MOZ_RAW@
+MOZ_SYDNEYAUDIO = @MOZ_SYDNEYAUDIO@
+MOZ_SPEEX_RESAMPLER = @MOZ_SPEEX_RESAMPLER@
+MOZ_CUBEB = @MOZ_CUBEB@
+MOZ_WAVE = @MOZ_WAVE@
+MOZ_MEDIA = @MOZ_MEDIA@
+MOZ_VORBIS = @MOZ_VORBIS@
+MOZ_TREMOR = @MOZ_TREMOR@
+MOZ_OPUS = @MOZ_OPUS@
+MOZ_WEBM = @MOZ_WEBM@
+MOZ_MEDIA_PLUGINS = @MOZ_MEDIA_PLUGINS@
+MOZ_OMX_PLUGIN = @MOZ_OMX_PLUGIN@
+MOZ_GSTREAMER = @MOZ_GSTREAMER@
+MOZ_VP8 = @MOZ_VP8@
+MOZ_VP8_ERROR_CONCEALMENT = @MOZ_VP8_ERROR_CONCEALMENT@
+MOZ_VP8_ENCODER = @MOZ_VP8_ENCODER@
+VPX_AS = @VPX_AS@
+VPX_ASFLAGS = @VPX_ASFLAGS@
+VPX_DASH_C_FLAG = @VPX_DASH_C_FLAG@
+VPX_AS_CONVERSION = @VPX_AS_CONVERSION@
+VPX_ASM_SUFFIX = @VPX_ASM_SUFFIX@
+VPX_X86_ASM = @VPX_X86_ASM@
+VPX_ARM_ASM = @VPX_ARM_ASM@
+VPX_NEED_OBJ_INT_EXTRACT = @VPX_NEED_OBJ_INT_EXTRACT@
+LIBJPEG_TURBO_AS = @LIBJPEG_TURBO_AS@
+LIBJPEG_TURBO_ASFLAGS = @LIBJPEG_TURBO_ASFLAGS@
+LIBJPEG_TURBO_X86_ASM = @LIBJPEG_TURBO_X86_ASM@
+LIBJPEG_TURBO_X64_ASM = @LIBJPEG_TURBO_X64_ASM@
+LIBJPEG_TURBO_ARM_ASM = @LIBJPEG_TURBO_ARM_ASM@
+NS_PRINTING = @NS_PRINTING@
+MOZ_PDF_PRINTING = @MOZ_PDF_PRINTING@
+MOZ_CRASHREPORTER = @MOZ_CRASHREPORTER@
+MOZ_CRASHREPORTER_INJECTOR = @MOZ_CRASHREPORTER_INJECTOR@
+MOZ_HELP_VIEWER = @MOZ_HELP_VIEWER@
+MOC = @MOC@
+RCC = @RCC@
+MOZ_NSS_PATCH = @MOZ_NSS_PATCH@
+MOZ_WEBGL = @MOZ_WEBGL@
+MOZ_ANGLE_RENDERER = @MOZ_ANGLE_RENDERER@
+MOZ_DIRECTX_SDK_PATH = @MOZ_DIRECTX_SDK_PATH@
+MOZ_DIRECTX_SDK_CPU_SUFFIX = @MOZ_DIRECTX_SDK_CPU_SUFFIX@
+MOZ_D3DX9_VERSION = @MOZ_D3DX9_VERSION@
+MOZ_D3DX9_CAB = @MOZ_D3DX9_CAB@
+MOZ_D3DCOMPILER_CAB = @MOZ_D3DCOMPILER_CAB@
+MOZ_D3DX9_DLL = @MOZ_D3DX9_DLL@
+MOZ_D3DCOMPILER_DLL = @MOZ_D3DCOMPILER_DLL@
+MOZ_GL_PROVIDER = @MOZ_GL_PROVIDER@
+MOZ_GL_DEFAULT_PROVIDER = @MOZ_GL_DEFAULT_PROVIDER@
+MOZ_WEBRTC = @MOZ_WEBRTC@
+
+
+JAVA=@JAVA@
+JAVAC=@JAVAC@
+JAR=@JAR@
+
+TAR=@TAR@
+
+MAKENSISU=@MAKENSISU@
+
+# The MOZ_UI_LOCALE var is used to build a particular locale. Do *not*
+# use the var to change any binary files. Do *not* use this var unless you
+# write rules for the "clean-locale" and "locale" targets.
+MOZ_UI_LOCALE = @MOZ_UI_LOCALE@
+
+MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS = @MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS@
+MOZ_COMPONENT_NSPR_LIBS=@MOZ_COMPONENT_NSPR_LIBS@
+
+MOZ_FIX_LINK_PATHS=@MOZ_FIX_LINK_PATHS@
+
+XPCOM_FROZEN_LDOPTS=@XPCOM_FROZEN_LDOPTS@
+XPCOM_LIBS=@XPCOM_LIBS@
+LIBXUL_LIBS=@LIBXUL_LIBS@
+
+ENABLE_STRIP	= @ENABLE_STRIP@
+PKG_SKIP_STRIP	= @PKG_SKIP_STRIP@
+STRIP_FLAGS = @STRIP_FLAGS@
+
+MOZ_POST_DSO_LIB_COMMAND = @MOZ_POST_DSO_LIB_COMMAND@
+MOZ_POST_PROGRAM_COMMAND = @MOZ_POST_PROGRAM_COMMAND@
+
+MOZ_BUILD_ROOT             = @MOZ_BUILD_ROOT@
+
+MOZ_XUL                    = @MOZ_XUL@
+
+NECKO_PROTOCOLS = @NECKO_PROTOCOLS@
+NECKO_COOKIES = @NECKO_COOKIES@
+NECKO_WIFI = @NECKO_WIFI@
+MOZ_AUTH_EXTENSION = @MOZ_AUTH_EXTENSION@
+
+MOZ_NATIVE_HUNSPELL = @MOZ_NATIVE_HUNSPELL@
+MOZ_HUNSPELL_LIBS = @MOZ_HUNSPELL_LIBS@
+MOZ_HUNSPELL_CFLAGS = @MOZ_HUNSPELL_CFLAGS@
+
+MOZ_NATIVE_LIBEVENT = @MOZ_NATIVE_LIBEVENT@
+MOZ_LIBEVENT_LIBS = @MOZ_LIBEVENT_LIBS@
+MOZ_LIBEVENT_INCLUDES = @MOZ_LIBEVENT_INCLUDES@
+
+MOZ_NATIVE_LIBVPX = @MOZ_NATIVE_LIBVPX@
+MOZ_LIBVPX_LIBS = @MOZ_LIBVPX_LIBS@
+MOZ_LIBVPX_CFLAGS = @MOZ_LIBVPX_CFLAGS@
+
+MOZ_NATIVE_ZLIB	= @MOZ_NATIVE_ZLIB@
+MOZ_NATIVE_BZ2	= @MOZ_NATIVE_BZ2@
+MOZ_NATIVE_JPEG	= @MOZ_NATIVE_JPEG@
+MOZ_NATIVE_PNG	= @MOZ_NATIVE_PNG@
+MOZ_TREE_CAIRO = @MOZ_TREE_CAIRO@
+MOZ_TREE_PIXMAN = @MOZ_TREE_PIXMAN@
+
+MOZ_UPDATE_XTERM = @MOZ_UPDATE_XTERM@
+MOZ_PERMISSIONS = @MOZ_PERMISSIONS@
+MOZ_XTF = @MOZ_XTF@
+MOZ_FLEXBOX = @MOZ_FLEXBOX@
+MOZ_CAIRO_CFLAGS = @MOZ_CAIRO_CFLAGS@
+MOZ_PIXMAN_CFLAGS = @MOZ_PIXMAN_CFLAGS@
+
+MOZ_PREF_EXTENSIONS = @MOZ_PREF_EXTENSIONS@
+
+MOZ_CAIRO_LIBS = @MOZ_CAIRO_LIBS@
+MOZ_CAIRO_OSLIBS = @MOZ_CAIRO_OSLIBS@
+MOZ_PIXMAN_LIBS = @MOZ_PIXMAN_LIBS@
+
+MOZ_ENABLE_GNOMEUI = @MOZ_ENABLE_GNOMEUI@
+MOZ_GNOMEUI_CFLAGS = @MOZ_GNOMEUI_CFLAGS@
+MOZ_GNOMEUI_LIBS = @MOZ_GNOMEUI_LIBS@
+
+MOZ_ENABLE_STARTUP_NOTIFICATION = @MOZ_ENABLE_STARTUP_NOTIFICATION@
+MOZ_STARTUP_NOTIFICATION_CFLAGS = @MOZ_STARTUP_NOTIFICATION_CFLAGS@
+MOZ_STARTUP_NOTIFICATION_LIBS = @MOZ_STARTUP_NOTIFICATION_LIBS@
+
+MOZ_ENABLE_GNOMEVFS = @MOZ_ENABLE_GNOMEVFS@
+MOZ_GNOMEVFS_CFLAGS = @MOZ_GNOMEVFS_CFLAGS@
+MOZ_GNOMEVFS_LIBS = @MOZ_GNOMEVFS_LIBS@
+
+MOZ_ENABLE_GCONF = @MOZ_ENABLE_GCONF@
+MOZ_GCONF_CFLAGS = @MOZ_GCONF_CFLAGS@
+MOZ_GCONF_LIBS = @MOZ_GCONF_LIBS@
+
+MOZ_ENABLE_GNOME_COMPONENT = @MOZ_ENABLE_GNOME_COMPONENT@
+
+MOZ_ENABLE_GIO = @MOZ_ENABLE_GIO@
+MOZ_GIO_CFLAGS = @MOZ_GIO_CFLAGS@
+MOZ_GIO_LIBS = @MOZ_GIO_LIBS@
+
+MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
+MOZ_NATIVE_NSS = @MOZ_NATIVE_NSS@
+
+MOZ_B2G_RIL = @MOZ_B2G_RIL@
+MOZ_B2G_BT = @MOZ_B2G_BT@
+MOZ_B2G_CAMERA = @MOZ_B2G_CAMERA@
+
+MOZ_SYS_MSG = @MOZ_SYS_MSG@
+
+MOZ_ASAN = @MOZ_ASAN@
+MOZ_CFLAGS_NSS = @MOZ_CFLAGS_NSS@
+MOZ_NO_WLZDEFS = @MOZ_NO_WLZDEFS@
+
+BUILD_CTYPES = @BUILD_CTYPES@
+
+COMPILE_ENVIRONMENT = @COMPILE_ENVIRONMENT@
+CROSS_COMPILE   = @CROSS_COMPILE@
+
+WCHAR_CFLAGS	= @WCHAR_CFLAGS@
+
+OS_CPPFLAGS	= @OS_CPPFLAGS@
+OS_CFLAGS	= @OS_CFLAGS@
+OS_CXXFLAGS	= @OS_CXXFLAGS@
+OS_LDFLAGS	= @OS_LDFLAGS@
+
+OS_COMPILE_CFLAGS = @OS_COMPILE_CFLAGS@
+OS_COMPILE_CXXFLAGS = @OS_COMPILE_CXXFLAGS@
+
+OS_LIBS		= @OS_LIBS@
+ACDEFINES	= @ACDEFINES@
+
+WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@
+
+MOZ_OPTIMIZE	= @MOZ_OPTIMIZE@
+MOZ_FRAMEPTR_FLAGS = @MOZ_FRAMEPTR_FLAGS@
+MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@
+MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@
+MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@
+MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@
+
+MOZ_ALLOW_HEAP_EXECUTE_FLAGS = @MOZ_ALLOW_HEAP_EXECUTE_FLAGS@
+
+PROFILE_GEN_CFLAGS = @PROFILE_GEN_CFLAGS@
+PROFILE_GEN_LDFLAGS = @PROFILE_GEN_LDFLAGS@
+PROFILE_USE_CFLAGS = @PROFILE_USE_CFLAGS@
+PROFILE_USE_LDFLAGS = @PROFILE_USE_LDFLAGS@
+
+XCFLAGS		= @XCFLAGS@
+XLDFLAGS	= @XLDFLAGS@
+XLIBS		= @XLIBS@
+XEXT_LIBS	= @XEXT_LIBS@
+XCOMPOSITE_LIBS	= @XCOMPOSITE_LIBS@
+XSS_LIBS	= @XSS_LIBS@
+
+MOZ_THUMB2	= @MOZ_THUMB2@
+MOZ_EGL_XRENDER_COMPOSITE	= @MOZ_EGL_XRENDER_COMPOSITE@
+
+WIN_TOP_SRC	= @WIN_TOP_SRC@
+AR		= @AR@
+AR_FLAGS	= @AR_FLAGS@
+AR_EXTRACT	= @AR_EXTRACT@
+AR_LIST		= @AR_LIST@
+AR_DELETE	= @AR_DELETE@
+AS		= @AS@
+ASFLAGS		= @ASFLAGS@
+AS_DASH_C_FLAG	= @AS_DASH_C_FLAG@
+LD		= @LD@
+RC		= @RC@
+RCFLAGS		= @RCFLAGS@
+MC		= @MC@
+WINDRES		= @WINDRES@
+IMPLIB		= @IMPLIB@
+FILTER		= @FILTER@
+BIN_FLAGS	= @BIN_FLAGS@
+MIDL		= @MIDL@
+MIDL_FLAGS	= @MIDL_FLAGS@
+_MSC_VER	= @_MSC_VER@
+
+DLL_PREFIX	= @DLL_PREFIX@
+LIB_PREFIX	= @LIB_PREFIX@
+OBJ_SUFFIX	= @OBJ_SUFFIX@
+LIB_SUFFIX	= @LIB_SUFFIX@
+DLL_SUFFIX	= @DLL_SUFFIX@
+BIN_SUFFIX	= @BIN_SUFFIX@
+ASM_SUFFIX	= @ASM_SUFFIX@
+IMPORT_LIB_SUFFIX = @IMPORT_LIB_SUFFIX@
+LIBS_DESC_SUFFIX = @LIBS_DESC_SUFFIX@
+USE_N32		= @USE_N32@
+HAVE_64BIT_OS	= @HAVE_64BIT_OS@
+
+CC		    = @CC@
+CXX		    = @CXX@
+CPP       = @CPP@
+TOOLCHAIN_PREFIX = @TOOLCHAIN_PREFIX@
+
+CC_VERSION	= @CC_VERSION@
+CXX_VERSION	= @CXX_VERSION@
+
+GNU_AS		= @GNU_AS@
+GNU_LD		= @GNU_LD@
+GNU_CC		= @GNU_CC@
+GNU_CXX		= @GNU_CXX@
+INTEL_CC	= @INTEL_CC@
+INTEL_CXX	= @INTEL_CXX@
+
+STL_FLAGS		= @STL_FLAGS@
+WRAP_STL_INCLUDES	= @WRAP_STL_INCLUDES@
+MOZ_MSVC_STL_WRAP__Throw= @MOZ_MSVC_STL_WRAP__Throw@
+MOZ_MSVC_STL_WRAP__RAISE= @MOZ_MSVC_STL_WRAP__RAISE@
+
+HOST_CC		= @HOST_CC@
+HOST_CXX	= @HOST_CXX@
+HOST_CFLAGS	= @HOST_CFLAGS@
+HOST_CXXFLAGS	= @HOST_CXXFLAGS@
+HOST_LDFLAGS	= @HOST_LDFLAGS@
+HOST_OPTIMIZE_FLAGS = @HOST_OPTIMIZE_FLAGS@
+HOST_NSPR_MDCPUCFG = @HOST_NSPR_MDCPUCFG@
+HOST_AR		= @HOST_AR@
+HOST_AR_FLAGS	= @HOST_AR_FLAGS@
+HOST_LD		= @HOST_LD@
+HOST_RANLIB	= @HOST_RANLIB@
+HOST_BIN_SUFFIX	= @HOST_BIN_SUFFIX@
+
+HOST_OS_ARCH	= @HOST_OS_ARCH@
+host_cpu	= @host_cpu@
+host_vendor	= @host_vendor@
+host_os		= @host_os@
+
+TARGET_NSPR_MDCPUCFG = @TARGET_NSPR_MDCPUCFG@
+TARGET_CPU	= @TARGET_CPU@
+TARGET_VENDOR	= @TARGET_VENDOR@
+TARGET_OS	= @TARGET_OS@
+TARGET_MD_ARCH	= @TARGET_MD_ARCH@
+TARGET_XPCOM_ABI = @TARGET_XPCOM_ABI@
+
+AUTOCONF	= @AUTOCONF@
+GMAKE		= @GMAKE@
+PERL		= @PERL@
+PYTHON		= @PYTHON@
+RANLIB		= @RANLIB@
+OBJCOPY		= @OBJCOPY@
+UNZIP		= @UNZIP@
+ZIP		= @ZIP@
+XARGS		= @XARGS@
+STRIP		= @STRIP@
+DOXYGEN		= @DOXYGEN@
+PBBUILD_BIN	= @PBBUILD_BIN@
+SDP		= @SDP@
+NSINSTALL_BIN	= @NSINSTALL_BIN@
+WGET		= @WGET@
+RPMBUILD	= @RPMBUILD@
+
+MOZ_JPEG_CFLAGS	= @MOZ_JPEG_CFLAGS@
+MOZ_JPEG_LIBS	= @MOZ_JPEG_LIBS@
+
+MOZ_ZLIB_CFLAGS	= @MOZ_ZLIB_CFLAGS@
+MOZ_ZLIB_LIBS = @MOZ_ZLIB_LIBS@
+
+MOZ_BZ2_CFLAGS	= @MOZ_BZ2_CFLAGS@
+MOZ_BZ2_LIBS	= @MOZ_BZ2_LIBS@
+
+MOZ_PNG_CFLAGS	= @MOZ_PNG_CFLAGS@
+MOZ_PNG_LIBS	= @MOZ_PNG_LIBS@
+
+QCMS_LIBS	= @QCMS_LIBS@
+
+MOZ_HARFBUZZ_LIBS = @MOZ_HARFBUZZ_LIBS@
+MOZ_GRAPHITE_LIBS = @MOZ_GRAPHITE_LIBS@
+MOZ_GRAPHITE = @MOZ_GRAPHITE@
+MOZ_OTS_LIBS = @MOZ_OTS_LIBS@
+MOZ_SKIA_LIBS = @MOZ_SKIA_LIBS@
+MOZ_ENABLE_SKIA = @MOZ_ENABLE_SKIA@
+
+MOZ_NATIVE_SQLITE = @MOZ_NATIVE_SQLITE@
+SQLITE_CFLAGS     = @SQLITE_CFLAGS@
+SQLITE_LIBS       = @SQLITE_LIBS@
+
+NSPR_CONFIG	= @NSPR_CONFIG@
+NSPR_CFLAGS	= @NSPR_CFLAGS@
+NSPR_LIBS	= @NSPR_LIBS@
+
+NSS_CONFIG	= @NSS_CONFIG@
+NSS_CFLAGS	= @NSS_CFLAGS@
+NSS_LIBS	= @NSS_LIBS@
+NSS_DEP_LIBS	= @NSS_DEP_LIBS@
+NSS_DISABLE_DBM = @NSS_DISABLE_DBM@
+
+XPCOM_GLUE_LDOPTS	= @XPCOM_GLUE_LDOPTS@
+XPCOM_STANDALONE_GLUE_LDOPTS	= @XPCOM_STANDALONE_GLUE_LDOPTS@
+XPCOM_STATICRUNTIME_GLUE_LDOPTS	= @XPCOM_STATICRUNTIME_GLUE_LDOPTS@
+XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS	= @XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS@
+
+USE_DEPENDENT_LIBS = @USE_DEPENDENT_LIBS@
+
+# UNIX98 iconv support
+LIBICONV = @LIBICONV@
+
+# MKSHLIB_FORCE_ALL is used to force the linker to include all object
+# files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker
+# to normal behavior. Makefile's that create shared libraries out of
+# archives use these flags to force in all of the .o files in the
+# archives into the shared library.
+WRAP_LDFLAGS            = @WRAP_LDFLAGS@
+DSO_CFLAGS              = @DSO_CFLAGS@
+DSO_PIC_CFLAGS          = @DSO_PIC_CFLAGS@
+MKSHLIB                 = @MKSHLIB@
+MKCSHLIB                = @MKCSHLIB@
+MKSHLIB_FORCE_ALL       = @MKSHLIB_FORCE_ALL@
+MKSHLIB_UNFORCE_ALL     = @MKSHLIB_UNFORCE_ALL@
+DSO_LDOPTS              = @DSO_LDOPTS@
+DLL_SUFFIX              = @DLL_SUFFIX@
+
+NO_LD_ARCHIVE_FLAGS     = @NO_LD_ARCHIVE_FLAGS@
+
+GTK_CONFIG	= @GTK_CONFIG@
+TK_CFLAGS	= @TK_CFLAGS@
+TK_LIBS		= @TK_LIBS@
+
+CAIRO_FT_CFLAGS		= @CAIRO_FT_CFLAGS@
+
+MOZ_TREE_FREETYPE		= @MOZ_TREE_FREETYPE@
+MOZ_ENABLE_CAIRO_FT	= @MOZ_ENABLE_CAIRO_FT@
+MOZ_ENABLE_GTK2		= @MOZ_ENABLE_GTK2@
+MOZ_ENABLE_QT		= @MOZ_ENABLE_QT@
+MOZ_ENABLE_XREMOTE	= @MOZ_ENABLE_XREMOTE@
+MOZ_ENABLE_DWRITE_FONT	= @MOZ_ENABLE_DWRITE_FONT@
+MOZ_ENABLE_D2D_SURFACE	= @MOZ_ENABLE_D2D_SURFACE@
+MOZ_ENABLE_D3D9_LAYER	= @MOZ_ENABLE_D3D9_LAYER@
+MOZ_ENABLE_D3D10_LAYER  = @MOZ_ENABLE_D3D10_LAYER@
+MOZ_METRO	= @MOZ_METRO@
+MAKEPRI	= @MAKEPRI@
+CRTDLLVERSION	= @CRTDLLVERSION@
+CRTEXPDLLVERSION	= @CRTEXPDLLVERSION@
+
+MOZ_GTK2_CFLAGS		= @MOZ_GTK2_CFLAGS@
+MOZ_GTK2_LIBS		= @MOZ_GTK2_LIBS@
+
+MOZ_QT_CFLAGS		= @MOZ_QT_CFLAGS@
+MOZ_QT_LIBS		= @MOZ_QT_LIBS@
+MOZ_ENABLE_QTNETWORK    = @MOZ_ENABLE_QTNETWORK@
+MOZ_ENABLE_QMSYSTEM2    = @MOZ_ENABLE_QMSYSTEM2@
+MOZ_ENABLE_QTMOBILITY   = @MOZ_ENABLE_QTMOBILITY@
+MOZ_ENABLE_CONTENTACTION   = @MOZ_ENABLE_CONTENTACTION@
+MOZ_ENABLE_MEEGOTOUCHSHARE = @MOZ_ENABLE_MEEGOTOUCHSHARE@
+MOZ_ENABLE_CONTENTMANAGER = @MOZ_ENABLE_CONTENTMANAGER@
+
+MOZ_DBUS_CFLAGS         = @MOZ_DBUS_CFLAGS@
+MOZ_DBUS_LIBS           = @MOZ_DBUS_LIBS@
+MOZ_DBUS_GLIB_CFLAGS    = @MOZ_DBUS_GLIB_CFLAGS@
+MOZ_DBUS_GLIB_LIBS      = @MOZ_DBUS_GLIB_LIBS@
+MOZ_ENABLE_DBUS         = @MOZ_ENABLE_DBUS@
+
+MOZ_GTHREAD_CFLAGS      = @MOZ_GTHREAD_CFLAGS@
+MOZ_GTHREAD_LIBS        = @MOZ_GTHREAD_LIBS@
+
+FT2_CFLAGS             = @FT2_CFLAGS@
+FT2_LIBS               = @FT2_LIBS@
+
+MOZ_PANGO_CFLAGS        = @MOZ_PANGO_CFLAGS@
+MOZ_PANGO_LIBS          = @MOZ_PANGO_LIBS@
+
+XT_LIBS			= @XT_LIBS@
+
+MOZ_LIBPROXY_CFLAGS     = @MOZ_LIBPROXY_CFLAGS@
+MOZ_LIBPROXY_LIBS       = @MOZ_LIBPROXY_LIBS@
+MOZ_ENABLE_LIBPROXY     = @MOZ_ENABLE_LIBPROXY@
+
+MOZ_LIBNOTIFY_CFLAGS	= @MOZ_LIBNOTIFY_CFLAGS@
+MOZ_LIBNOTIFY_LIBS	= @MOZ_LIBNOTIFY_LIBS@
+MOZ_ENABLE_LIBNOTIFY	= @MOZ_ENABLE_LIBNOTIFY@
+
+MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS@
+MOZ_ALSA_CFLAGS         = @MOZ_ALSA_CFLAGS@
+
+GLIB_CFLAGS	= @GLIB_CFLAGS@
+GLIB_LIBS	= @GLIB_LIBS@
+GLIB_GMODULE_LIBS	= @GLIB_GMODULE_LIBS@
+
+MOZ_NATIVE_MAKEDEPEND	= @MOZ_NATIVE_MAKEDEPEND@
+
+CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
+
+MOZ_AUTO_DEPS	= @MOZ_AUTO_DEPS@
+COMPILER_DEPEND = @COMPILER_DEPEND@
+MDDEPDIR        := @MDDEPDIR@
+CC_WRAPPER = @CC_WRAPPER@
+CXX_WRAPPER = @CXX_WRAPPER@
+
+MOZ_DEMANGLE_SYMBOLS = @MOZ_DEMANGLE_SYMBOLS@
+
+OS_TARGET=@OS_TARGET@
+OS_ARCH=@OS_ARCH@
+OS_RELEASE=@OS_RELEASE@
+OS_TEST=@OS_TEST@
+CPU_ARCH=@CPU_ARCH@
+INTEL_ARCHITECTURE=@INTEL_ARCHITECTURE@
+
+# For Solaris build
+SOLARIS_SUNPRO_CC = @SOLARIS_SUNPRO_CC@
+SOLARIS_SUNPRO_CXX = @SOLARIS_SUNPRO_CXX@
+
+# For AIX build
+AIX_OBJMODEL = @AIX_OBJMODEL@
+
+# For OS/2 build
+MOZ_OS2_TOOLS = @MOZ_OS2_TOOLS@
+MOZ_OS2_HIGH_MEMORY = @MOZ_OS2_HIGH_MEMORY@
+
+MOZ_PSM=@MOZ_PSM@
+
+MOZILLA_OFFICIAL = @MOZILLA_OFFICIAL@
+
+# Win32 options
+MOZ_BROWSE_INFO	= @MOZ_BROWSE_INFO@
+MOZ_TOOLS_DIR	= @MOZ_TOOLS_DIR@
+MSMANIFEST_TOOL = @MSMANIFEST_TOOL@
+WIN32_REDIST_DIR = @WIN32_REDIST_DIR@
+MOZ_GLUE_LDFLAGS = @MOZ_GLUE_LDFLAGS@
+MOZ_GLUE_PROGRAM_LDFLAGS = @MOZ_GLUE_PROGRAM_LDFLAGS@
+WIN32_CRT_LIBS = @WIN32_CRT_LIBS@
+
+# This is used to pass jemalloc flags to NSS
+DLLFLAGS = @DLLFLAGS@
+
+# Codesighs tools option, enables win32 mapfiles.
+MOZ_MAPINFO	= @MOZ_MAPINFO@
+
+MOZ_PHOENIX	= @MOZ_PHOENIX@
+MOZ_XULRUNNER	= @MOZ_XULRUNNER@
+
+MOZ_DISTRIBUTION_ID = @MOZ_DISTRIBUTION_ID@
+
+MOZ_PLATFORM_MAEMO = @MOZ_PLATFORM_MAEMO@
+MOZ_PLATFORM_MAEMO_CFLAGS	= @MOZ_PLATFORM_MAEMO_CFLAGS@
+MOZ_PLATFORM_MAEMO_LIBS 	= @MOZ_PLATFORM_MAEMO_LIBS@
+MOZ_MAEMO_LIBLOCATION 	= @MOZ_MAEMO_LIBLOCATION@
+
+MOZ_ENABLE_LIBCONIC = @MOZ_ENABLE_LIBCONIC@
+LIBCONIC_CFLAGS     = @LIBCONIC_CFLAGS@
+LIBCONIC_LIBS       = @LIBCONIC_LIBS@
+
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_LIBS   = @GSTREAMER_LIBS@
+
+MACOS_SDK_DIR	= @MACOS_SDK_DIR@
+NEXT_ROOT	= @NEXT_ROOT@
+GCC_VERSION	= @GCC_VERSION@
+UNIVERSAL_BINARY= @UNIVERSAL_BINARY@
+MOZ_CAN_RUN_PROGRAMS = @MOZ_CAN_RUN_PROGRAMS@
+HAVE_DTRACE= @HAVE_DTRACE@
+
+VISIBILITY_FLAGS = @VISIBILITY_FLAGS@
+WRAP_SYSTEM_INCLUDES = @WRAP_SYSTEM_INCLUDES@
+
+HAVE_ARM_SIMD = @HAVE_ARM_SIMD@
+HAVE_ARM_NEON = @HAVE_ARM_NEON@
+HAVE_GCC_ALIGN_ARG_POINTER = @HAVE_GCC_ALIGN_ARG_POINTER@
+HAVE_COMPILER_FLAG_MSSSE3 = @HAVE_COMPILER_FLAG_MSSSE3@
+
+MOZ_THEME_FASTSTRIPE = @MOZ_THEME_FASTSTRIPE@
+
+MOZ_SERVICES_AITC = @MOZ_SERVICES_AITC@
+MOZ_SERVICES_NOTIFICATIONS = @MOZ_SERVICES_NOTIFICATIONS@
+MOZ_SERVICES_SYNC = @MOZ_SERVICES_SYNC@
+
+MOZ_WEBAPP_RUNTIME = @MOZ_WEBAPP_RUNTIME@
+
+MOZ_OFFICIAL_BRANDING = @MOZ_OFFICIAL_BRANDING@
+
+HAVE_CLOCK_MONOTONIC = @HAVE_CLOCK_MONOTONIC@
+REALTIME_LIBS = @REALTIME_LIBS@
+
+MOZ_APP_COMPONENT_LIBS = @MOZ_APP_COMPONENT_LIBS@
+MOZ_APP_EXTRA_LIBS = @MOZ_APP_EXTRA_LIBS@
+
+ANDROID_NDK       = @ANDROID_NDK@
+ANDROID_TOOLCHAIN = @ANDROID_TOOLCHAIN@
+ANDROID_PLATFORM  = @ANDROID_PLATFORM@
+ANDROID_SDK       = @ANDROID_SDK@
+ANDROID_PLATFORM_TOOLS = @ANDROID_PLATFORM_TOOLS@
+ANDROID_VERSION   = @ANDROID_VERSION@
+ANDROID_SOURCE    = @ANDROID_SOURCE@
+STLPORT_SOURCES   = @STLPORT_SOURCES@
+
+ANDROID_PACKAGE_NAME = @ANDROID_PACKAGE_NAME@
+
+JS_SHARED_LIBRARY = @JS_SHARED_LIBRARY@
+
+MOZ_INSTRUMENT_EVENT_LOOP = @MOZ_INSTRUMENT_EVENT_LOOP@
+
+MOZ_SYSTEM_PLY = @MOZ_SYSTEM_PLY@
+
+MOZ_PACKAGE_JSSHELL = @MOZ_PACKAGE_JSSHELL@
+
+MOZ_LINKER_EXTRACT = @MOZ_LINKER_EXTRACT@
+
+MOZ_PER_WINDOW_PRIVATE_BROWSING = @MOZ_PER_WINDOW_PRIVATE_BROWSING@
+
 include $(topsrcdir)/config/baseconfig.mk
--- a/js/src/build/ConfigStatus.py
+++ b/js/src/build/ConfigStatus.py
@@ -94,58 +94,53 @@ def shell_escape(s):
     '''
     return re.sub('''([ \t`#$^&*(){}\\|;'"<>?\[\]])''', r'\\\1', str(s)).replace('$', '$$')
 
 class ConfigEnvironment(object):
     '''A ConfigEnvironment is defined by a source directory and a build
     directory. It preprocesses files from the source directory and stores
     the result in the object directory.
 
-    There are two types of files: config files and config headers,
-    each treated through a different member function.
+     There are two types of files: config files and config headers,
+     each treated through a different member function.
 
-    Creating a ConfigEnvironment requires a few arguments:
-      - topsrcdir and topobjdir are, respectively, the top source and
-        the top object directory.
-      - defines is a list of (name, value) tuples. In autoconf, these are
-        set with AC_DEFINE and AC_DEFINE_UNQUOTED
-      - non_global_defines are a list of names appearing in defines above
-        that are not meant to be exported in ACDEFINES and ALLDEFINES (see
-        below)
-      - substs is a list of (name, value) tuples. In autoconf, these are
-        set with AC_SUBST.
+     Creating a ConfigEnvironment requires a few arguments:
+       - topsrcdir and topobjdir are, respectively, the top source and
+         the top object directory.
+       - defines is a list of (name, value) tuples. In autoconf, these are
+         set with AC_DEFINE and AC_DEFINE_UNQUOTED
+       - non_global_defines are a list of names appearing in defines above
+         that are not meant to be exported in ACDEFINES and ALLDEFINES (see
+         below)
+       - substs is a list of (name, value) tuples. In autoconf, these are
+         set with AC_SUBST.
 
-    ConfigEnvironment automatically defines two additional substs variables
-    from all the defines not appearing in non_global_defines:
-      - ACDEFINES contains the defines in the form -DNAME=VALUE, for use on
-        preprocessor command lines. The order in which defines were given
-        when creating the ConfigEnvironment is preserved.
-      - ALLDEFINES contains the defines in the form #define NAME VALUE, in
-        sorted order, for use in config files, for an automatic listing of
-        defines.
-    and another additional subst variable from all the other substs:
-      - ALLSUBSTS contains the substs in the form NAME = VALUE, in sorted
-        order, for use in autoconf.mk. It includes ACDEFINES, but doesn't
-        include ALLDEFINES.
+     ConfigEnvironment automatically defines two additional substs variables
+     from all the defines not appearing in non_global_defines:
+       - ACDEFINES contains the defines in the form -DNAME=VALUE, for use on
+         preprocessor command lines. The order in which defines were given
+         when creating the ConfigEnvironment is preserved.
+       - ALLDEFINES contains the defines in the form #define NAME VALUE, in
+         sorted order, for use in config files, for an automatic listing of
+         defines.
 
     ConfigEnvironment expects a "top_srcdir" subst to be set with the top
     source directory, in msys format on windows. It is used to derive a
     "srcdir" subst when treating config files. It can either be an absolute
     path or a path relative to the topobjdir.
     '''
 
     def __init__(self, topobjdir = '.', topsrcdir = '.',
                  defines = [], non_global_defines = [], substs = []):
         self.defines = dict(defines)
         self.substs = dict(substs)
         self.topsrcdir = topsrcdir
         self.topobjdir = topobjdir
         global_defines = [name for name, value in defines if not name in non_global_defines]
         self.substs['ACDEFINES'] = ' '.join(["-D%s=%s" % (name, shell_escape(self.defines[name])) for name in global_defines])
-        self.substs['ALLSUBSTS'] = '\n'.join(sorted(["%s = %s" % (name, self.substs[name]) for name in self.substs]))
         self.substs['ALLDEFINES'] = '\n'.join(sorted(["#define %s %s" % (name, self.defines[name]) for name in global_defines]))
 
     def get_relative_srcdir(self, file):
         '''Returns the relative source directory for the given file, always
         using / as a path separator.
         '''
         assert(isinstance(file, basestring))
         dir = posixpath.dirname(relpath(file, self.topobjdir).replace(os.sep, '/'))
--- a/js/src/config/autoconf.mk.in
+++ b/js/src/config/autoconf.mk.in
@@ -1,2 +1,285 @@
-@ALLSUBSTS@
+#
+# 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/.
+
+# A netscape style .mk file for autoconf builds
+
+target          = @target@
+ac_configure_args = @ac_configure_args@
+MOZILLA_VERSION = @MOZILLA_VERSION@
+
+MOZ_APP_NAME	= @MOZ_APP_NAME@
+MOZ_APP_DISPLAYNAME = @MOZ_APP_DISPLAYNAME@
+MOZ_APP_VERSION = @MOZ_APP_VERSION@
+
+MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@
+
+prefix		= @prefix@
+exec_prefix	= @exec_prefix@
+bindir		= @bindir@
+includedir	= @includedir@
+libdir		= @libdir@
+datadir		= @datadir@
+mandir		= @mandir@
+
+TOP_DIST	= @TOP_DIST@
+
+MOZ_JS_LIBS		   = @MOZ_JS_LIBS@
+
+MOZ_SYNC_BUILD_FILES = @MOZ_SYNC_BUILD_FILES@
+
+MOZ_DEBUG	= @MOZ_DEBUG@
+MOZ_DEBUG_SYMBOLS = @MOZ_DEBUG_SYMBOLS@
+MOZ_DEBUG_ENABLE_DEFS		= @MOZ_DEBUG_ENABLE_DEFS@
+MOZ_DEBUG_DISABLE_DEFS	= @MOZ_DEBUG_DISABLE_DEFS@
+MOZ_DEBUG_FLAGS	= @MOZ_DEBUG_FLAGS@
+MOZ_DEBUG_LDFLAGS=@MOZ_DEBUG_LDFLAGS@
+MOZ_MEMORY      = @MOZ_MEMORY@
+MOZ_PROFILING   = @MOZ_PROFILING@
+MOZ_JPROF       = @MOZ_JPROF@
+MOZ_SHARK       = @MOZ_SHARK@
+MOZ_VALGRIND    = @MOZ_VALGRIND@
+MOZ_CALLGRIND   = @MOZ_CALLGRIND@
+MOZ_VTUNE       = @MOZ_VTUNE@
+MOZ_ETW       = @MOZ_ETW@
+JS_HAS_CTYPES = @JS_HAS_CTYPES@
+DEHYDRA_PATH    = @DEHYDRA_PATH@
+
+MOZ_USING_CCACHE = @MOZ_USING_CCACHE@
+CLANG_CXX = @CLANG_CXX@
+NS_TRACE_MALLOC = @NS_TRACE_MALLOC@
+INCREMENTAL_LINKER = @INCREMENTAL_LINKER@
+MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
+ENABLE_TESTS	= @ENABLE_TESTS@
+
+# The MOZ_UI_LOCALE var is used to build a particular locale. Do *not*
+# use the var to change any binary files. Do *not* use this var unless you
+# write rules for the "clean-locale" and "locale" targets.
+MOZ_UI_LOCALE = @MOZ_UI_LOCALE@
+
+MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS = @MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS@
+MOZ_COMPONENT_NSPR_LIBS=@MOZ_COMPONENT_NSPR_LIBS@
+
+MOZ_FIX_LINK_PATHS=@MOZ_FIX_LINK_PATHS@
+
+ENABLE_STRIP	= @ENABLE_STRIP@
+PKG_SKIP_STRIP	= @PKG_SKIP_STRIP@
+
+MOZ_POST_DSO_LIB_COMMAND = @MOZ_POST_DSO_LIB_COMMAND@
+MOZ_POST_PROGRAM_COMMAND = @MOZ_POST_PROGRAM_COMMAND@
+
+MOZ_BUILD_ROOT             = @MOZ_BUILD_ROOT@
+
+MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
+
+CROSS_COMPILE   = @CROSS_COMPILE@
+
+OS_CPPFLAGS	= @OS_CPPFLAGS@
+OS_CFLAGS	= @OS_CFLAGS@
+OS_CXXFLAGS	= @OS_CXXFLAGS@
+OS_LDFLAGS	= @OS_LDFLAGS@
+
+OS_COMPILE_CFLAGS = @OS_COMPILE_CFLAGS@
+OS_COMPILE_CXXFLAGS = @OS_COMPILE_CXXFLAGS@
+
+OS_LIBS		= @OS_LIBS@
+ACDEFINES	= @ACDEFINES@
+
+WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@
+FAIL_ON_WARNINGS = @FAIL_ON_WARNINGS@
+
+MOZ_OPTIMIZE	= @MOZ_OPTIMIZE@
+MOZ_FRAMEPTR_FLAGS = @MOZ_FRAMEPTR_FLAGS@
+MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@
+MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@
+MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@
+MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@
+
+PROFILE_GEN_CFLAGS = @PROFILE_GEN_CFLAGS@
+PROFILE_GEN_LDFLAGS = @PROFILE_GEN_LDFLAGS@
+PROFILE_USE_CFLAGS = @PROFILE_USE_CFLAGS@
+PROFILE_USE_LDFLAGS = @PROFILE_USE_LDFLAGS@
+
+WIN_TOP_SRC	= @WIN_TOP_SRC@
+AR		= @AR@
+AR_FLAGS	= @AR_FLAGS@
+AR_EXTRACT	= @AR_EXTRACT@
+AR_LIST		= @AR_LIST@
+AR_DELETE	= @AR_DELETE@
+AS		= @AS@
+ASFLAGS		= @ASFLAGS@
+AS_DASH_C_FLAG	= @AS_DASH_C_FLAG@
+LD		= @LD@
+RC		= @RC@
+RCFLAGS		= @RCFLAGS@
+MC		= @MC@
+WINDRES		= @WINDRES@
+IMPLIB		= @IMPLIB@
+FILTER		= @FILTER@
+BIN_FLAGS	= @BIN_FLAGS@
+_MSC_VER	= @_MSC_VER@
+
+DLL_PREFIX	= @DLL_PREFIX@
+LIB_PREFIX	= @LIB_PREFIX@
+OBJ_SUFFIX	= @OBJ_SUFFIX@
+LIB_SUFFIX	= @LIB_SUFFIX@
+DLL_SUFFIX	= @DLL_SUFFIX@
+BIN_SUFFIX	= @BIN_SUFFIX@
+ASM_SUFFIX	= @ASM_SUFFIX@
+IMPORT_LIB_SUFFIX = @IMPORT_LIB_SUFFIX@
+LIBS_DESC_SUFFIX = @LIBS_DESC_SUFFIX@
+USE_N32		= @USE_N32@
+HAVE_64BIT_OS	= @HAVE_64BIT_OS@
+
+CC		    = @CC@
+CXX		    = @CXX@
+CPP       = @CPP@
+
+CC_VERSION	= @CC_VERSION@
+CXX_VERSION	= @CXX_VERSION@
+
+GNU_AS		= @GNU_AS@
+GNU_LD		= @GNU_LD@
+GNU_CC		= @GNU_CC@
+GNU_CXX		= @GNU_CXX@
+INTEL_CC	= @INTEL_CC@
+INTEL_CXX	= @INTEL_CXX@
+
+HOST_CC		= @HOST_CC@
+HOST_CXX	= @HOST_CXX@
+HOST_CFLAGS	= @HOST_CFLAGS@
+HOST_CXXFLAGS	= @HOST_CXXFLAGS@
+HOST_LDFLAGS	= @HOST_LDFLAGS@
+HOST_OPTIMIZE_FLAGS = @HOST_OPTIMIZE_FLAGS@
+HOST_NSPR_MDCPUCFG = @HOST_NSPR_MDCPUCFG@
+HOST_AR		= @HOST_AR@
+HOST_AR_FLAGS	= @HOST_AR_FLAGS@
+HOST_LD		= @HOST_LD@
+HOST_RANLIB	= @HOST_RANLIB@
+HOST_BIN_SUFFIX	= @HOST_BIN_SUFFIX@
+
+HOST_OS_ARCH	= @HOST_OS_ARCH@
+host_cpu	= @host_cpu@
+host_vendor	= @host_vendor@
+host_os		= @host_os@
+
+TARGET_NSPR_MDCPUCFG = @TARGET_NSPR_MDCPUCFG@
+TARGET_CPU	= @TARGET_CPU@
+TARGET_VENDOR	= @TARGET_VENDOR@
+TARGET_OS	= @TARGET_OS@
+TARGET_MD_ARCH	= @TARGET_MD_ARCH@
+TARGET_XPCOM_ABI = @TARGET_XPCOM_ABI@
+
+AUTOCONF	= @AUTOCONF@
+PERL		= @PERL@
+PYTHON		= @PYTHON@
+RANLIB		= @RANLIB@
+XARGS		= @XARGS@
+STRIP		= @STRIP@
+DOXYGEN		= @DOXYGEN@
+PBBUILD_BIN	= @PBBUILD_BIN@
+SDP		= @SDP@
+NSINSTALL_BIN	= @NSINSTALL_BIN@
+
+NSPR_CONFIG	= @NSPR_CONFIG@
+NSPR_CFLAGS	= @NSPR_CFLAGS@
+NSPR_LIBS	= @NSPR_LIBS@
+
+MOZ_NATIVE_ZLIB = @MOZ_NATIVE_ZLIB@
+MOZ_ZLIB_LIBS   = @MOZ_ZLIB_LIBS@
+MOZ_ZLIB_CFLAGS = @MOZ_ZLIB_CFLAGS@
+
+MOZ_NATIVE_FFI	= @MOZ_NATIVE_FFI@
+MOZ_FFI_LIBS	= @MOZ_FFI_LIBS@
+MOZ_FFI_CFLAGS	= @MOZ_FFI_CFLAGS@
+
+USE_DEPENDENT_LIBS = @USE_DEPENDENT_LIBS@
+
+JS_NATIVE_EDITLINE = @JS_NATIVE_EDITLINE@
+JS_DISABLE_SHELL   = @JS_DISABLE_SHELL@
+EDITLINE_LIBS      = @EDITLINE_LIBS@
+
+# MKSHLIB_FORCE_ALL is used to force the linker to include all object
+# files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker
+# to normal behavior. Makefile's that create shared libraries out of
+# archives use these flags to force in all of the .o files in the
+# archives into the shared library.
+WRAP_LDFLAGS            = @WRAP_LDFLAGS@
+DSO_CFLAGS              = @DSO_CFLAGS@
+DSO_PIC_CFLAGS          = @DSO_PIC_CFLAGS@
+MKSHLIB                 = @MKSHLIB@
+MKCSHLIB                = @MKCSHLIB@
+MKSHLIB_FORCE_ALL       = @MKSHLIB_FORCE_ALL@
+MKSHLIB_UNFORCE_ALL     = @MKSHLIB_UNFORCE_ALL@
+DSO_LDOPTS              = @DSO_LDOPTS@
+DLL_SUFFIX              = @DLL_SUFFIX@
+
+NO_LD_ARCHIVE_FLAGS     = @NO_LD_ARCHIVE_FLAGS@
+
+MOZ_NATIVE_MAKEDEPEND	= @MOZ_NATIVE_MAKEDEPEND@
+
+CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
+
+MOZ_AUTO_DEPS	= @MOZ_AUTO_DEPS@
+COMPILER_DEPEND = @COMPILER_DEPEND@
+MDDEPDIR        := @MDDEPDIR@
+CC_WRAPPER = @CC_WRAPPER@
+CXX_WRAPPER = @CXX_WRAPPER@
+
+MOZ_DEMANGLE_SYMBOLS = @MOZ_DEMANGLE_SYMBOLS@
+
+OS_TARGET=@OS_TARGET@
+OS_ARCH=@OS_ARCH@
+OS_RELEASE=@OS_RELEASE@
+OS_TEST=@OS_TEST@
+CPU_ARCH=@CPU_ARCH@
+INTEL_ARCHITECTURE=@INTEL_ARCHITECTURE@
+
+# For Solaris build
+SOLARIS_SUNPRO_CC = @SOLARIS_SUNPRO_CC@
+SOLARIS_SUNPRO_CXX = @SOLARIS_SUNPRO_CXX@
+
+# For AIX build
+AIX_OBJMODEL = @AIX_OBJMODEL@
+
+# For OS/2 build
+MOZ_OS2_TOOLS = @MOZ_OS2_TOOLS@
+MOZ_OS2_HIGH_MEMORY = @MOZ_OS2_HIGH_MEMORY@
+
+MOZILLA_OFFICIAL = @MOZILLA_OFFICIAL@
+
+# Win32 options
+MOZ_BROWSE_INFO	= @MOZ_BROWSE_INFO@
+MOZ_TOOLS_DIR	= @MOZ_TOOLS_DIR@
+MSMANIFEST_TOOL = @MSMANIFEST_TOOL@
+MOZ_GLUE_LDFLAGS = @MOZ_GLUE_LDFLAGS@
+MOZ_GLUE_PROGRAM_LDFLAGS = @MOZ_GLUE_PROGRAM_LDFLAGS@
+
+# Codesighs tools option, enables win32 mapfiles.
+MOZ_MAPINFO	= @MOZ_MAPINFO@
+
+QEMU_CANT_RUN_JS_SHELL = @QEMU_CANT_RUN_JS_SHELL@
+
+MACOS_SDK_DIR	= @MACOS_SDK_DIR@
+NEXT_ROOT	= @NEXT_ROOT@
+GCC_VERSION	= @GCC_VERSION@
+UNIVERSAL_BINARY= @UNIVERSAL_BINARY@
+MOZ_CAN_RUN_PROGRAMS = @MOZ_CAN_RUN_PROGRAMS@
+HAVE_DTRACE= @HAVE_DTRACE@
+
+VISIBILITY_FLAGS = @VISIBILITY_FLAGS@
+WRAP_SYSTEM_INCLUDES = @WRAP_SYSTEM_INCLUDES@
+
+ENABLE_METHODJIT = @ENABLE_METHODJIT@
+ENABLE_METHODJIT_SPEW = @ENABLE_METHODJIT_SPEW@
+HAVE_ARM_SIMD= @HAVE_ARM_SIMD@
+
+JS_SHARED_LIBRARY = @JS_SHARED_LIBRARY@
+HAVE_LINUX_PERF_EVENT_H = @HAVE_LINUX_PERF_EVENT_H@
+
+MOZ_METRO	= @MOZ_METRO@
+
+MOZ_ASAN = @MOZ_ASAN@
+
 include $(topsrcdir)/config/baseconfig.mk