diff options
author | Vas Crabb <vas@vastheman.com> | 2022-06-28 16:33:06 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2022-06-28 16:33:06 +1000 |
commit | 513e30cbbb75a4c81bc4a7cc2dde47e0ad064644 (patch) | |
tree | 511c7c367db3f2454b52314e45e567c9b8b4771b /scripts | |
parent | dbf04f771a146d6cc1884470ff43a1101f5973a4 (diff) |
Added make opions for filter file, adjusted source path display.
Added SOURCEFILTER option to specify a driver filter file in your make
options, e.g. like make SUBTARGET=custom SOURCEFILTER=mydrivers.flt (or
put it in your useroptions.mak if you'll be using it a lot). It
functions more-or-less like SOURCES on steroids.
Changed the way system/device source file paths are displayed to suit
the new source layout better. INI file loading hasn't changed, that
still just uses the base file name.
Added overlooked trigger to src/bus.lua to include NES controller bus if
the NES zapper sensor is needed.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/genie.lua | 62 | ||||
-rw-r--r-- | scripts/src/bus.lua | 1 | ||||
-rw-r--r-- | scripts/src/main.lua | 130 |
3 files changed, 119 insertions, 74 deletions
diff --git a/scripts/genie.lua b/scripts/genie.lua index fcc670768df..609280cd8ad 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -393,6 +393,11 @@ newoption { } newoption { + trigger = "SOURCEFILTER", + description = "Filter list specifying sources to compile.", +} + +newoption { trigger = "PLATFORM", description = "Target machine platform (x86,arm,...)", } @@ -552,21 +557,21 @@ if (_OPTIONS["PROJECT"] ~= nil) then error("File definition for TARGET=" .. _OPTIONS["target"] .. " SUBTARGET=" .. _OPTIONS["subtarget"] .. " does not exist") end dofile (path.join(".." ,"projects", _OPTIONS["PROJECT"], "scripts", "target", _OPTIONS["target"],_OPTIONS["subtarget"] .. ".lua")) -end -if (_OPTIONS["SOURCES"] == nil) and (_OPTIONS["PROJECT"] == nil) then +elseif (_OPTIONS["SOURCES"] == nil) and (_OPTIONS["SOURCEFILTER"] == nil) then local subtargetscript = path.join("target", _OPTIONS["target"], _OPTIONS["subtarget"] .. ".lua") local subtargetfilter = path.join(MAME_DIR, "src", _OPTIONS["target"], _OPTIONS["subtarget"] .. ".flt") if os.isfile(subtargetscript) then dofile(subtargetscript) elseif os.isfile(subtargetfilter) then - local cmd = string.format( - "%s %s filterproject -r %s -t %s -f %s %s", - PYTHON, path.join(MAME_DIR, "scripts", "build", "makedep.py"), - MAME_DIR, _OPTIONS["subtarget"], subtargetfilter, path.join(MAME_DIR, "src", _OPTIONS["target"] , _OPTIONS["target"] .. ".lst")) - local OUT_STR = os.outputof(cmd) + local makedep = path.join(MAME_DIR, "scripts", "build", "makedep.py") + local driverlist = path.join(MAME_DIR, "src", _OPTIONS["target"], _OPTIONS["target"] .. ".lst") + local OUT_STR = os.outputof( + string.format( + "%s %s filterproject -r %s -t %s -f %s %s", + PYTHON, makedep, MAME_DIR, _OPTIONS["subtarget"], subtargetfilter, driverlist)) load(OUT_STR)() else - error("File definition for TARGET=" .. _OPTIONS["target"] .. " SUBTARGET=" .. _OPTIONS["subtarget"] .. " does not exist") + error("Definition file for TARGET=" .. _OPTIONS["target"] .. " SUBTARGET=" .. _OPTIONS["subtarget"] .. " does not exist") end end @@ -1420,19 +1425,46 @@ end configuration { } -if (_OPTIONS["SOURCES"] ~= nil) then +if _OPTIONS["SOURCES"] ~= nil then + if _OPTIONS["SOURCEFILTER"] ~= nil then + error("SOURCES and SOURCEFILTER cannot be combined") + end + + local makedep = path.join(MAME_DIR, "scripts", "build", "makedep.py") local str = _OPTIONS["SOURCES"] local sourceargs = "" for word in string.gmatch(str, '([^,]+)') do - if (not os.isfile(path.join(MAME_DIR, word))) then - print("File " .. word .. " does not exist") - os.exit() + if not os.isfile(path.join(MAME_DIR, word)) then + error("File " .. word .. " does not exist") end sourceargs = sourceargs .. " " .. word end - local OUT_STR = os.outputof( PYTHON .. " " .. MAME_DIR .. "scripts/build/makedep.py sourcesproject -r " .. MAME_DIR .. " -t " .. _OPTIONS["subtarget"] .. sourceargs ) + + local OUT_STR = os.outputof( + string.format( + "%s %s sourcesproject -r %s -t %s %s", + PYTHON, makedep, MAME_DIR, _OPTIONS["subtarget"], sourceargs)) + load(OUT_STR)() + + local driverlist = path.join(MAME_DIR, "src", _OPTIONS["target"], _OPTIONS["target"] .. ".lst") + local driverfilter = path.join(GEN_DIR, _OPTIONS["target"], _OPTIONS["subtarget"] .. ".flt") + os.outputof( + string.format( + "%s %s sourcesfilter -l %s %s > %s", + PYTHON, makedep, driverlist, sourceargs, driverfilter)) +elseif _OPTIONS["SOURCEFILTER"] ~= nil then + local driverfilter = path.join(MAME_DIR, _OPTIONS["SOURCEFILTER"]) + if not os.isfile(driverfilter) then + error("File " .. _OPTIONS["SOURCEFILTER"] .. " does not exist") + end + + local makedep = path.join(MAME_DIR, "scripts", "build", "makedep.py") + local driverlist = path.join(MAME_DIR, "src", _OPTIONS["target"], _OPTIONS["target"] .. ".lst") + local OUT_STR = os.outputof( + string.format( + "%s %s filterproject -r %s -t %s -f %s %s", + PYTHON, makedep, MAME_DIR, _OPTIONS["subtarget"], driverfilter, driverlist)) load(OUT_STR)() - os.outputof( PYTHON .. " " .. MAME_DIR .. "scripts/build/makedep.py sourcesfilter -l " .. MAME_DIR .. "src/" .. _OPTIONS["target"] .. "/" .. _OPTIONS["target"] .. ".lst" .. sourceargs .. " > ".. GEN_DIR .. _OPTIONS["target"] .. "/" .. _OPTIONS["subtarget"] .. ".flt" ) end group "libs" @@ -1473,7 +1505,7 @@ end group "emulator" dofile(path.join("src", "main.lua")) -if (_OPTIONS["SOURCES"] == nil) then +if (_OPTIONS["SOURCES"] == nil) and (_OPTIONS["SOURCEFILTER"] == nil) then if (_OPTIONS["target"] == _OPTIONS["subtarget"]) then startproject (_OPTIONS["target"]) else diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 348eb598223..46b7461763f 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -3087,6 +3087,7 @@ end --------------------------------------------------- -- --@src/devices/bus/nes_ctrl/ctrl.h,BUSES["NES_CTRL"] = true +--@src/devices/bus/nes_ctrl/zapper_sensor.h,BUSES["NES_CTRL"] = true --------------------------------------------------- if (BUSES["NES_CTRL"]~=null) then diff --git a/scripts/src/main.lua b/scripts/src/main.lua index ce31dd7f5c4..ae95b11e501 100644 --- a/scripts/src/main.lua +++ b/scripts/src/main.lua @@ -11,7 +11,7 @@ function mainProject(_target, _subtarget) local projname -if (_OPTIONS["SOURCES"] == nil) then +if (_OPTIONS["SOURCES"] == nil) and (_OPTIONS["SOURCEFILTER"] == nil) then if (_target == _subtarget) then projname = _target else @@ -282,68 +282,80 @@ if (STANDALONE~=true) then GEN_DIR .. _target .. "/" .. _subtarget .. "/drivlist.cpp", } - if (_OPTIONS["SOURCES"] == nil) then - - 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 { + local driverlist = MAME_DIR .. "src/" .. _target .. "/" .. _target .. ".lst" + local driverssrc = GEN_DIR .. _target .. "/" .. _subtarget .. "/drivlist.cpp" + if _OPTIONS["SOURCES"] ~= nil then + dependency { + { driverssrc, driverlist, true }, + } + custombuildtask { + { + GEN_DIR .. _target .."/" .. _subtarget .. ".flt" , + driverssrc, + { MAME_DIR .. "scripts/build/makedep.py", driverlist }, { - MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".flt", - GEN_DIR .. _target .. "/" .. _subtarget .. "/drivlist.cpp", - { MAME_DIR .. "scripts/build/makedep.py", MAME_DIR .. "src/" .. _target .."/" .. _target .. ".lst" }, - { - "@echo Building driver list...", - PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" - } - }, - } - elseif os.isfile(MAME_DIR .. "src/" .._target .. "/" .. _subtarget ..".lst") then - custombuildtask { + "@echo Building driver list...", + PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" + } + }, + } + elseif _OPTIONS["SOURCEFILTER"] ~= nil then + dependency { + { driverssrc, driverlist, true }, + } + custombuildtask { + { + MAME_DIR .. _OPTIONS["SOURCEFILTER"], + driverssrc, + { MAME_DIR .. "scripts/build/makedep.py", driverlist }, { - MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".lst", - GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", - { MAME_DIR .. "scripts/build/makedep.py" }, - { - "@echo Building driver list...", - PYTHON .. " $(1) driverlist $(<) > $(@)" - } - }, - } - else - dependency { - { GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true }, - } - custombuildtask { + "@echo Building driver list...", + PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" + } + }, + } + elseif os.isfile(MAME_DIR .. "src/" .. _target .."/" .. _subtarget ..".flt") then + dependency { + { driverssrc, driverlist, true }, + } + custombuildtask { + { + MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".flt", + driverssrc, + { MAME_DIR .. "scripts/build/makedep.py", driverlist }, { - MAME_DIR .. "src/" .. _target .. "/" .. _target .. ".lst", - GEN_DIR .. _target .. "/" .. _target .. "/drivlist.cpp", - { MAME_DIR .. "scripts/build/makedep.py" }, - { - "@echo Building driver list...", - PYTHON .. " $(1) driverlist $(<) > $(@)" - } - }, - } - end - end - - if (_OPTIONS["SOURCES"] ~= nil) then - dependency { - { GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true }, - } - custombuildtask { + "@echo Building driver list...", + PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" + } + }, + } + elseif os.isfile(MAME_DIR .. "src/" .._target .. "/" .. _subtarget ..".lst") then + custombuildtask { + { + MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".lst", + driverssrc, + { MAME_DIR .. "scripts/build/makedep.py" }, { - GEN_DIR .. _target .."/" .. _subtarget ..".flt" , - GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", - { MAME_DIR .. "scripts/build/makedep.py", MAME_DIR .. "src/".._target .."/" .. _target ..".lst" }, - { - "@echo Building driver list...", - PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" - } - }, - } + "@echo Building driver list...", + PYTHON .. " $(1) driverlist $(<) > $(@)" + } + }, + } + else + dependency { + { driverssrc, driverlist, true }, + } + custombuildtask { + { + driverlist, + driverssrc, + { MAME_DIR .. "scripts/build/makedep.py" }, + { + "@echo Building driver list...", + PYTHON .. " $(1) driverlist $(<) > $(@)" + } + }, + } end configuration { "mingw*" } |