msxbuild/lib/make/msxbuild.mk
Willem Cazander a71f283d1d
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
Fixed openMSX export and WIP adding first flow generators.
2024-07-05 20:43:18 +02:00

95 lines
2.5 KiB
Makefile

#
# msxbuild.mk - Makefile helper to use with msx projects.
#
# Setup default tools paths
PATH_SDCC ?= /usr/bin
PATH_OPENMSX ?= /usr/bin
PATH_MSXBUILD ?= $(dir $(lastword $(MAKEFILE_LIST)))../..
PATH_MSXBUILD_REAL := $(if $(realpath $(PATH_MSXBUILD)),$(realpath $(PATH_MSXBUILD)),$(PATH_MSXBUILD))
# Include extra features
include $(PATH_MSXBUILD)/lib/make/mb_doc.mk
include $(PATH_MSXBUILD)/lib/make/mb_make.mk
include $(PATH_MSXBUILD)/lib/make/mb_sdcc.mk
include $(PATH_MSXBUILD)/lib/make/mb_flight.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxrom.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxhub.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxpipe.mk
include $(PATH_MSXBUILD)/lib/make/mb_openmsx.mk
include $(PATH_MSXBUILD)/lib/make/mb_autoexec.mk
# OS cmds
ifeq ($(OS),Windows_NT)
MB_RM = del /F /Q
MB_RMDIR = RMDIR /S /Q
MB_MKDIR = mkdir
MB_COPY = copy
MB_ERRIGNORE = 2>NUL || true
MB_SEP=\\
MB_CACHE ?= %LOCALAPPDATA%
MB_COLORS ?= -1
else
MB_RM = rm -f
MB_RMDIR = rm -rf
MB_MKDIR = mkdir -p
MB_COPY = cp
MB_ERRIGNORE = 2>/dev/null
MB_SEP=/
MB_CACHE ?= ~/.cache
MB_COLORS ?= $(shell tput colors 2> /dev/null;test $$? -eq 0 || echo "-1")
endif
# Remove space after separator
MB_PSEP = $(strip $(MB_SEP))
# Special chars call arguments (like for l80.com)
MB_CHAR_COMMA := ,
MB_CHAR_SPACE := $(subst ,, )
define mb_clean
$(call mb_make_call,mb_make_echo_good,Cleaning build folder $(1))
$(MB_RMDIR) $(1)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_clean,"Removed the full folder.","<dir>")
define mb_mkdir
$(MB_MKDIR) $(1)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_mkdir,"Creates an folder.","<dir>")
define mb_delete
$(MB_RM) $(1)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_delete,"Deletes an file.","<file>")
define mb_copy
$(MB_COPY) $(1) $(2)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_copy,"Copy an file.","<in> <out>")
define mb_unix2dos
unix2dos -q -n $(1) $(2)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_unix2dos,"Converts an unix file to dos.","<in> <out>")
define mb_dos2unix
dos2unix -q -n $(1) $(2)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_dos2unix,"Converts an dos file to unix.","<in> <out>")
define mb_create_dist
$(call mb_make_call,mb_make_echo_good,Creating distribution archive $(2))
tar -czf $(2) -C $(1) `ls $(1)`
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_create_dist,"Create an distribution archive.","<dir> <artifact>")