summaryrefslogtreecommitdiffstats
path: root/source-builder/sb/config.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2014-06-17 10:58:30 +1200
committerChris Johns <chrisj@rtems.org>2014-06-17 10:58:30 +1200
commit62cb64747ff09bf7f0dbda145b521118e028a239 (patch)
tree98b1ef464ea4d057b31017c80c1996545a4ababd /source-builder/sb/config.py
parentsb: Fix pkg-config bug with src tracking. (diff)
downloadrtems-source-builder-62cb64747ff09bf7f0dbda145b521118e028a239.tar.bz2
sb: Trace relative paths for nesting configs.
Diffstat (limited to 'source-builder/sb/config.py')
-rw-r--r--source-builder/sb/config.py40
1 files changed, 24 insertions, 16 deletions
diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py
index c139ea2..5eb2d2a 100644
--- a/source-builder/sb/config.py
+++ b/source-builder/sb/config.py
@@ -285,8 +285,16 @@ class file:
s += str(self._packages[_package])
return s
+ def _relative_path(self, p):
+ sbdir = None
+ if '_sbdir' in self.macros:
+ sbdir = path.dirname(self.expand('%{_sbdir}'))
+ if p.startswith(sbdir):
+ p = p[len(sbdir) + 1:]
+ return p
+
def _name_line_msg(self, msg):
- return '%s:%d: %s' % (path.basename(self.init_name), self.lc, msg)
+ return '%s:%d: %s' % (path.basename(self.name), self.lc, msg)
def _output(self, text):
if not self.opts.quiet():
@@ -648,7 +656,7 @@ class file:
else:
if ls[1] == 'select':
self.macros.lock_read_map()
- log.trace('config: %s: _disable_select: %s' % (self.init_name, ls[1]))
+ log.trace('config: %s: _disable_select: %s' % (self.name, ls[1]))
else:
log.warning('invalid disable statement: %s' % (ls[1]))
@@ -658,7 +666,7 @@ class file:
else:
r = self.macros.set_read_map(ls[1])
log.trace('config: %s: _select: %s %s %r' % \
- (self.init_name, r, ls[1], self.macros.maps()))
+ (self.name, r, ls[1], self.macros.maps()))
def _sources(self, ls):
return sources.process(ls[0][1:], ls[1:], self.macros, self._error)
@@ -711,7 +719,7 @@ class file:
self._error(label + ' without %endif')
raise error.general('terminating build')
if r[1] == '%endif':
- log.trace('config: %s: _ifs: %s %s' % (self.init_name, r[1], this_isvalid))
+ log.trace('config: %s: _ifs: %s %s' % (self.name, r[1], this_isvalid))
return data
if r[1] == '%else':
in_iftrue = False
@@ -810,7 +818,7 @@ class file:
self._error('malformed if: ' + reduce(add, ls, ''))
if invert:
istrue = not istrue
- log.trace('config: %s: _if: %s %s' % (self.init_name, ifls, str(istrue)))
+ log.trace('config: %s: _if: %s %s' % (self.name, ifls, str(istrue)))
return self._ifs(config, ls, '%if', istrue, isvalid, dir, info)
def _ifos(self, config, ls, isvalid, dir, info):
@@ -857,7 +865,7 @@ class file:
if len(l) == 0:
continue
log.trace('config: %s: %03d: %s %s' % \
- (self.init_name, self.lc, str(isvalid), l))
+ (self.name, self.lc, str(isvalid), l))
lo = l
if isvalid:
l = self._expand(l)
@@ -902,12 +910,12 @@ class file:
elif ls[0] == '%if':
d = self._if(config, ls, isvalid, dir, info)
if len(d):
- log.trace('config: %s: %%if: %s' % (self.init_name, d))
+ log.trace('config: %s: %%if: %s' % (self.name, d))
return ('data', d)
elif ls[0] == '%ifn':
d = self._if(config, ls, isvalid, dir, info, True)
if len(d):
- log.trace('config: %s: %%ifn: %s' % (self.init_name, d))
+ log.trace('config: %s: %%ifn: %s' % (self.name, d))
return ('data', d)
elif ls[0] == '%ifos':
d = self._ifos(config, ls, isvalid, dir, info)
@@ -994,7 +1002,7 @@ class file:
if not directive:
l = self._expand(l)
ls = self.tags.split(l, 1)
- log.trace('config: %s: _tag: %s %s' % (self.init_name, l, ls))
+ log.trace('config: %s: _tag: %s %s' % (self.name, l, ls))
if len(ls) > 1:
info = ls[0].lower()
if info[-1] == ':':
@@ -1007,7 +1015,7 @@ class file:
else:
log.warning("invalid format: '%s'" % (info_data[:-1]))
else:
- log.trace('config: %s: _data: %s %s' % (self.init_name, l, new_data))
+ log.trace('config: %s: _data: %s %s' % (self.name, l, new_data))
new_data.append(l)
return (directive, info, data + new_data)
@@ -1056,9 +1064,6 @@ class file:
save_name = self.name
save_lc = self.lc
- self.name = name
- self.lc = 0
-
#
# Locate the config file. Expand any macros then add the
# extension. Check if the file exists, therefore directly
@@ -1097,14 +1102,17 @@ class file:
raise error.general('no config file found: %s' % (cfgname))
try:
- log.trace('config: %s: _open: %s' % (self.init_name, path.host(configname)))
+ log.trace('config: %s: _open: %s' % (self.name, path.host(configname)))
config = open(path.host(configname), 'r')
except IOError, err:
raise error.general('error opening config file: %s' % (path.host(configname)))
- self.configpath += [configname]
+ self.configpath += [configname]
self._includes += [configname]
+ self.name = self._relative_path(configname)
+ self.lc = 0
+
try:
dir = None
info = None
@@ -1187,7 +1195,7 @@ class file:
return self._includes
def file_name(self):
- return self.init_name
+ return self.name
def run():
import sys