msxbuild/lib/make/mb_flight.mk

89 lines
4.4 KiB
Makefile
Raw Normal View History

MB_FLIGHT_SCREEN ?= off
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_SCREEN,Creates screenshots on exit of openMSX.)
MB_FLIGHT_VIDEO ?= off
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_VIDEO,Create video of every build pipe session.)
MB_FLIGHT_PREFIX ?= msxbuild
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_PREFIX,Prefix for video and screenshot flight files.)
MB_FLIGHT_SEPERATOR ?= -
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_SEPERATOR,File and index number seperator for flight files.)
MB_FLIGHT_RECORD_FLAG ?= -doublesize
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_RECORD_FLAG,Command parameter flag of the video recorder.)
MB_FLIGHT_VIDEO_NAME ?= night-flight
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_VIDEO_NAME,Video file name of the final result merged video.)
define mb-flight-video-merge
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
2024-07-16 23:33:54 +00:00
$(MB_   )$(call mb-make-call,mb-os-echo-command,Indexing flight videos)
$(MB_   )find $(1) -type f -name '*.avi' -printf '%T@ %Tc %p\n' | sort -n | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
2024-07-15 00:34:29 +00:00
$(MB_   )ffmpeg -v quiet -y -f concat -safe 0 -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
$(MB_   )$(call mb-make-call,mb-os-echo-remark,Flight video completed)
endef
$(call mb-make-call,mb-doc-function-deep,mb-flight-video-merge,Merged all flight videos to one.,<dir>)
2024-07-07 16:13:48 +00:00
define __mb-flight-proj-flow-video
2024-07-12 15:59:26 +00:00
.RECIPEPREFIX := $(MB_@RECIPE)
2024-07-07 16:13:48 +00:00
@@flight-video-build: @build
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
2024-07-07 16:13:48 +00:00
@flight-video-build: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
2024-07-12 15:59:26 +00:00
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-build
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-build,Runs @clean and @build with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-build)
2024-07-07 16:13:48 +00:00
@@flight-video-test: @test
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
2024-07-07 16:13:48 +00:00
@flight-video-test: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) @@flight-video-test
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-test,Runs @clean and @test with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-test)
2024-07-07 16:13:48 +00:00
@@flight-video-package-qa: @package-qa
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
2024-07-07 16:13:48 +00:00
@flight-video-package-qa: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) @@flight-video-package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-package-qa,Runs @clean and @package-qa with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-package-qa)
@@flight-video-all: @all
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
@flight-video-all: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) @@flight-video-all
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-all,Runs @clean and @all with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-all)
2024-07-12 15:59:26 +00:00
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
2024-07-07 16:13:48 +00:00
endef
define mb-flight-proj-flow-video
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(eval $(call mb-make-call,__$(0),$(1)))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flight-proj-flow-video,Prints flow for adding flight video targets in project build cycle.,<path-bin>)
2024-07-07 16:13:48 +00:00