summaryrefslogtreecommitdiffstats
path: root/source-builder/sb/config.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2013-04-27 20:26:49 +1000
committerChris Johns <chrisj@rtems.org>2013-04-27 20:26:49 +1000
commit517f03669cd4e352faf32e5ffd17b297f8409678 (patch)
tree55fc0b428f305ed714256a784d494ccbdd8b0ccf /source-builder/sb/config.py
parentMake _sbdir absolute. Add locks to read maps. (diff)
downloadrtems-source-builder-517f03669cd4e352faf32e5ffd17b297f8409678.tar.bz2
Add '%disable select' to turn off the macros maps.
Diffstat (limited to 'source-builder/sb/config.py')
-rw-r--r--source-builder/sb/config.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py
index 7cd1daf..b59e9d5 100644
--- a/source-builder/sb/config.py
+++ b/source-builder/sb/config.py
@@ -219,7 +219,8 @@ class file:
re.compile('%configure'),
re.compile('%source[0-9]*'),
re.compile('%patch[0-9]*'),
- re.compile('%select') ]
+ re.compile('%select'),
+ re.compile('%disable') ]
def __init__(self, name, opts, macros = None):
self.opts = opts
@@ -469,6 +470,16 @@ class file:
self._error("macro '%s' not found" % (mn))
return self._shell(s)
+ def _disable(self, config, ls):
+ if len(ls) != 2:
+ log.warning('invalid disable statement')
+ else:
+ if ls[1] == 'select':
+ self.macros.lock_read_map()
+ log.trace('config: %s: _disable_select: %s %s' % (self.init_name, r, ls[1]))
+ else:
+ log.warning('invalid disable statement: %s' % (ls[1]))
+
def _select(self, config, ls):
if len(ls) != 2:
log.warning('invalid select statement')
@@ -676,6 +687,9 @@ class file:
else:
name = self.name + '-' + ls[1]
return ('package', name)
+ elif ls[0] == '%disable':
+ if isvalid:
+ self._disable(config, ls)
elif ls[0] == '%select':
if isvalid:
self._select(config, ls)