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 $(call mb_make_call,mb_make_echo_good,Indexing flight videos) ls -1tr $(1)/*-omsx/videos/*.avi | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst ffmpeg -v quiet -y -f concat -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi $(call mb_make_call,mb_make_echo_good,Flight video completed) endef $(call mb_make_call,mb_doc_function,mb_flight_video_merge,"Merged all flight videos to one.","") define __mb_flight_proj_flow_video @@flight-video-build: @build $$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1))) @flight-video-build: @clean $$(call mb_make_call,_mb_proj_flow_step_before) MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@flight-video-build $$(call mb_make_call,_mb_proj_flow_step_done) $$(call mb_make_call,mb_doc_target_help,@flight-video-build,"Runs @clean and @build with recorder and merges flight videos to one.") .PHONY: @flight-video-build @@flight-video-test: @test $$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1))) @flight-video-test: @clean $$(call mb_make_call,_mb_proj_flow_step_before) MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@flight-video-test $$(call mb_make_call,_mb_proj_flow_step_done) $$(call mb_make_call,mb_doc_target_help,@flight-video-test,"Runs @clean and @test with recorder and merges flight videos to one.") .PHONY: @flight-video-test @@flight-video-package-qa: @package-qa $$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1))) @flight-video-package-qa: @clean $$(call mb_make_call,_mb_proj_flow_step_before) MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@flight-video-package-qa $$(call mb_make_call,_mb_proj_flow_step_done) $$(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.") .PHONY: @flight-video-package-qa endef define mb_flight_proj_flow_video $(if $(1),,$(error $(1) missing)) $(eval $(call mb_make_call,__mb_flight_proj_flow_video,$(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.","")