[coreboot] [v2] r4131 - trunk/coreboot-v2/util/newconfig

svn at coreboot.org svn at coreboot.org
Fri Apr 17 19:58:34 CEST 2009


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 at gmail.com>
Acked-by: Ronald G. Minnich <rminnich at 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 }}





More information about the coreboot mailing list