Author: myles Date: 2009-04-17 19:58:34 +0200 (Fri, 17 Apr 2009) New Revision: 4131
Modified: trunk/coreboot-v2/util/newconfig/config.g Log: 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 mylesgw@gmail.com Acked-by: Ronald G. Minnich rminnich@gmail.com
Modified: trunk/coreboot-v2/util/newconfig/config.g =================================================================== --- trunk/coreboot-v2/util/newconfig/config.g 2009-04-17 17:11:39 UTC (rev 4130) +++ trunk/coreboot-v2/util/newconfig/config.g 2009-04-17 17:58:34 UTC (rev 4131) @@ -1514,6 +1514,20 @@ 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 @@ 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 @@ HEX_NUM {{ cluster = int(HEX_NUM, 16) }} {{ if (C): partstack.tos().addapic_clusterpath(cluster) }}
+ rule include<<C>>: INCLUDE DIRPATH {{ dofile(DIRPATH) }} + rule cpu<<C>>: CPU {{ if (C): devicepart('cpu') }} HEX_NUM {{ id = int(HEX_NUM, 16) }} {{ if (C): partstack.tos().addcpupath(id) }} @@ -1886,6 +1903,7 @@ | iif<<C>> {{ return iif }} | init<<C>> {{ return init }} | initinclude<<C>> {{ return initinclude }} + | include<<C>> {{ return include }} | initobject<<C>> {{ return initobject }} | ldscript<<C>> {{ return ldscript}} | mainboardinit<<C>> {{ return mainboardinit }}