Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Bug 861453 - Restore empty substs after bug 857557, but put them in a…
… separate file, unlisted as a dependency for everything. r=gps
  • Loading branch information
glandium committed Apr 16, 2013
1 parent df81c25 commit b7e1764
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 5 deletions.
1 change: 1 addition & 0 deletions build/macosx/universal/flight.mk
Expand Up @@ -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))
Expand Down
1 change: 1 addition & 0 deletions config/autoconf.mk.in
@@ -1,2 +1,3 @@
include $(DEPTH)/config/emptyvars.mk
@ALLSUBSTS@
include $(topsrcdir)/config/baseconfig.mk
1 change: 1 addition & 0 deletions config/emptyvars.mk.in
@@ -0,0 +1 @@
@ALLEMPTYSUBSTS@
1 change: 1 addition & 0 deletions config/moz.build
Expand Up @@ -6,6 +6,7 @@

CONFIGURE_SUBST_FILES += [
'autoconf.mk',
'emptyvars.mk',
'doxygen.cfg',
'makefiles/test/Makefile',
'tests/makefiles/autodeps/Makefile',
Expand Down
1 change: 1 addition & 0 deletions js/src/config/autoconf.mk.in
@@ -1,2 +1,3 @@
include $(DEPTH)/config/emptyvars.mk
@ALLSUBSTS@
include $(topsrcdir)/config/baseconfig.mk
1 change: 1 addition & 0 deletions js/src/config/emptyvars.mk.in
@@ -0,0 +1 @@
@ALLEMPTYSUBSTS@
2 changes: 1 addition & 1 deletion js/src/configure.in
Expand Up @@ -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.
Expand Down
6 changes: 5 additions & 1 deletion python/mozbuild/mozbuild/backend/configenvironment.py
Expand Up @@ -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
Expand All @@ -113,6 +115,8 @@ def __init__(self, topsrcdir, topobjdir, defines=[], non_global_defines=[],
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]))

Expand Down
Expand Up @@ -22,14 +22,14 @@ def __init__(self, *args, **kwargs):

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
Expand All @@ -47,6 +47,9 @@ def test_auto_substs(self):
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.
Expand Down

0 comments on commit b7e1764

Please sign in to comment.