Fix the generation of .o from .S
The object rules now have four members, this is getting KLUDGY! [object, source, type (i.e. suffix), base] git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1006 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -265,6 +265,7 @@ class romimage:
|
|||||||
if (suffix == '.o'):
|
if (suffix == '.o'):
|
||||||
suffix = '.c'
|
suffix = '.c'
|
||||||
base = object_name[:-2]
|
base = object_name[:-2]
|
||||||
|
type = object_name[-1:]
|
||||||
if (object_name[0] == '.'):
|
if (object_name[0] == '.'):
|
||||||
source = base + suffix
|
source = base + suffix
|
||||||
else:
|
else:
|
||||||
@@ -274,7 +275,7 @@ class romimage:
|
|||||||
l = getdict(dict, base)
|
l = getdict(dict, base)
|
||||||
if (l):
|
if (l):
|
||||||
print "Warning, object/driver %s previously defined" % base
|
print "Warning, object/driver %s previously defined" % base
|
||||||
setdict(dict, base, [object, source])
|
setdict(dict, base, [object, source, type, base])
|
||||||
|
|
||||||
def addinitobjectrule(self, name):
|
def addinitobjectrule(self, name):
|
||||||
self.addobjectdriver(self.initobjectrules, name)
|
self.addobjectdriver(self.initobjectrules, name)
|
||||||
@@ -1502,8 +1503,21 @@ def writeimagemakefile(image):
|
|||||||
file.write("\n# objectrules:\n")
|
file.write("\n# objectrules:\n")
|
||||||
for objrule, obj in image.getobjectrules().items():
|
for objrule, obj in image.getobjectrules().items():
|
||||||
source = topify(obj[1])
|
source = topify(obj[1])
|
||||||
file.write("%s: %s\n" % (obj[0], source))
|
type = obj[2]
|
||||||
file.write("\t$(CC) -c $(CFLAGS) -o $@ $<\n")
|
if (type == 'S'):
|
||||||
|
# for .S, .o depends on .s
|
||||||
|
file.write("%s: %s.s\n" % (obj[0], obj[3]))
|
||||||
|
file.write("\t@echo $(CC) ... -o $@ $<\n")
|
||||||
|
file.write("\t$(CC) -c $(CPU_OPT) -o $@ $<\n")
|
||||||
|
# and .s depends on .S
|
||||||
|
file.write("%s.s: %s\n" % (obj[3], source))
|
||||||
|
file.write("\t@echo $(CPP) ... $< > $@\n")
|
||||||
|
# Note: next 2 lines are ONE output line!
|
||||||
|
file.write("\t$(CPP) $(CPPFLAGS) $< ")
|
||||||
|
file.write(">$@.new && mv $@.new $@\n")
|
||||||
|
else:
|
||||||
|
file.write("%s: %s\n" % (obj[0], source))
|
||||||
|
file.write("\t$(CC) -c $(CFLAGS) -o $@ $<\n")
|
||||||
#file.write("%s\n" % objrule[2])
|
#file.write("%s\n" % objrule[2])
|
||||||
|
|
||||||
for driverrule, driver in image.getdriverrules().items():
|
for driverrule, driver in image.getdriverrules().items():
|
||||||
|
Reference in New Issue
Block a user