Willem Cazander
349120b8f5
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
278 lines
11 KiB
Makefile
278 lines
11 KiB
Makefile
|
|
MB_PROJ_META_NAME ?= MSXBUILD
|
|
MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_PROJ_META_NAME,"The project name.")
|
|
|
|
MB_PROJ_META_DESCRIPTION ?=
|
|
MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_PROJ_META_DESCRIPTION,"The project description.")
|
|
|
|
MB_PROJ_META_WEBSITE ?=
|
|
MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_PROJ_META_WEBSITE,"The project website location.")
|
|
|
|
MB_PROJ_STEP_BEFORE_PREFIX ?= "Before -- "
|
|
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_PROJ_STEP_BEFORE_PREFIX,"Prefix for begin phase message.")
|
|
|
|
MB_PROJ_STEP_AFTER_PREFIX ?= "After ---- "
|
|
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_PROJ_STEP_AFTER_PREFIX,"Prefix for af phase message.")
|
|
|
|
MB_PROJ_STEP_DONE_PREFIX ?= "Finished executing prime pi target "
|
|
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_PROJ_STEP_DONE_PREFIX,"Prefix for af phase message.")
|
|
|
|
MB_PROJ_PHASE_PROCESS_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PROCESS_DEPS,"The targets to trigger by project @process target.")
|
|
|
|
MB_PROJ_PHASE_COMPILE_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_COMPILE_DEPS,"The targets to trigger by project @compile target.")
|
|
|
|
MB_PROJ_PHASE_LINK_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_LINK_DEPS,"The targets to trigger by project @link target.")
|
|
|
|
MB_PROJ_PHASE_BUILD_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_BUILD_DEPS,"The targets to trigger by project @build target.")
|
|
|
|
MB_PROJ_PHASE_TEST_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_TEST_DEPS,"The targets to trigger by project @test target.")
|
|
|
|
MB_PROJ_PHASE_PACKAGE_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_DEPS,"The targets to trigger by project @package target.")
|
|
|
|
MB_PROJ_PHASE_PACKAGE_QA_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_QA_DEPS,"The targets to trigger by project @package-qa target.")
|
|
|
|
MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS ?=
|
|
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_QA_DEPLOY,"The targets to trigger by project @package-deploy target.")
|
|
|
|
|
|
|
|
define mb_proj_module_path_src
|
|
$(1)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
|
|
endef
|
|
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_proj_module_path_src,"Convert include location folder as src folder.","<path-src>")
|
|
|
|
|
|
define mb_proj_module_path_bin
|
|
$(2)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
|
|
endef
|
|
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_proj_module_path_src,"Convert include location folder as bin folder.","<path-src> <path-bin>")
|
|
|
|
|
|
define mb_proj_module_local_deps
|
|
$(foreach dep,$(2),$(1)/$(notdir $(dep)))
|
|
endef
|
|
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_proj_module_deps,"Convert other files to local deps.","<mod-bin> <deps>")
|
|
|
|
|
|
|
|
define _mb_proj_flow_step_before
|
|
$(call mb_make_call,mb_make_echo_phase,$(MB_PROJ_STEP_BEFORE_PREFIX)$@)
|
|
endef
|
|
define _mb_proj_flow_step_done
|
|
$(call mb_make_call,mb_make_echo_phase,$(MB_PROJ_STEP_AFTER_PREFIX)$@)
|
|
$(if $(filter $@,$(MAKECMDGOALS)),$(call mb_make_call,mb_make_echo_good,$(MB_PROJ_STEP_DONE_PREFIX)$@))
|
|
endef
|
|
define _mb_proj_run_clean
|
|
$(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_make_echo_command,Removing folder $(folder));))
|
|
$(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_os_dir_delete,$(folder))))
|
|
endef
|
|
define _mb_proj_run_init
|
|
$(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_make_echo_command,Creating folder $(folder));))
|
|
$(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_os_dir_create,$(folder))))
|
|
endef
|
|
|
|
|
|
|
|
define mb_proj_flow_setup
|
|
@@clean:
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@clean
|
|
|
|
|
|
@clean: @@clean
|
|
$$(call mb_make_call,_mb_proj_run_clean,$(1))
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@clean,"Clean's the project build folders.")
|
|
.PHONY: @clean
|
|
|
|
|
|
@@init:
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@init
|
|
|
|
|
|
@init: @@init
|
|
$$(call mb_make_call,_mb_proj_run_init,$(1))
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@init,"Create the project output folders.")
|
|
.PHONY: @init
|
|
|
|
|
|
@@process: @init
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@process
|
|
|
|
|
|
@process: @@process $$(MB_PROJ_PHASE_PROCESS_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@process,"Process sources before compiling.")
|
|
.PHONY: @process
|
|
|
|
|
|
@@compile: @process
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@compile
|
|
|
|
|
|
@compile: @@compile $$(MB_PROJ_PHASE_COMPILE_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@compile,"Compiles all project sources.")
|
|
.PHONY: @compile
|
|
|
|
|
|
@@link: @compile
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@link
|
|
|
|
|
|
@link: @@link $$(MB_PROJ_PHASE_LINK_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@link,"Link all project intermediate files.")
|
|
.PHONY: @link
|
|
|
|
|
|
@@build: @link
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@build
|
|
|
|
|
|
@build: @@build $$(MB_PROJ_PHASE_BUILD_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@build,"Build all project artifacts.")
|
|
.PHONY: @build
|
|
|
|
|
|
@@test: @build
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@test
|
|
|
|
|
|
@test: @@test $$(MB_PROJ_PHASE_TEST_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@test,"Run all assertion tests.")
|
|
.PHONY: @test
|
|
|
|
|
|
@@package: @test
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@package
|
|
|
|
|
|
@package: @@package $$(MB_PROJ_PHASE_PACKAGE_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@package,"Create all packages of project.")
|
|
.PHONY: @package
|
|
|
|
|
|
@@package-qa: @package
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@package-qa
|
|
|
|
|
|
@package-qa: @@package-qa $$(MB_PROJ_PHASE_PACKAGE_QA_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@package-qa,"Run all packages QA of project.")
|
|
.PHONY: @package-qa
|
|
|
|
|
|
@@package-deploy: @package-qa
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
.PHONY: @@package-deploy
|
|
|
|
|
|
@package-deploy: @@package-deploy $$(MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS)
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@package-deploy,"Deploy all the packages.")
|
|
.PHONY: @package-deploy
|
|
endef
|
|
MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup,"Prints flow of abstract project build cycle.","<build-dirs>")
|
|
|
|
|
|
define mb_proj_flow_setup_jp
|
|
@クリーン: @clean
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@クリーン,"プロジェクトのビルドフォルダーをクリーンアップします。")
|
|
.PHONY: @クリーン
|
|
|
|
@初期化する: @init
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@初期化する,"モジュール出力フォルダーをセットアップして検証します。")
|
|
.PHONY: @@初期化する
|
|
|
|
@プロセス: @初期化する @process
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@プロセス,"コンパイル前にソースを処理します。")
|
|
.PHONY: @プロセス
|
|
|
|
@コンパイル: @プロセス @compile
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@コンパイル,"すべてのプロジェクト ソースをコンパイルします。")
|
|
.PHONY: @コンパイル
|
|
|
|
@リンク: @コンパイル @link
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@リンク,"すべてのプロジェクト中間ファイルをリンクします。")
|
|
.PHONY: @リンク
|
|
|
|
@建てる: @リンク @build
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@建てる,"すべてのプロジェクト成果物をビルドします。")
|
|
.PHONY: @建てる
|
|
|
|
@テスト: @建てる @test
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@テスト,"すべてのアサーション テストを実行します。")
|
|
.PHONY: @テスト
|
|
|
|
@パッケージ: @テスト @package
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@パッケージ,"プロジェクトのパッケージを作成します。")
|
|
.PHONY: @パッケージ
|
|
|
|
@パッケージの品質保証: @パッケージ @package-qa
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@パッケージの品質保証,"すべてのパッケージを実行します。プロジェクトの品質保証。")
|
|
.PHONY: @パッケージの品質保証
|
|
|
|
@パッケージのデプロイ: @パッケージの品質保証 @package-deploy
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@パッケージのデプロイ,"パッケージをデプロイします。")
|
|
.PHONY: @パッケージのデプロイ
|
|
endef
|
|
MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup_jp,"Prints flow for japanese wrapper of project build cycle.")
|
|
|
|
|
|
define mb_proj_flow_flight_video
|
|
@@test-video: @test
|
|
$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
|
|
|
|
|
|
@test-video: @clean
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) @@test-video
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $(call mb_make_call,mb_doc_target_help,@test-video,"Runs @test with video recorder and merges flight videos to one.")
|
|
.PHONY: @test-video
|
|
|
|
|
|
@@package-qa-video: @package-qa
|
|
$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
|
|
|
|
|
|
@package-qa-video: @clean
|
|
$$(call mb_make_call,_mb_proj_flow_step_before)
|
|
MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@package-qa-video
|
|
$$(call mb_make_call,_mb_proj_flow_step_done)
|
|
MB_DOC_FIRE_HELP += $(call mb_make_call,mb_doc_target_help,@package-qa-video,"Runs @package-qa with video recorder and merges flight videos to one.")
|
|
.PHONY: @test-video
|
|
endef
|
|
MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_flight_video,"Prints flow for adding video targets in project build cycle.","<path-bin>")
|
|
|