From: Kevin O'Connor Date: Sat, 1 Mar 2008 15:11:55 +0000 (-0500) Subject: Fix header guards produced by defsys.py X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=seabios.git;a=commitdiff_plain;h=596cf60bedeec1a325e4849bb6635254e0bf2d86 Fix header guards produced by defsys.py Issue spotted by Nguyen Anh Quynh --- diff --git a/Makefile b/Makefile index 8d97a00..33136da 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ $(OUT)%.bin: $(OUT)%.o $(OUT)%.offset.auto.h: $(OUT)%.o @echo " Generating symbol offset header $@" - $(Q)nm $< | ./tools/defsyms.py > $@ + $(Q)nm $< | ./tools/defsyms.py $@ $(OUT)blob.16.s: @echo " Generating whole program assembler $@" diff --git a/tools/defsyms.py b/tools/defsyms.py index fe18d90..54d18b8 100755 --- a/tools/defsyms.py +++ b/tools/defsyms.py @@ -9,7 +9,14 @@ import sys import string +def printUsage(): + print "Usage:\n %s " % (sys.argv[0],) + sys.exit(1) + def main(): + if len(sys.argv) != 2: + printUsage() + # Find symbols (that are valid) syms = [] lines = sys.stdin.readlines() for line in lines: @@ -22,17 +29,27 @@ def main(): break else: syms.append((sym, addr)) - print """ -#ifndef __OFFSET16_AUTO_H -#define __OFFSET16_AUTO_H + # Build guard string + guardstr = '' + for c in sys.argv[1]: + if c not in string.letters + string.digits + '_': + guardstr += '_' + else: + guardstr += c + # Generate header + f = open(sys.argv[1], 'wb') + f.write(""" +#ifndef __OFFSET_AUTO_H__%s +#define __OFFSET_AUTO_H__%s // Auto generated file - please see defsyms.py. // This file contains symbol offsets of a compiled binary. -""" + +""" % (guardstr, guardstr)) for sym, addr in syms: - print "#define OFFSET_%s 0x%s" % (sym, addr) - print """ -#endif // __OFFSET16_AUTO_H -""" + f.write("#define OFFSET_%s 0x%s\n" % (sym, addr)) + f.write(""" +#endif // __OFFSET_AUTO_H__%s +""" % (guardstr,)) if __name__ == '__main__': main()