diff --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py index db0dbd826a6..4cea2353cb7 100755 --- a/Tools/scripts/h2py.py +++ b/Tools/scripts/h2py.py @@ -38,6 +38,14 @@ p_char = regex.compile("'\(\\\\.[^\\\\]*\|[^\\\\]\)'") filedict = {} +try: + searchdirs=string.splitfields(os.environ['include'],';') +except KeyError: + try: + searchdirs=string.splitfields(os.environ['INCLUDE'],';') + except KeyError: + searchdirs=['/usr/include'] + def main(): opts, args = getopt.getopt(sys.argv[1:], 'i:') for o, a in opts: @@ -59,8 +67,10 @@ def main(): outfp = open(outfile, 'w') outfp.write('# Generated by h2py from %s\n' % filename) filedict = {} - if filename[:13] == '/usr/include/': - filedict[filename[13:]] = None + for dir in searchdirs: + if filename[:len(dir)] == dir: + filedict[filename[len(dir)+1:]] = None # no '/' trailing + break process(fp, outfp) outfp.close() fp.close() @@ -114,9 +124,18 @@ def process(fp, outfp, env = {}): filename = line[a:b] if not filedict.has_key(filename): filedict[filename] = None - outfp.write( - '\n# Included from %s\n' % filename) - inclfp = open('/usr/include/' + filename, 'r') - process(inclfp, outfp, env) -main() + inclfp = None + for dir in searchdirs: + try: + inclfp = open(dir + '/' + filename, 'r') + break + except IOError: + pass + if inclfp: + outfp.write( + '\n# Included from %s\n' % filename) + process(inclfp, outfp, env) + else: + sys.stderr.write('Warning - could not find file %s' % filename) +main()