# # 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)) # 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% 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 endif # Remove space after separator MB_PSEP = $(strip $(MB_SEP)) # Needed for comma in call arguments (like for l80.com) MB_COMMA:=, # Simple inline ascii lowercase define _mb_lowercase $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1))))))))))))))))))))))))))) endef define mb_clean @echo === Cleaning build folder. $(if $(wildcard $(1)),$(MB_RMDIR) $(1)) endef define mb_mkdir $(MB_MKDIR) $(1) endef define mb_delete $(if $(wildcard $(1)),$(MB_RM) $(1)) endef define mb_copy $(MB_COPY) $(1) $(2) endef define mb_create_dist @echo === Creating distribution archive. tar -czf $(1) -C $(2) `ls $(2)` endef # Include extra features include $(PATH_MSXBUILD)/lib/make/mb_autoexec.mk include $(PATH_MSXBUILD)/lib/make/mb_msxrom.mk include $(PATH_MSXBUILD)/lib/make/mb_msxhub.mk include $(PATH_MSXBUILD)/lib/make/mb_packages.mk include $(PATH_MSXBUILD)/lib/make/mb_openmsx.mk include $(PATH_MSXBUILD)/lib/make/mb_build.mk