diff options
Diffstat (limited to 'scripts/build')
-rw-r--r-- | scripts/build/makelist.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/scripts/build/makelist.py b/scripts/build/makelist.py index 329ff374520..a9b450474e2 100644 --- a/scripts/build/makelist.py +++ b/scripts/build/makelist.py @@ -9,6 +9,8 @@ import sys drivlist = [] sourcelist = [] +filter_addlist = [] +filter_removelist = [] def parse_file(srcfile): try: @@ -57,9 +59,9 @@ def parse_file(srcfile): if not all(((c >='a' and c<='z') or (c>='0' and c<='9') or c=='_') for c in drivname): sys.stderr.write("%s:%d - Invalid character in driver \"%s\"\n" % (srcfile, linenum, drivname)) return 1 - else: + else: if (curr_source == '') or (len(sourcelist)==0) or (curr_source in sourcelist): - drivlist.append(drivname) + drivlist.append(drivname) return 0 def parse_filter_file(srcfile): @@ -102,10 +104,16 @@ def parse_filter_file(srcfile): sys.stderr.write("Importing drivers from '%s'\n" % sourcename[1:]) parse_filter_file(sourcename[1:]) continue + if sourcename[0]=='+': + filter_addlist.append(sourcename[1:]) + continue + if sourcename[0]=='-': + filter_removelist.append(sourcename[1:]) + continue if not all(((c >='a' and c<='z') or (c>='0' and c<='9') or c=='_' or c=='.' or c=='-') for c in sourcename): sys.stderr.write("%s:%d - Invalid character in driver \"%s\"\n" % (srcfile, linenum, sourcename)) return 1 - else: + else: sourcelist.append(sourcename) return 0 @@ -128,6 +136,11 @@ if len(drivlist)==0 : sys.stderr.write("No drivers found\n") sys.exit(1) +for x in filter_addlist: + drivlist.append(x) + +drivlist = [x for x in drivlist if (x not in filter_removelist)] + sys.stderr.write("%d driver(s) found\n" % len(drivlist)) # add a reference to the ___empty driver |