From d1be3ba633c141ab79bc3316b4b910227cb01eba Mon Sep 17 00:00:00 2001 From: Myles Watson Date: Fri, 17 Apr 2009 17:58:34 +0000 Subject: Add include to config.g Usage: include path path can be relative to the current directory or absolute starting at /src. I tested it with: include /config/absolute.lb include relative.lb in /src/northbridge/amd/amdk8/Config.lb which included /src/northbridge/amd/amdk8/relatvie.lb /src/config/absolute.lb Signed-off-by: Myles Watson Acked-by: Ronald G. Minnich git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4131 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/newconfig/config.g | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/util/newconfig/config.g b/util/newconfig/config.g index 9b229a21d8..69b3b64a80 100644 --- a/util/newconfig/config.g +++ b/util/newconfig/config.g @@ -1514,6 +1514,20 @@ def dodir(path, file): doconfigfile(fullpath, path, file, 'cfgfile') dirstack.pop() +def dofile(path): + """dofile is a simple include for single files""" + # if the first char is '/', it is relative to treetop, + # else relative to curdir + # os.path.join screws up if the name starts with '/', sigh. + if (path[0] == '/'): + fullpath = os.path.join(treetop, 'src') + path = re.sub('^/*', '', path) + else: + fullpath = dirstack.tos() + print "INCLUDE %s" %path + debug.info(debug.statement, "DOFILE: path %s, fullpath %s" % (path, fullpath)) + doconfigfile(fullpath, '', path, 'cfgfile') + def lookup(name): global curimage return getoption(name, curimage) @@ -1638,6 +1652,7 @@ parser Config: token INIT: 'init' token INITOBJECT: 'initobject' token INITINCLUDE: 'initinclude' + token INCLUDE: 'include' token IO: 'io' token IRQ: 'irq' token LDSCRIPT: 'ldscript' @@ -1841,6 +1856,8 @@ parser Config: HEX_NUM {{ cluster = int(HEX_NUM, 16) }} {{ if (C): partstack.tos().addapic_clusterpath(cluster) }} + rule include<>: INCLUDE DIRPATH {{ dofile(DIRPATH) }} + rule cpu<>: CPU {{ if (C): devicepart('cpu') }} HEX_NUM {{ id = int(HEX_NUM, 16) }} {{ if (C): partstack.tos().addcpupath(id) }} @@ -1886,6 +1903,7 @@ parser Config: | iif<> {{ return iif }} | init<> {{ return init }} | initinclude<> {{ return initinclude }} + | include<> {{ return include }} | initobject<> {{ return initobject }} | ldscript<> {{ return ldscript}} | mainboardinit<> {{ return mainboardinit }} -- cgit v1.2.3