diff options
| author | 2016-03-02 12:48:46 +0100 | |
|---|---|---|
| committer | 2016-03-02 12:49:37 +0100 | |
| commit | 8a84dd2232711cc9c3b89b3f8cb28fb9139bdd00 (patch) | |
| tree | 6c36e1b59c1515524a9e0792ff87b1608f2d0fa1 /scripts | |
| parent | f15313bc070231f7fe13b2b63bf3d0ae55793171 (diff) | |
Added mame.lst as main list, it is now generated, and should be updated manually (nw)
Filtering for subtargets are done by flt files now
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/build/makelist.py | 64 | ||||
| -rw-r--r-- | scripts/src/main.lua | 31 |
2 files changed, 85 insertions, 10 deletions
diff --git a/scripts/build/makelist.py b/scripts/build/makelist.py index 144dc636c8d..7783ee64d4d 100644 --- a/scripts/build/makelist.py +++ b/scripts/build/makelist.py @@ -8,6 +8,7 @@ from __future__ import with_statement import sys drivlist = [] +sourcelist = [] def parse_file(srcfile): try: @@ -17,6 +18,7 @@ def parse_file(srcfile): return 1 in_comment = 0 linenum = 0 + curr_source = '' for line in fp.readlines(): drivname = '' linenum+=1 @@ -49,19 +51,75 @@ def parse_file(srcfile): sys.stderr.write("Importing drivers from '%s'\n" % drivname[1:]) parse_file(drivname[1:]) continue + if drivname[0]=='@': + curr_source= drivname[8:] + continue 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: - drivlist.append(drivname) + if (curr_source == '') or (len(sourcelist)==0) or (curr_source in sourcelist): + drivlist.append(drivname) return 0 +def parse_filter_file(srcfile): + try: + fp = open(srcfile, 'rt') + except IOError: + sys.stderr.write("Unable to open filter file '%s'\n" % srcfile) + return 1 + in_comment = 0 + linenum = 0 + for line in fp.readlines(): + sourcename = '' + linenum+=1 + srcptr = 0 + while srcptr < len(line): + c = line[srcptr] + srcptr+=1 + if c==13 or c==10: + if c==13 and line[srcptr]==10: + srcptr+=1 + continue + if c==' ' or c==9: + continue + if in_comment==1 and c=='*' and line[srcptr]=='/' : + srcptr+=1 + in_comment = 0 + continue + if in_comment: + continue + if c=='/' and line[srcptr]=='*' : + srcptr+=1 + in_comment = 1 + continue + if c=='/' and line[srcptr]=='/' : + break + sourcename += c + sourcename = sourcename.strip() + if len(sourcename)>0: + if sourcename[0]=='#': + sys.stderr.write("Importing drivers from '%s'\n" % sourcename[1:]) + parse_filter_file(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: + sourcelist.append(sourcename) + return 0 -if len(sys.argv) < 2: + +if len(sys.argv) < 2 or len(sys.argv) > 3: print('Usage:') - print(' makelist <source.lst>') + print(' makelist <source.lst> [<filter.flt>]') sys.exit(0) +if len(sys.argv) == 3: + if parse_filter_file(sys.argv[2]) : + sys.exit(1) + sys.stderr.write("%d sources found\n" % len(sourcelist)) + if parse_file(sys.argv[1]) : sys.exit(1) diff --git a/scripts/src/main.lua b/scripts/src/main.lua index cf4e311ef59..efd1ca75f32 100644 --- a/scripts/src/main.lua +++ b/scripts/src/main.lua @@ -280,13 +280,30 @@ end } if (_OPTIONS["SOURCES"] == nil) then - dependency { - { "../../../../generated/mame/mame/drivlist.cpp", MAME_DIR .. "src/mame/mess.lst", true }, - { "../../../../generated/mame/mame/drivlist.cpp" , MAME_DIR .. "src/mame/arcade.lst", true}, - } - custombuildtask { - { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py" }, {"@echo Building driver list...", PYTHON .. " $(1) $(<) > $(@)" }}, - } + + if os.isfile(MAME_DIR .. "src/".._target .."/" .. _subtarget ..".flt") then + dependency { + { + GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true }, + } + custombuildtask { + { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".flt" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py", MAME_DIR .. "src/".._target .."/" .. _target ..".lst" }, {"@echo Building driver list...", PYTHON .. " $(1) $(2) $(<) > $(@)" }}, + } + else + if os.isfile(MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst") then + custombuildtask { + { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py" }, {"@echo Building driver list...", PYTHON .. " $(1) $(<) > $(@)" }}, + } + else + dependency { + { + GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true }, + } + custombuildtask { + { MAME_DIR .. "src/".._target .."/" .. _target ..".lst" , GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py" }, {"@echo Building driver list...", PYTHON .. " $(1) $(<) > $(@)" }}, + } + end + end end if _OPTIONS["FORCE_VERSION_COMPILE"]=="1" then |
