summaryrefslogtreecommitdiffstats
path: root/source-builder/sb/setbuilder.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2013-03-07 15:23:29 +1100
committerChris Johns <chrisj@rtems.org>2013-03-07 15:23:29 +1100
commit79f80fd9798a178cf5e93e1b704f2061180c17dd (patch)
treec9e632e035c3def9274e0408765ebc97f8801289 /source-builder/sb/setbuilder.py
parentProvide better control of sharing the defaults. (diff)
downloadrtems-source-builder-79f80fd9798a178cf5e93e1b704f2061180c17dd.tar.bz2
Add a deps option to print the dependent config files.
Diffstat (limited to 'source-builder/sb/setbuilder.py')
-rw-r--r--source-builder/sb/setbuilder.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/source-builder/sb/setbuilder.py b/source-builder/sb/setbuilder.py
index 253362d..02652ef 100644
--- a/source-builder/sb/setbuilder.py
+++ b/source-builder/sb/setbuilder.py
@@ -253,7 +253,7 @@ class buildset:
return self.parse(bset)
- def build(self):
+ def build(self, deps = None):
_trace(self.opts, '_bset:%s: make' % (self.bset))
_notice(self.opts, 'Build Set: %s' % (self.bset))
@@ -282,7 +282,7 @@ class buildset:
_configs = self.configs,
_defaults = _defaults,
opts = _opts)
- bs.build()
+ bs.build(deps)
del bs
elif configs[s].endswith('.cfg'):
b = build.build(configs[s],
@@ -291,11 +291,14 @@ class buildset:
opts = _opts)
if s == 0:
tmproot = self.first_package(b)
- b.make()
- self.report(configs[s], b)
- self.every_package(b, tmproot)
- if s == len(configs) - 1:
- self.last_package(b, tmproot)
+ if deps is None:
+ b.make()
+ self.report(configs[s], b)
+ self.every_package(b, tmproot)
+ if s == len(configs) - 1:
+ self.last_package(b, tmproot)
+ else:
+ deps += b.config.includes()
builds += [b]
else:
raise error.general('invalid config type: %s' % (configs[s]))
@@ -304,7 +307,7 @@ class buildset:
print gerr
else:
raise
- if not self.opts.no_clean() or self.opts.get_arg('--keep-going'):
+ if deps is None and (not self.opts.no_clean() or self.opts.get_arg('--keep-going')):
for b in builds:
_notice(self.opts, 'cleaning: %s' % (b.name()))
b.cleanup()
@@ -339,6 +342,7 @@ def run():
try:
optargs = { '--list-configs': 'List available configurations',
'--list-bsets': 'List available build sets',
+ '--list-deps': 'List the dependent files.',
'--keep-going': 'Do not stop on error.',
'--no-install': 'Do not install the packages to the prefix.',
'--no-report': 'Do not create a package report.',
@@ -351,11 +355,20 @@ def run():
if not check.host_setup(opts, _defaults):
raise error.general('host build environment is not set up correctly')
configs = build.get_configs(opts, _defaults)
+ if opts.get_arg('--list-deps'):
+ deps = []
+ else:
+ deps = None
if not list_bset_cfg_files(opts, configs):
for bset in opts.params():
b = buildset(bset, _configs = configs, _defaults = _defaults, opts = opts)
- b.build()
+ b.build(deps)
del b
+ if deps is not None:
+ c = 0
+ for d in sorted(set(deps)):
+ c += 1
+ print 'dep[%d]: %s' % (c, d)
except error.general, gerr:
print gerr
sys.exit(1)