Bug 861453 - Restore empty substs after bug 857557, but put them in a separate file, unlisted as a dependency for everything. r=gps

This commit is contained in:
Mike Hommey 2013-04-16 08:23:18 +02:00
parent d755cb0d1a
commit b926643870
9 changed files with 18 additions and 5 deletions

View File

@ -16,6 +16,7 @@ OBJDIR = $(OBJDIR_ARCH_1)
endif
topsrcdir = $(TOPSRCDIR)
DEPTH = $(OBJDIR)
include $(OBJDIR)/config/autoconf.mk
core_abspath = $(if $(filter /%,$(1)),$(1),$(CURDIR)/$(1))

View File

@ -1,2 +1,3 @@
include $(DEPTH)/config/emptyvars.mk
@ALLSUBSTS@
include $(topsrcdir)/config/baseconfig.mk

1
config/emptyvars.mk.in Normal file
View File

@ -0,0 +1 @@
@ALLEMPTYSUBSTS@

View File

@ -6,6 +6,7 @@
CONFIGURE_SUBST_FILES += [
'autoconf.mk',
'emptyvars.mk',
'doxygen.cfg',
'makefiles/test/Makefile',
'tests/makefiles/autodeps/Makefile',

View File

@ -1,2 +1,3 @@
include $(DEPTH)/config/emptyvars.mk
@ALLSUBSTS@
include $(topsrcdir)/config/baseconfig.mk

View File

@ -0,0 +1 @@
@ALLEMPTYSUBSTS@

View File

@ -4384,7 +4384,7 @@ AC_SUBST(ac_configure_args)
dnl Spit out some output
dnl ========================================================
AC_OUTPUT([js-confdefs.h Makefile config/autoconf.mk])
AC_OUTPUT([js-confdefs.h Makefile config/autoconf.mk config/emptyvars.mk])
# Produce the js-config script at configure time; see the comments for
# 'js-config' in Makefile.in.

View File

@ -86,13 +86,15 @@ class ConfigEnvironment(object):
- 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:
and two other additional subst variables 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. Only substs with a VALUE are included, such that
the resulting file doesn't change when new empty substs are added.
This results in less invalidation of build dependencies in the case
of autoconf.mk..
- ALLEMPTYSUBSTS contains the substs with an empty value, in the form
NAME =.
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
@ -113,6 +115,8 @@ class ConfigEnvironment(object):
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 if self.substs[name]]))
self.substs['ALLEMPTYSUBSTS'] = '\n'.join(sorted(['%s =' % name
for name in self.substs if not self.substs[name]]))
self.substs['ALLDEFINES'] = '\n'.join(sorted(['#define %s %s' % (name,
self.defines[name]) for name in global_defines]))

View File

@ -22,14 +22,14 @@ class ConfigEnvironment(ConfigStatus.ConfigEnvironment):
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, ALLDEFINES,
ALLSUBSTS and ALLEMPTYSUBSTS.
'''
env = ConfigEnvironment('.', '.',
defines = [ ('foo', 'bar'), ('baz', 'qux 42'),
('abc', 'def'), ('extra', 'foobar') ],
non_global_defines = ['extra', 'ignore'],
substs = [ ('FOO', 'bar'), ('ABC', 'def'),
substs = [ ('FOO', 'bar'), ('FOOBAR', ''), ('ABC', 'def'),
('bar', 'baz qux'), ('zzz', '"abc def"'),
('qux', '') ])
# non_global_defines should be filtered out in ACDEFINES and
@ -47,6 +47,9 @@ ACDEFINES = -Dfoo=bar -Dbaz=qux\ 42 -Dabc=def
FOO = bar
bar = baz qux
zzz = "abc def"''')
# ALLEMPTYSUBSTS contains all substs with no value.
self.assertEqual(env.substs['ALLEMPTYSUBSTS'], '''FOOBAR =
qux =''')
def test_config_file(self):
'''Test the creation of config files.