With this patch the v2 build system will create a directory hierarchy
authorStefan Reinauer <stepan@coresystems.de>
Sat, 28 Feb 2009 12:50:32 +0000 (12:50 +0000)
committerStefan Reinauer <stepan@openbios.org>
Sat, 28 Feb 2009 12:50:32 +0000 (12:50 +0000)
similar to what v3 does. This is required to have two source files with
the same name but in different directories. (As in, two different SuperIOs on
board, with a superio.c each)

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3961 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/config/Config.lb
src/cpu/x86/smm/Config.lb
util/newconfig/config.g

index 85f1632b938132e8705837eb41e9585ce002a012..d341b1fbccae6c0bade232ac2c0b304bd9c621da 100644 (file)
@@ -45,8 +45,8 @@ end
 
 
 makerule coreboot_ram.o
-       depends "$(DRIVER) coreboot.a $(LIBGCC_FILE_NAME)" 
-       action  "$(CC) $(DISTRO_LFLAGS) -nostdlib -r -o $@ c_start.o $(DRIVER) coreboot.a $(LIBGCC_FILE_NAME)"
+       depends "$(TOP)/src/arch/$(ARCH)/lib/c_start.o $(DRIVER) coreboot.a $(LIBGCC_FILE_NAME)" 
+       action  "$(CC) $(DISTRO_LFLAGS) -nostdlib -r -o $@ $^"
 end
 
 makerule coreboot_ram
index 8edbabdf3d3823f2c34fbba6e09f9da2645760ac..652cb2de7fda9d52f124720dea75d00e488bdbbe 100644 (file)
@@ -27,8 +27,8 @@ if HAVE_SMI_HANDLER
        smmobject smihandler.o
 
        makerule smm.o
-               depends "$(SMM-OBJECTS) printk.o vtxprintf.o $(LIBGCC_FILE_NAME)" 
-               action  "$(CC) $(DISTRO_LFLAGS) -nostdlib -r -o $@ $(SMM-OBJECTS) printk.o vtxprintf.o $(LIBGCC_FILE_NAME)"
+               depends "$(SMM-OBJECTS) $(TOP)/src/console/printk.o $(TOP)/src/console/vtxprintf.o $(LIBGCC_FILE_NAME)" 
+               action  "$(CC) $(DISTRO_LFLAGS) -nostdlib -r -o $@ $^"
        end
 
        makerule smm
index 0e741836e72ecd7be8404ef6ab85a6fcd31f23cd..75d46793f1efb8a91696e0c845a9be3cfc064b0d 100644 (file)
@@ -329,9 +329,14 @@ class romimage:
                type = object_name[-1:]
                if (object_name[0] == '.'):
                        source = base + suffix
+                       object = base + '.o'
                else:
-                       source = os.path.join(dirstack.tos(), base + suffix)
-               object = base + '.o'
+                       rel_base = re.sub(treetop, "", os.path.join(dirstack.tos(), base))
+                       source = "$(TOP)/" + rel_base + suffix
+                       if (rel_base[0] == '/'):
+                               rel_base = re.sub("^/", "", rel_base)
+                       object = rel_base + '.o'
+
                debug.info(debug.object, "add object %s source %s" % (object_name, source))
                l = getdict(dict, base)
                if (l):
@@ -2378,6 +2383,30 @@ if __name__=='__main__':
                        print "Creating directory %s" % img_dir
                        os.makedirs(img_dir)
 
+               for objrule, obj in image.getobjectrules().items():
+                       sub_dir = img_dir + '/' + os.path.dirname(obj[0])
+                       if not os.path.isdir(sub_dir):
+                               print "Creating sub directory %s" % sub_dir
+                               os.makedirs(sub_dir)
+
+               for driverrule, driver in image.getdriverrules().items():
+                       sub_dir = img_dir + '/' + os.path.dirname(driver[0])
+                       if not os.path.isdir(sub_dir):
+                               print "Creating sub directory %s" % sub_dir
+                               os.makedirs(sub_dir)
+
+               for srule, smm in image.getsmmobjectrules().items():
+                       sub_dir = img_dir + '/' + os.path.dirname(smm[0])
+                       if not os.path.isdir(sub_dir):
+                               print "Creating sub directory %s" % sub_dir
+                               os.makedirs(sub_dir)
+
+               for irule, init in image.getinitobjectrules().items():
+                       sub_dir = img_dir + '/' + os.path.dirname(init[0])
+                       if not os.path.isdir(sub_dir):
+                               print "Creating sub directory %s" % sub_dir
+                               os.makedirs(sub_dir)
+
                if (debug.level(debug.dump)):
                        for i in image.getinitincludes():
                                debug.info(debug.dump, "crt0include file %s" % i)